fixing loxi output
upgrade to 0.3.8
agrregate pom for of-lib

Change-Id: Ie75d75b708c30934bbca235e68c50de656d84ad4
diff --git a/of/ctl/conf/checkstyle/checkstyle_maven.properties b/of/ctl/conf/checkstyle/checkstyle_maven.properties
index 4677e08..916928c 100644
--- a/of/ctl/conf/checkstyle/checkstyle_maven.properties
+++ b/of/ctl/conf/checkstyle/checkstyle_maven.properties
@@ -1,2 +1,2 @@
 # See: http://rolf-engelhard.de/2011/04/using-the-same-suppression-filter-for-checkstyle-in-eclipse-and-maven/
-config_loc=conf/checkstyle
+config_loc=ctl/conf/checkstyle
diff --git a/of/ctl/pom.xml b/of/ctl/pom.xml
index 38b0c38..a837339 100644
--- a/of/ctl/pom.xml
+++ b/of/ctl/pom.xml
@@ -4,11 +4,11 @@
   <prerequisites>
     <maven>3.0.4</maven>
   </prerequisites>
-  <groupId>net.onrc.onos.sb</groupId>
-  <artifactId>onos-sb</artifactId>
+  <groupId>net.onrc.onos.of.ctl</groupId>
+  <artifactId>io</artifactId>
   <version>0.0.1</version>
   <packaging>bundle</packaging>
-  <name>ONOS-SB</name>
+  <name>of-ctl</name>
   <url>http://onlab.us/</url>
   <licenses>
     <license>
@@ -49,7 +49,7 @@
     <findbugs.version>3.0.0</findbugs.version>
     <findbugs-plugin.version>3.0.0</findbugs-plugin.version>
     <findbugs.effort>Max</findbugs.effort>
-    <findbugs.excludeFilterFile>conf/findbugs/exclude.xml</findbugs.excludeFilterFile>
+    <findbugs.excludeFilterFile>${project.basedir}/conf/findbugs/exclude.xml</findbugs.excludeFilterFile>
     <checkstyle-plugin.version>2.12</checkstyle-plugin.version>
     <!-- To publish javadoc to github,
      uncomment com.github.github site-maven-plugin and
@@ -97,8 +97,8 @@
         <artifactId>maven-checkstyle-plugin</artifactId>
         <version>${checkstyle-plugin.version}</version>
         <configuration>
-          <configLocation>conf/checkstyle/sun_checks.xml</configLocation>
-          <propertiesLocation>${basedir}/conf/checkstyle/checkstyle_maven.properties</propertiesLocation>
+          <configLocation>${project.basedir}/conf/checkstyle/sun_checks.xml</configLocation>
+          <propertiesLocation>${project.basedir}/conf/checkstyle/checkstyle_maven.properties</propertiesLocation>
           <failsOnError>false</failsOnError>
           <logViolationsToConsole>true</logViolationsToConsole>
           <includeTestSourceDirectory>true</includeTestSourceDirectory>
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java
new file mode 100644
index 0000000..fe5320d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFActionType {
+     OUTPUT,
+     SET_VLAN_VID,
+     SET_VLAN_PCP,
+     STRIP_VLAN,
+     SET_DL_SRC,
+     SET_DL_DST,
+     SET_NW_SRC,
+     SET_NW_DST,
+     SET_NW_TOS,
+     SET_TP_SRC,
+     SET_TP_DST,
+     ENQUEUE,
+     EXPERIMENTER,
+     SET_NW_ECN,
+     COPY_TTL_OUT,
+     COPY_TTL_IN,
+     SET_MPLS_LABEL,
+     SET_MPLS_TC,
+     SET_MPLS_TTL,
+     DEC_MPLS_TTL,
+     PUSH_VLAN,
+     POP_VLAN,
+     PUSH_MPLS,
+     POP_MPLS,
+     SET_QUEUE,
+     GROUP,
+     SET_NW_TTL,
+     DEC_NW_TTL,
+     SET_FIELD,
+     PUSH_PBB,
+     POP_PBB;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java
new file mode 100644
index 0000000..ce8478d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAggregateStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    U64 getPacketCount();
+    U64 getByteCount();
+    long getFlowCount();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFAggregateStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        U64 getPacketCount();
+        Builder setPacketCount(U64 packetCount);
+        U64 getByteCount();
+        Builder setByteCount(U64 byteCount);
+        long getFlowCount();
+        Builder setFlowCount(long flowCount);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java
new file mode 100644
index 0000000..e2c6cc2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java
@@ -0,0 +1,67 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAggregateStatsRequest extends OFObject, OFStatsRequest<OFAggregateStatsReply>, OFRequest<OFAggregateStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    TableId getTableId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    U64 getCookie() throws UnsupportedOperationException;
+    U64 getCookieMask() throws UnsupportedOperationException;
+    Match getMatch();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFAggregateStatsReply> {
+        OFAggregateStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        U64 getCookie() throws UnsupportedOperationException;
+        Builder setCookie(U64 cookie) throws UnsupportedOperationException;
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        Match getMatch();
+        Builder setMatch(Match match);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java
new file mode 100644
index 0000000..d29b921
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java
@@ -0,0 +1,61 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAsyncGetReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getPacketInMaskEqualMaster();
+    long getPacketInMaskSlave();
+    long getPortStatusMaskEqualMaster();
+    long getPortStatusMaskSlave();
+    long getFlowRemovedMaskEqualMaster();
+    long getFlowRemovedMaskSlave();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFAsyncGetReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getPacketInMaskEqualMaster();
+        Builder setPacketInMaskEqualMaster(long packetInMaskEqualMaster);
+        long getPacketInMaskSlave();
+        Builder setPacketInMaskSlave(long packetInMaskSlave);
+        long getPortStatusMaskEqualMaster();
+        Builder setPortStatusMaskEqualMaster(long portStatusMaskEqualMaster);
+        long getPortStatusMaskSlave();
+        Builder setPortStatusMaskSlave(long portStatusMaskSlave);
+        long getFlowRemovedMaskEqualMaster();
+        Builder setFlowRemovedMaskEqualMaster(long flowRemovedMaskEqualMaster);
+        long getFlowRemovedMaskSlave();
+        Builder setFlowRemovedMaskSlave(long flowRemovedMaskSlave);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java
new file mode 100644
index 0000000..6f52220
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java
@@ -0,0 +1,61 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAsyncGetRequest extends OFObject, OFMessage, OFRequest<OFAsyncGetReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getPacketInMaskEqualMaster();
+    long getPacketInMaskSlave();
+    long getPortStatusMaskEqualMaster();
+    long getPortStatusMaskSlave();
+    long getFlowRemovedMaskEqualMaster();
+    long getFlowRemovedMaskSlave();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFAsyncGetRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getPacketInMaskEqualMaster();
+        Builder setPacketInMaskEqualMaster(long packetInMaskEqualMaster);
+        long getPacketInMaskSlave();
+        Builder setPacketInMaskSlave(long packetInMaskSlave);
+        long getPortStatusMaskEqualMaster();
+        Builder setPortStatusMaskEqualMaster(long portStatusMaskEqualMaster);
+        long getPortStatusMaskSlave();
+        Builder setPortStatusMaskSlave(long portStatusMaskSlave);
+        long getFlowRemovedMaskEqualMaster();
+        Builder setFlowRemovedMaskEqualMaster(long flowRemovedMaskEqualMaster);
+        long getFlowRemovedMaskSlave();
+        Builder setFlowRemovedMaskSlave(long flowRemovedMaskSlave);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java
new file mode 100644
index 0000000..ff3927e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java
@@ -0,0 +1,62 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAsyncSet extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getPacketInMaskEqualMaster();
+    long getPacketInMaskSlave();
+    long getPortStatusMaskEqualMaster();
+    long getPortStatusMaskSlave();
+    long getFlowRemovedMaskEqualMaster();
+    long getFlowRemovedMaskSlave();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFAsyncSet build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getPacketInMaskEqualMaster();
+        Builder setPacketInMaskEqualMaster(long packetInMaskEqualMaster);
+        long getPacketInMaskSlave();
+        Builder setPacketInMaskSlave(long packetInMaskSlave);
+        long getPortStatusMaskEqualMaster();
+        Builder setPortStatusMaskEqualMaster(long portStatusMaskEqualMaster);
+        long getPortStatusMaskSlave();
+        Builder setPortStatusMaskSlave(long portStatusMaskSlave);
+        long getFlowRemovedMaskEqualMaster();
+        Builder setFlowRemovedMaskEqualMaster(long flowRemovedMaskEqualMaster);
+        long getFlowRemovedMaskSlave();
+        Builder setFlowRemovedMaskSlave(long flowRemovedMaskSlave);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java
new file mode 100644
index 0000000..13d5543
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadActionCode {
+     BAD_TYPE,
+     BAD_LEN,
+     BAD_EXPERIMENTER,
+     BAD_EXPERIMENTER_TYPE,
+     BAD_OUT_PORT,
+     BAD_ARGUMENT,
+     EPERM,
+     TOO_MANY,
+     BAD_QUEUE,
+     BAD_OUT_GROUP,
+     MATCH_INCONSISTENT,
+     UNSUPPORTED_ORDER,
+     BAD_TAG,
+     BAD_SET_TYPE,
+     BAD_SET_LEN,
+     BAD_SET_ARGUMENT;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java
new file mode 100644
index 0000000..dfe86d3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java
@@ -0,0 +1,38 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadInstructionCode {
+     UNKNOWN_INST,
+     UNSUP_INST,
+     BAD_TABLE_ID,
+     UNSUP_METADATA,
+     UNSUP_METADATA_MASK,
+     UNSUP_EXP_INST,
+     BAD_EXPERIMENTER,
+     BAD_EXPERIMENTER_TYPE,
+     BAD_LEN,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java
new file mode 100644
index 0000000..02f689a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadMatchCode {
+     BAD_TYPE,
+     BAD_LEN,
+     BAD_TAG,
+     BAD_DL_ADDR_MASK,
+     BAD_NW_ADDR_MASK,
+     BAD_WILDCARDS,
+     BAD_FIELD,
+     BAD_VALUE,
+     BAD_MASK,
+     BAD_PREREQ,
+     DUP_FIELD,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java
new file mode 100644
index 0000000..e254cb2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadRequestCode {
+     BAD_VERSION,
+     BAD_TYPE,
+     BAD_STAT,
+     BAD_EXPERIMENTER,
+     BAD_SUBTYPE,
+     EPERM,
+     BAD_LEN,
+     BUFFER_EMPTY,
+     BUFFER_UNKNOWN,
+     BAD_TABLE_ID,
+     BAD_EXPERIMENTER_TYPE,
+     IS_SLAVE,
+     BAD_PORT,
+     BAD_PACKET,
+     MULTIPART_BUFFER_OVERFLOW;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java
new file mode 100644
index 0000000..f64f16e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBarrierReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFBarrierReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java
new file mode 100644
index 0000000..b41e104
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBarrierRequest extends OFObject, OFMessage, OFRequest<OFBarrierReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFBarrierRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java
new file mode 100644
index 0000000..3d1893e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnArpIdle extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    int getVlanVid();
+    IPv4Address getIpv4Addr();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnArpIdle build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        int getVlanVid();
+        Builder setVlanVid(int vlanVid);
+        IPv4Address getIpv4Addr();
+        Builder setIpv4Addr(IPv4Address ipv4Addr);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java
new file mode 100644
index 0000000..78e74c5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwClearDataReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnBwClearDataReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java
new file mode 100644
index 0000000..bb9c2bb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwClearDataRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnBwClearDataReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnBwClearDataRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java
new file mode 100644
index 0000000..e8ae108
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableGetReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getEnabled();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnBwEnableGetReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getEnabled();
+        Builder setEnabled(long enabled);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java
new file mode 100644
index 0000000..15ccbdc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableGetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnBwEnableGetReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnBwEnableGetRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java
new file mode 100644
index 0000000..6d25d7e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableSetReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getEnable();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnBwEnableSetReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getEnable();
+        Builder setEnable(long enable);
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java
new file mode 100644
index 0000000..2b23800
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableSetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnBwEnableSetReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getEnable();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnBwEnableSetRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getEnable();
+        Builder setEnable(long enable);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java
new file mode 100644
index 0000000..6d11288
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnControllerConnection extends OFObject {
+    OFBsnControllerConnectionState getState();
+    OFAuxId getAuxiliaryId();
+    OFControllerRole getRole();
+    String getUri();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnControllerConnection build();
+        OFBsnControllerConnectionState getState();
+        Builder setState(OFBsnControllerConnectionState state);
+        OFAuxId getAuxiliaryId();
+        Builder setAuxiliaryId(OFAuxId auxiliaryId);
+        OFControllerRole getRole();
+        Builder setRole(OFControllerRole role);
+        String getUri();
+        Builder setUri(String uri);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java
new file mode 100644
index 0000000..df1312f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnControllerConnectionState {
+     BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED,
+     BSN_CONTROLLER_CONNECTION_STATE_CONNECTED;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java
new file mode 100644
index 0000000..ffa03c4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnControllerConnectionsReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnControllerConnection> getConnections();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnControllerConnectionsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnControllerConnection> getConnections();
+        Builder setConnections(List<OFBsnControllerConnection> connections);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java
new file mode 100644
index 0000000..efee303
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnControllerConnectionsRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnControllerConnectionsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnControllerConnectionsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java
new file mode 100644
index 0000000..a8eb119
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnControllerRoleReason {
+     BSN_CONTROLLER_ROLE_REASON_MASTER_REQUEST,
+     BSN_CONTROLLER_ROLE_REASON_CONFIG,
+     BSN_CONTROLLER_ROLE_REASON_EXPERIMENTER;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java
new file mode 100644
index 0000000..0aa4407
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterDescStatsEntry extends OFObject {
+    U64 getCounterId();
+    String getName();
+    String getDescription();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnDebugCounterDescStatsEntry build();
+        U64 getCounterId();
+        Builder setCounterId(U64 counterId);
+        String getName();
+        Builder setName(String name);
+        String getDescription();
+        Builder setDescription(String description);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java
new file mode 100644
index 0000000..5f72426
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterDescStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnDebugCounterDescStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnDebugCounterDescStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnDebugCounterDescStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnDebugCounterDescStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java
new file mode 100644
index 0000000..ebd3b9b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnDebugCounterDescStatsReply>, OFRequest<OFBsnDebugCounterDescStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnDebugCounterDescStatsReply> {
+        OFBsnDebugCounterDescStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java
new file mode 100644
index 0000000..f3d28d0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterStatsEntry extends OFObject {
+    U64 getCounterId();
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnDebugCounterStatsEntry build();
+        U64 getCounterId();
+        Builder setCounterId(U64 counterId);
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java
new file mode 100644
index 0000000..9edf42a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnDebugCounterStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnDebugCounterStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnDebugCounterStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnDebugCounterStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java
new file mode 100644
index 0000000..cb2d5f9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnDebugCounterStatsReply>, OFRequest<OFBsnDebugCounterStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnDebugCounterStatsReply> {
+        OFBsnDebugCounterStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java
new file mode 100644
index 0000000..d709799
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowChecksumBucketStatsEntry extends OFObject {
+    U64 getChecksum();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnFlowChecksumBucketStatsEntry build();
+        U64 getChecksum();
+        Builder setChecksum(U64 checksum);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java
new file mode 100644
index 0000000..4759d45
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowChecksumBucketStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnFlowChecksumBucketStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnFlowChecksumBucketStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnFlowChecksumBucketStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnFlowChecksumBucketStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java
new file mode 100644
index 0000000..1f4ed0d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowChecksumBucketStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnFlowChecksumBucketStatsReply>, OFRequest<OFBsnFlowChecksumBucketStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    TableId getTableId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnFlowChecksumBucketStatsReply> {
+        OFBsnFlowChecksumBucketStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java
new file mode 100644
index 0000000..88a2b14
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdle extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    U64 getCookie();
+    int getPriority();
+    TableId getTableId();
+    Match getMatch();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnFlowIdle build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        int getPriority();
+        Builder setPriority(int priority);
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        Match getMatch();
+        Builder setMatch(Match match);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java
new file mode 100644
index 0000000..cf38356
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableGetReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getEnabled();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnFlowIdleEnableGetReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getEnabled();
+        Builder setEnabled(long enabled);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java
new file mode 100644
index 0000000..aacb08c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableGetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnFlowIdleEnableGetReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnFlowIdleEnableGetRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java
new file mode 100644
index 0000000..6c0b274
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableSetReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getEnable();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnFlowIdleEnableSetReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getEnable();
+        Builder setEnable(long enable);
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java
new file mode 100644
index 0000000..aae991d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableSetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnFlowIdleEnableSetReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getEnable();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnFlowIdleEnableSetRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getEnable();
+        Builder setEnable(long enable);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java
new file mode 100644
index 0000000..d69a444
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableBucketStatsEntry extends OFObject {
+    U128 getChecksum();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnGentableBucketStatsEntry build();
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java
new file mode 100644
index 0000000..0b08078
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableBucketStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnGentableBucketStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnGentableBucketStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnGentableBucketStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnGentableBucketStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java
new file mode 100644
index 0000000..72b5983
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableBucketStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableBucketStatsReply>, OFRequest<OFBsnGentableBucketStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableBucketStatsReply> {
+        OFBsnGentableBucketStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java
new file mode 100644
index 0000000..d0c7015
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableClearReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+    long getDeletedCount();
+    long getErrorCount();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGentableClearReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        long getDeletedCount();
+        Builder setDeletedCount(long deletedCount);
+        long getErrorCount();
+        Builder setErrorCount(long errorCount);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java
new file mode 100644
index 0000000..e61f3f6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableClearRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGentableClearReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+    U128 getChecksum();
+    U128 getChecksumMask();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGentableClearRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        U128 getChecksumMask();
+        Builder setChecksumMask(U128 checksumMask);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java
new file mode 100644
index 0000000..b39fd10
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableDescStatsEntry extends OFObject {
+    GenTableId getTableId();
+    String getName();
+    long getBucketsSize();
+    long getMaxEntries();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnGentableDescStatsEntry build();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        String getName();
+        Builder setName(String name);
+        long getBucketsSize();
+        Builder setBucketsSize(long bucketsSize);
+        long getMaxEntries();
+        Builder setMaxEntries(long maxEntries);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java
new file mode 100644
index 0000000..6d2de9d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableDescStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnGentableDescStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnGentableDescStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnGentableDescStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnGentableDescStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java
new file mode 100644
index 0000000..8fa686d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableDescStatsReply>, OFRequest<OFBsnGentableDescStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableDescStatsReply> {
+        OFBsnGentableDescStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java
new file mode 100644
index 0000000..ef358fa
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryAdd extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+    U128 getChecksum();
+    List<OFBsnTlv> getKey();
+    List<OFBsnTlv> getValue();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGentableEntryAdd build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        List<OFBsnTlv> getKey();
+        Builder setKey(List<OFBsnTlv> key);
+        List<OFBsnTlv> getValue();
+        Builder setValue(List<OFBsnTlv> value);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java
new file mode 100644
index 0000000..79093a3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDelete extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+    List<OFBsnTlv> getKey();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGentableEntryDelete build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        List<OFBsnTlv> getKey();
+        Builder setKey(List<OFBsnTlv> key);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java
new file mode 100644
index 0000000..b0783c7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDescStatsEntry extends OFObject {
+    U128 getChecksum();
+    List<OFBsnTlv> getKey();
+    List<OFBsnTlv> getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnGentableEntryDescStatsEntry build();
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        List<OFBsnTlv> getKey();
+        Builder setKey(List<OFBsnTlv> key);
+        List<OFBsnTlv> getValue();
+        Builder setValue(List<OFBsnTlv> value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java
new file mode 100644
index 0000000..c859998
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDescStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnGentableEntryDescStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnGentableEntryDescStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnGentableEntryDescStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnGentableEntryDescStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java
new file mode 100644
index 0000000..ba35738
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java
@@ -0,0 +1,62 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableEntryDescStatsReply>, OFRequest<OFBsnGentableEntryDescStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+    U128 getChecksum();
+    U128 getChecksumMask();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableEntryDescStatsReply> {
+        OFBsnGentableEntryDescStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        U128 getChecksumMask();
+        Builder setChecksumMask(U128 checksumMask);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java
new file mode 100644
index 0000000..ec0fb5b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryStatsEntry extends OFObject {
+    List<OFBsnTlv> getKey();
+    List<OFBsnTlv> getStats();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnGentableEntryStatsEntry build();
+        List<OFBsnTlv> getKey();
+        Builder setKey(List<OFBsnTlv> key);
+        List<OFBsnTlv> getStats();
+        Builder setStats(List<OFBsnTlv> stats);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java
new file mode 100644
index 0000000..fd88fb7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnGentableEntryStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnGentableEntryStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnGentableEntryStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnGentableEntryStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java
new file mode 100644
index 0000000..90a6475
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java
@@ -0,0 +1,62 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableEntryStatsReply>, OFRequest<OFBsnGentableEntryStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+    U128 getChecksum();
+    U128 getChecksumMask();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableEntryStatsReply> {
+        OFBsnGentableEntryStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        U128 getChecksumMask();
+        Builder setChecksumMask(U128 checksumMask);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java
new file mode 100644
index 0000000..5066e21
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableSetBucketsSize extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    GenTableId getTableId();
+    long getBucketsSize();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGentableSetBucketsSize build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        long getBucketsSize();
+        Builder setBucketsSize(long bucketsSize);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java
new file mode 100644
index 0000000..d4b0cc8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableStatsEntry extends OFObject {
+    GenTableId getTableId();
+    long getEntryCount();
+    U128 getChecksum();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnGentableStatsEntry build();
+        GenTableId getTableId();
+        Builder setTableId(GenTableId tableId);
+        long getEntryCount();
+        Builder setEntryCount(long entryCount);
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java
new file mode 100644
index 0000000..f1d4b74
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnGentableStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnGentableStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnGentableStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnGentableStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java
new file mode 100644
index 0000000..9fc4b7a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableStatsReply>, OFRequest<OFBsnGentableStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableStatsReply> {
+        OFBsnGentableStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java
new file mode 100644
index 0000000..951541b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetInterfacesReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnInterface> getInterfaces();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetInterfacesReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnInterface> getInterfaces();
+        Builder setInterfaces(List<OFBsnInterface> interfaces);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java
new file mode 100644
index 0000000..62951a6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetInterfacesRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetInterfacesReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetInterfacesRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java
new file mode 100644
index 0000000..ddb293b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetIpMaskReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getIndex();
+    long getMask();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetIpMaskReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getIndex();
+        Builder setIndex(short index);
+        long getMask();
+        Builder setMask(long mask);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java
new file mode 100644
index 0000000..0b7a63e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetIpMaskRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetIpMaskReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getIndex();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetIpMaskRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getIndex();
+        Builder setIndex(short index);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java
new file mode 100644
index 0000000..41125e7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetL2TableReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getL2TableEnable();
+    int getL2TablePriority();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetL2TableReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getL2TableEnable();
+        Builder setL2TableEnable(short l2TableEnable);
+        int getL2TablePriority();
+        Builder setL2TablePriority(int l2TablePriority);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java
new file mode 100644
index 0000000..d7afc84
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetL2TableRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetL2TableReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetL2TableRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java
new file mode 100644
index 0000000..44290fc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetMirroringReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getReportMirrorPorts();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetMirroringReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getReportMirrorPorts();
+        Builder setReportMirrorPorts(short reportMirrorPorts);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java
new file mode 100644
index 0000000..0fc5419
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetMirroringRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetMirroringReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getReportMirrorPorts();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetMirroringRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getReportMirrorPorts();
+        Builder setReportMirrorPorts(short reportMirrorPorts);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java
new file mode 100644
index 0000000..32f5647
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetSwitchPipelineReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    String getPipeline();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetSwitchPipelineReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        String getPipeline();
+        Builder setPipeline(String pipeline);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java
new file mode 100644
index 0000000..e4ff994
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetSwitchPipelineRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetSwitchPipelineReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnGetSwitchPipelineRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java
new file mode 100644
index 0000000..1081da9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnHeader extends OFObject, OFExperimenter {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFExperimenter.Builder {
+        OFBsnHeader build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java
new file mode 100644
index 0000000..68946fe
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnHybridGetReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getHybridEnable();
+    int getHybridVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnHybridGetReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getHybridEnable();
+        Builder setHybridEnable(short hybridEnable);
+        int getHybridVersion();
+        Builder setHybridVersion(int hybridVersion);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java
new file mode 100644
index 0000000..0f2a690
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnHybridGetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnHybridGetReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnHybridGetRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java
new file mode 100644
index 0000000..9ce6823
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnImageDescStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    String getImageChecksum();
+    String getStartupConfigChecksum();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnImageDescStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        String getImageChecksum();
+        Builder setImageChecksum(String imageChecksum);
+        String getStartupConfigChecksum();
+        Builder setStartupConfigChecksum(String startupConfigChecksum);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java
new file mode 100644
index 0000000..154a137
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnImageDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnImageDescStatsReply>, OFRequest<OFBsnImageDescStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnImageDescStatsReply> {
+        OFBsnImageDescStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java
new file mode 100644
index 0000000..44f7739
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnInterface extends OFObject {
+    MacAddress getHwAddr();
+    String getName();
+    IPv4Address getIpv4Addr();
+    IPv4Address getIpv4Netmask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnInterface build();
+        MacAddress getHwAddr();
+        Builder setHwAddr(MacAddress hwAddr);
+        String getName();
+        Builder setName(String name);
+        IPv4Address getIpv4Addr();
+        Builder setIpv4Addr(IPv4Address ipv4Addr);
+        IPv4Address getIpv4Netmask();
+        Builder setIpv4Netmask(IPv4Address ipv4Netmask);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java
new file mode 100644
index 0000000..d3b1d72
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java
@@ -0,0 +1,83 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpConvergenceNotif extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getConvergenceStatus();
+    OFPort getPortNo();
+    int getActorSysPriority();
+    MacAddress getActorSysMac();
+    int getActorPortPriority();
+    int getActorPortNum();
+    int getActorKey();
+    int getPartnerSysPriority();
+    MacAddress getPartnerSysMac();
+    int getPartnerPortPriority();
+    int getPartnerPortNum();
+    int getPartnerKey();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnLacpConvergenceNotif build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getConvergenceStatus();
+        Builder setConvergenceStatus(short convergenceStatus);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        int getActorSysPriority();
+        Builder setActorSysPriority(int actorSysPriority);
+        MacAddress getActorSysMac();
+        Builder setActorSysMac(MacAddress actorSysMac);
+        int getActorPortPriority();
+        Builder setActorPortPriority(int actorPortPriority);
+        int getActorPortNum();
+        Builder setActorPortNum(int actorPortNum);
+        int getActorKey();
+        Builder setActorKey(int actorKey);
+        int getPartnerSysPriority();
+        Builder setPartnerSysPriority(int partnerSysPriority);
+        MacAddress getPartnerSysMac();
+        Builder setPartnerSysMac(MacAddress partnerSysMac);
+        int getPartnerPortPriority();
+        Builder setPartnerPortPriority(int partnerPortPriority);
+        int getPartnerPortNum();
+        Builder setPartnerPortNum(int partnerPortNum);
+        int getPartnerKey();
+        Builder setPartnerKey(int partnerKey);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java
new file mode 100644
index 0000000..15505a2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnLacpConvergenceStatusT {
+     SUCCESS,
+     TIMEDOUT,
+     OUT_OF_SYNC;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java
new file mode 100644
index 0000000..ac3ac18
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java
@@ -0,0 +1,74 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpStatsEntry extends OFObject {
+    OFPort getPortNo();
+    int getActorSysPriority();
+    MacAddress getActorSysMac();
+    int getActorPortPriority();
+    int getActorPortNum();
+    int getActorKey();
+    short getConvergenceStatus();
+    int getPartnerSysPriority();
+    MacAddress getPartnerSysMac();
+    int getPartnerPortPriority();
+    int getPartnerPortNum();
+    int getPartnerKey();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnLacpStatsEntry build();
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        int getActorSysPriority();
+        Builder setActorSysPriority(int actorSysPriority);
+        MacAddress getActorSysMac();
+        Builder setActorSysMac(MacAddress actorSysMac);
+        int getActorPortPriority();
+        Builder setActorPortPriority(int actorPortPriority);
+        int getActorPortNum();
+        Builder setActorPortNum(int actorPortNum);
+        int getActorKey();
+        Builder setActorKey(int actorKey);
+        short getConvergenceStatus();
+        Builder setConvergenceStatus(short convergenceStatus);
+        int getPartnerSysPriority();
+        Builder setPartnerSysPriority(int partnerSysPriority);
+        MacAddress getPartnerSysMac();
+        Builder setPartnerSysMac(MacAddress partnerSysMac);
+        int getPartnerPortPriority();
+        Builder setPartnerPortPriority(int partnerPortPriority);
+        int getPartnerPortNum();
+        Builder setPartnerPortNum(int partnerPortNum);
+        int getPartnerKey();
+        Builder setPartnerKey(int partnerKey);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java
new file mode 100644
index 0000000..a1f354f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnLacpStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnLacpStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnLacpStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnLacpStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java
new file mode 100644
index 0000000..f8765f3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnLacpStatsReply>, OFRequest<OFBsnLacpStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnLacpStatsReply> {
+        OFBsnLacpStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java
new file mode 100644
index 0000000..15c0862
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLog extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    OFBsnLoglevel getLoglevel();
+    String getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnLog build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        OFBsnLoglevel getLoglevel();
+        Builder setLoglevel(OFBsnLoglevel loglevel);
+        String getData();
+        Builder setData(String data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java
new file mode 100644
index 0000000..fd9cadd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java
@@ -0,0 +1,34 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnLoglevel {
+     BSN_LOGLEVEL_MSG,
+     BSN_LOGLEVEL_ERROR,
+     BSN_LOGLEVEL_WARN,
+     BSN_LOGLEVEL_INFO,
+     BSN_LOGLEVEL_VERBOSE,
+     BSN_LOGLEVEL_TRACE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java
new file mode 100644
index 0000000..9601a76
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduRxReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+    OFPort getPortNo();
+    short getSlotNum();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnPduRxReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        short getSlotNum();
+        Builder setSlotNum(short slotNum);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java
new file mode 100644
index 0000000..1fa01cf
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduRxRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnPduRxReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getTimeoutMs();
+    OFPort getPortNo();
+    short getSlotNum();
+    byte[] getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnPduRxRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getTimeoutMs();
+        Builder setTimeoutMs(long timeoutMs);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        short getSlotNum();
+        Builder setSlotNum(short slotNum);
+        byte[] getData();
+        Builder setData(byte[] data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java
new file mode 100644
index 0000000..21f999d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduRxTimeout extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    OFPort getPortNo();
+    short getSlotNum();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnPduRxTimeout build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        short getSlotNum();
+        Builder setSlotNum(short slotNum);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java
new file mode 100644
index 0000000..a843ca2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnPduSlotNumT {
+     PDU_SLOT_NUM_ANY;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java
new file mode 100644
index 0000000..50ee693
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduTxReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+    OFPort getPortNo();
+    short getSlotNum();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnPduTxReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        short getSlotNum();
+        Builder setSlotNum(short slotNum);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java
new file mode 100644
index 0000000..22c4f72
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduTxRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnPduTxReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getTxIntervalMs();
+    OFPort getPortNo();
+    short getSlotNum();
+    byte[] getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnPduTxRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getTxIntervalMs();
+        Builder setTxIntervalMs(long txIntervalMs);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        short getSlotNum();
+        Builder setSlotNum(short slotNum);
+        byte[] getData();
+        Builder setData(byte[] data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java
new file mode 100644
index 0000000..1c45232
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java
@@ -0,0 +1,39 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnPktinFlag {
+     BSN_PKTIN_FLAG_PDU,
+     BSN_PKTIN_FLAG_NEW_HOST,
+     BSN_PKTIN_FLAG_STATION_MOVE,
+     BSN_PKTIN_FLAG_ARP,
+     BSN_PKTIN_FLAG_DHCP,
+     BSN_PKTIN_FLAG_L2_CPU,
+     BSN_PKTIN_FLAG_DEBUG,
+     BSN_PKTIN_FLAG_TTL_EXPIRED,
+     BSN_PKTIN_FLAG_L3_MISS,
+     BSN_PKTIN_FLAG_L3_CPU,
+     BSN_PKTIN_FLAG_INGRESS_ACL;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java
new file mode 100644
index 0000000..b73290a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnPortCounter {
+     BSN_PORT_COUNTER_RX_BYTES,
+     BSN_PORT_COUNTER_RX_PACKETS_UNICAST,
+     BSN_PORT_COUNTER_RX_PACKETS_BROADCAST,
+     BSN_PORT_COUNTER_RX_PACKETS_MULTICAST,
+     BSN_PORT_COUNTER_RX_DROPPED,
+     BSN_PORT_COUNTER_RX_ERRORS,
+     BSN_PORT_COUNTER_TX_BYTES,
+     BSN_PORT_COUNTER_TX_PACKETS_UNICAST,
+     BSN_PORT_COUNTER_TX_PACKETS_BROADCAST,
+     BSN_PORT_COUNTER_TX_PACKETS_MULTICAST,
+     BSN_PORT_COUNTER_TX_DROPPED,
+     BSN_PORT_COUNTER_TX_ERRORS,
+     BSN_PORT_COUNTER_RX_RUNTS,
+     BSN_PORT_COUNTER_RX_GIANTS,
+     BSN_PORT_COUNTER_RX_CRC_ERRORS,
+     BSN_PORT_COUNTER_RX_ALIGNMENT_ERRORS,
+     BSN_PORT_COUNTER_RX_SYMBOL_ERRORS,
+     BSN_PORT_COUNTER_RX_PAUSE_INPUT,
+     BSN_PORT_COUNTER_TX_COLLISIONS,
+     BSN_PORT_COUNTER_TX_LATE_COLLISIONS,
+     BSN_PORT_COUNTER_TX_DEFERRED,
+     BSN_PORT_COUNTER_TX_PAUSE_OUTPUT,
+     BSN_PORT_COUNTER_RX_PACKETS,
+     BSN_PORT_COUNTER_TX_PACKETS,
+     BSN_PORT_COUNTER_RX_LENGTH_ERRORS,
+     BSN_PORT_COUNTER_RX_OVERFLOW_ERRORS,
+     BSN_PORT_COUNTER_TX_CARRIER_ERRORS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java
new file mode 100644
index 0000000..19caab7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPortCounterStatsEntry extends OFObject {
+    OFPort getPortNo();
+    List<U64> getValues();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnPortCounterStatsEntry build();
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        List<U64> getValues();
+        Builder setValues(List<U64> values);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java
new file mode 100644
index 0000000..4f618d5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPortCounterStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnPortCounterStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnPortCounterStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnPortCounterStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnPortCounterStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java
new file mode 100644
index 0000000..21ade35
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPortCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnPortCounterStatsReply>, OFRequest<OFBsnPortCounterStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    OFPort getPortNo();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnPortCounterStatsReply> {
+        OFBsnPortCounterStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java
new file mode 100644
index 0000000..d28172c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnRoleStatus extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    OFControllerRole getRole();
+    OFBsnControllerRoleReason getReason();
+    U64 getGenerationId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnRoleStatus build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        OFControllerRole getRole();
+        Builder setRole(OFControllerRole role);
+        OFBsnControllerRoleReason getReason();
+        Builder setReason(OFBsnControllerRoleReason reason);
+        U64 getGenerationId();
+        Builder setGenerationId(U64 generationId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java
new file mode 100644
index 0000000..6d0e2dd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetAuxCxnsReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getNumAux();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetAuxCxnsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getNumAux();
+        Builder setNumAux(long numAux);
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java
new file mode 100644
index 0000000..9c7561f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetAuxCxnsRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetAuxCxnsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getNumAux();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetAuxCxnsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getNumAux();
+        Builder setNumAux(long numAux);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java
new file mode 100644
index 0000000..c435362
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetIpMask extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getIndex();
+    long getMask();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetIpMask build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getIndex();
+        Builder setIndex(short index);
+        long getMask();
+        Builder setMask(long mask);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java
new file mode 100644
index 0000000..3847e3a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetL2TableReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    boolean isL2TableEnable();
+    int getL2TablePriority();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetL2TableReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        boolean isL2TableEnable();
+        Builder setL2TableEnable(boolean l2TableEnable);
+        int getL2TablePriority();
+        Builder setL2TablePriority(int l2TablePriority);
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java
new file mode 100644
index 0000000..efff0cc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetL2TableRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetL2TableReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    boolean isL2TableEnable();
+    int getL2TablePriority();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetL2TableRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        boolean isL2TableEnable();
+        Builder setL2TableEnable(boolean l2TableEnable);
+        int getL2TablePriority();
+        Builder setL2TablePriority(int l2TablePriority);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java
new file mode 100644
index 0000000..4451548
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetLacpReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+    OFPort getPortNo();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetLacpReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java
new file mode 100644
index 0000000..a9c133d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetLacpRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetLacpReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getEnabled();
+    OFPort getPortNo();
+    int getActorSysPriority();
+    MacAddress getActorSysMac();
+    int getActorPortPriority();
+    int getActorPortNum();
+    int getActorKey();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetLacpRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getEnabled();
+        Builder setEnabled(short enabled);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        int getActorSysPriority();
+        Builder setActorSysPriority(int actorSysPriority);
+        MacAddress getActorSysMac();
+        Builder setActorSysMac(MacAddress actorSysMac);
+        int getActorPortPriority();
+        Builder setActorPortPriority(int actorPortPriority);
+        int getActorPortNum();
+        Builder setActorPortNum(int actorPortNum);
+        int getActorKey();
+        Builder setActorKey(int actorKey);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java
new file mode 100644
index 0000000..2a0e36c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetMirroring extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    short getReportMirrorPorts();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetMirroring build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        short getReportMirrorPorts();
+        Builder setReportMirrorPorts(short reportMirrorPorts);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java
new file mode 100644
index 0000000..33b4834
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetPktinSuppressionReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetPktinSuppressionReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java
new file mode 100644
index 0000000..07a3f88
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java
@@ -0,0 +1,63 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetPktinSuppressionRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetPktinSuppressionReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    boolean isEnabled();
+    int getIdleTimeout();
+    int getHardTimeout();
+    int getPriority();
+    U64 getCookie();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetPktinSuppressionRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        boolean isEnabled();
+        Builder setEnabled(boolean enabled);
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        int getPriority();
+        Builder setPriority(int priority);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java
new file mode 100644
index 0000000..23f377a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetSwitchPipelineReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetSwitchPipelineReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java
new file mode 100644
index 0000000..5c6bb48
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetSwitchPipelineRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetSwitchPipelineReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    String getPipeline();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnSetSwitchPipelineRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        String getPipeline();
+        Builder setPipeline(String pipeline);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java
new file mode 100644
index 0000000..a88be4b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnShellCommand extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getService();
+    byte[] getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnShellCommand build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getService();
+        Builder setService(long service);
+        byte[] getData();
+        Builder setData(byte[] data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java
new file mode 100644
index 0000000..65f183a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnShellOutput extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    byte[] getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnShellOutput build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        byte[] getData();
+        Builder setData(byte[] data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java
new file mode 100644
index 0000000..07ea119
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnShellStatus extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnShellStatus build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java
new file mode 100644
index 0000000..ee045bc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnStatsReply extends OFObject, OFExperimenterStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFExperimenterStatsReply.Builder {
+        OFBsnStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java
new file mode 100644
index 0000000..f65bbb4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnStatsRequest<T extends OFBsnStatsReply> extends OFObject, OFExperimenterStatsRequest<T> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder<T> createBuilder();
+    public interface Builder<T extends OFBsnStatsReply> extends OFExperimenterStatsRequest.Builder<T> {
+        OFBsnStatsRequest<T> build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder<T> setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder<T> setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java
new file mode 100644
index 0000000..7d11ed0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSwitchPipelineStatsEntry extends OFObject {
+    String getPipeline();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnSwitchPipelineStatsEntry build();
+        String getPipeline();
+        Builder setPipeline(String pipeline);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java
new file mode 100644
index 0000000..40cee33
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSwitchPipelineStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnSwitchPipelineStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnSwitchPipelineStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnSwitchPipelineStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnSwitchPipelineStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java
new file mode 100644
index 0000000..e395412
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSwitchPipelineStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnSwitchPipelineStatsReply>, OFRequest<OFBsnSwitchPipelineStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnSwitchPipelineStatsReply> {
+        OFBsnSwitchPipelineStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java
new file mode 100644
index 0000000..399a16a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableChecksumStatsEntry extends OFObject {
+    TableId getTableId();
+    U64 getChecksum();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnTableChecksumStatsEntry build();
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        U64 getChecksum();
+        Builder setChecksum(U64 checksum);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java
new file mode 100644
index 0000000..dadef01c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableChecksumStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnTableChecksumStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnTableChecksumStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnTableChecksumStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnTableChecksumStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java
new file mode 100644
index 0000000..121f74b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableChecksumStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnTableChecksumStatsReply>, OFRequest<OFBsnTableChecksumStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnTableChecksumStatsReply> {
+        OFBsnTableChecksumStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java
new file mode 100644
index 0000000..f86f447
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableSetBucketsSize extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    TableId getTableId();
+    long getBucketsSize();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnTableSetBucketsSize build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        long getBucketsSize();
+        Builder setBucketsSize(long bucketsSize);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java
new file mode 100644
index 0000000..0883a10
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnTcpFlag {
+     BSN_TCP_FLAG_FIN,
+     BSN_TCP_FLAG_SYN,
+     BSN_TCP_FLAG_RST,
+     BSN_TCP_FLAG_PSH,
+     BSN_TCP_FLAG_ACK,
+     BSN_TCP_FLAG_URG,
+     BSN_TCP_FLAG_ECE,
+     BSN_TCP_FLAG_CWR,
+     BSN_TCP_FLAG_NS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java
new file mode 100644
index 0000000..2b73179
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTimeReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    U64 getTimeMs();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnTimeReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        U64 getTimeMs();
+        Builder setTimeMs(U64 timeMs);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java
new file mode 100644
index 0000000..438f2d5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTimeRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnTimeReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnTimeRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java
new file mode 100644
index 0000000..afdd4c8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnUdfAnchor {
+     BSN_UDF_ANCHOR_PACKET_START,
+     BSN_UDF_ANCHOR_L3_HEADER_START,
+     BSN_UDF_ANCHOR_L4_HEADER_START;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java
new file mode 100644
index 0000000..5e17e22
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortCreateReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+    long getVportNo();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnVirtualPortCreateReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+        long getVportNo();
+        Builder setVportNo(long vportNo);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java
new file mode 100644
index 0000000..e916e0f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortCreateRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnVirtualPortCreateReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    OFBsnVport getVport();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnVirtualPortCreateRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        OFBsnVport getVport();
+        Builder setVport(OFBsnVport vport);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java
new file mode 100644
index 0000000..d83182e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortRemoveReply extends OFObject, OFBsnHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getStatus();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnVirtualPortRemoveReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getStatus();
+        Builder setStatus(long status);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java
new file mode 100644
index 0000000..ae43dea
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortRemoveRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnVirtualPortRemoveReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    long getVportNo();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnHeader.Builder {
+        OFBsnVirtualPortRemoveRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        long getVportNo();
+        Builder setVportNo(long vportNo);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java
new file mode 100644
index 0000000..0c85363
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVlanCounterConstants {
+     BSN_VLAN_ALL;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java
new file mode 100644
index 0000000..d8e2dde
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVlanCounterStatsEntry extends OFObject {
+    int getVlanVid();
+    List<U64> getValues();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnVlanCounterStatsEntry build();
+        int getVlanVid();
+        Builder setVlanVid(int vlanVid);
+        List<U64> getValues();
+        Builder setValues(List<U64> values);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java
new file mode 100644
index 0000000..0789370
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVlanCounterStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnVlanCounterStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnVlanCounterStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnVlanCounterStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnVlanCounterStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java
new file mode 100644
index 0000000..b29f0d9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVlanCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnVlanCounterStatsReply>, OFRequest<OFBsnVlanCounterStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    int getVlanVid();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnVlanCounterStatsReply> {
+        OFBsnVlanCounterStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        int getVlanVid();
+        Builder setVlanVid(int vlanVid);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java
new file mode 100644
index 0000000..911f702
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVlanCounterT {
+     BSN_VLAN_COUNTER_RX_BYTES,
+     BSN_VLAN_COUNTER_RX_PACKETS,
+     BSN_VLAN_COUNTER_TX_BYTES,
+     BSN_VLAN_COUNTER_TX_PACKETS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java
new file mode 100644
index 0000000..20f71bf
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVport extends OFObject {
+    int getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnVport build();
+        int getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java
new file mode 100644
index 0000000..58144b1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java
@@ -0,0 +1,77 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVportL2Gre extends OFObject, OFBsnVport {
+    int getType();
+    Set<OFBsnVportL2GreFlags> getFlags();
+    OFPort getPortNo();
+    OFPort getLoopbackPortNo();
+    MacAddress getLocalMac();
+    MacAddress getNhMac();
+    IPv4Address getSrcIp();
+    IPv4Address getDstIp();
+    short getDscp();
+    short getTtl();
+    long getVpn();
+    long getRateLimit();
+    String getIfName();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnVport.Builder {
+        OFBsnVportL2Gre build();
+        int getType();
+        Set<OFBsnVportL2GreFlags> getFlags();
+        Builder setFlags(Set<OFBsnVportL2GreFlags> flags);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        OFPort getLoopbackPortNo();
+        Builder setLoopbackPortNo(OFPort loopbackPortNo);
+        MacAddress getLocalMac();
+        Builder setLocalMac(MacAddress localMac);
+        MacAddress getNhMac();
+        Builder setNhMac(MacAddress nhMac);
+        IPv4Address getSrcIp();
+        Builder setSrcIp(IPv4Address srcIp);
+        IPv4Address getDstIp();
+        Builder setDstIp(IPv4Address dstIp);
+        short getDscp();
+        Builder setDscp(short dscp);
+        short getTtl();
+        Builder setTtl(short ttl);
+        long getVpn();
+        Builder setVpn(long vpn);
+        long getRateLimit();
+        Builder setRateLimit(long rateLimit);
+        String getIfName();
+        Builder setIfName(String ifName);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java
new file mode 100644
index 0000000..8a8728b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVportL2GreFlags {
+     BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID,
+     BSN_VPORT_L2GRE_DSCP_ASSIGN,
+     BSN_VPORT_L2GRE_DSCP_COPY,
+     BSN_VPORT_L2GRE_LOOPBACK_IS_VALID,
+     BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java
new file mode 100644
index 0000000..3b05be9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVportQInQ extends OFObject, OFBsnVport {
+    int getType();
+    long getPortNo();
+    int getIngressTpid();
+    int getIngressVlanId();
+    int getEgressTpid();
+    int getEgressVlanId();
+    String getIfName();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnVport.Builder {
+        OFBsnVportQInQ build();
+        int getType();
+        long getPortNo();
+        Builder setPortNo(long portNo);
+        int getIngressTpid();
+        Builder setIngressTpid(int ingressTpid);
+        int getIngressVlanId();
+        Builder setIngressVlanId(int ingressVlanId);
+        int getEgressTpid();
+        Builder setEgressTpid(int egressTpid);
+        int getEgressVlanId();
+        Builder setEgressVlanId(int egressVlanId);
+        String getIfName();
+        Builder setIfName(String ifName);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java
new file mode 100644
index 0000000..7e2a4be
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVportQInQUntagged {
+     BSN_VPORT_Q_IN_Q_UNTAGGED;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java
new file mode 100644
index 0000000..f5e3132
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVportStatus {
+     BSN_VPORT_STATUS_OK,
+     BSN_VPORT_STATUS_FAILED;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java
new file mode 100644
index 0000000..21088de
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVrfCounterConstants {
+     BSN_VRF_ALL;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java
new file mode 100644
index 0000000..18d6245
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVrfCounterStatsEntry extends OFObject {
+    long getVrf();
+    List<U64> getValues();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnVrfCounterStatsEntry build();
+        long getVrf();
+        Builder setVrf(long vrf);
+        List<U64> getValues();
+        Builder setValues(List<U64> values);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java
new file mode 100644
index 0000000..2a564d0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVrfCounterStatsReply extends OFObject, OFBsnStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    List<OFBsnVrfCounterStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsReply.Builder {
+        OFBsnVrfCounterStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        List<OFBsnVrfCounterStatsEntry> getEntries();
+        Builder setEntries(List<OFBsnVrfCounterStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java
new file mode 100644
index 0000000..36bd75b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVrfCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnVrfCounterStatsReply>, OFRequest<OFBsnVrfCounterStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+    long getSubtype();
+    long getVrf();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnStatsRequest.Builder<OFBsnVrfCounterStatsReply> {
+        OFBsnVrfCounterStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+        long getSubtype();
+        long getVrf();
+        Builder setVrf(long vrf);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java
new file mode 100644
index 0000000..38e537d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVrfCounterT {
+     BSN_VRF_COUNTER_BYTES,
+     BSN_VRF_COUNTER_PACKETS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java
new file mode 100644
index 0000000..02af70a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBucket extends OFObject {
+    int getWeight();
+    OFPort getWatchPort();
+    OFGroup getWatchGroup();
+    List<OFAction> getActions();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBucket build();
+        int getWeight();
+        Builder setWeight(int weight);
+        OFPort getWatchPort();
+        Builder setWatchPort(OFPort watchPort);
+        OFGroup getWatchGroup();
+        Builder setWatchGroup(OFGroup watchGroup);
+        List<OFAction> getActions();
+        Builder setActions(List<OFAction> actions);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java
new file mode 100644
index 0000000..7ee630a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBucketCounter extends OFObject {
+    U64 getPacketCount();
+    U64 getByteCount();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBucketCounter build();
+        U64 getPacketCount();
+        Builder setPacketCount(U64 packetCount);
+        U64 getByteCount();
+        Builder setByteCount(U64 byteCount);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java
new file mode 100644
index 0000000..5444962
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java
@@ -0,0 +1,38 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFCapabilities {
+     FLOW_STATS,
+     TABLE_STATS,
+     PORT_STATS,
+     STP,
+     RESERVED,
+     IP_REASM,
+     QUEUE_STATS,
+     ARP_MATCH_IP,
+     GROUP_STATS,
+     PORT_BLOCKED;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java
new file mode 100644
index 0000000..8ea061b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFConfigFlags {
+     FRAG_NORMAL,
+     FRAG_DROP,
+     FRAG_REASM,
+     FRAG_MASK,
+     INVALID_TTL_TO_CONTROLLER;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java
new file mode 100644
index 0000000..c2759d9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFControllerMaxLen {
+     MAX,
+     NO_BUFFER;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java
new file mode 100644
index 0000000..4880189
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFControllerRole {
+     ROLE_NOCHANGE,
+     ROLE_EQUAL,
+     ROLE_MASTER,
+     ROLE_SLAVE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java
new file mode 100644
index 0000000..cdcd1bf
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java
@@ -0,0 +1,64 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFDescStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    String getMfrDesc();
+    String getHwDesc();
+    String getSwDesc();
+    String getSerialNum();
+    String getDpDesc();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFDescStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        String getMfrDesc();
+        Builder setMfrDesc(String mfrDesc);
+        String getHwDesc();
+        Builder setHwDesc(String hwDesc);
+        String getSwDesc();
+        Builder setSwDesc(String swDesc);
+        String getSerialNum();
+        Builder setSerialNum(String serialNum);
+        String getDpDesc();
+        Builder setDpDesc(String dpDesc);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java
new file mode 100644
index 0000000..e0efe40
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFDescStatsRequest extends OFObject, OFStatsRequest<OFDescStatsReply>, OFRequest<OFDescStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFDescStatsReply> {
+        OFDescStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java
new file mode 100644
index 0000000..ba8b181
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFEchoReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    byte[] getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFEchoReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        byte[] getData();
+        Builder setData(byte[] data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java
new file mode 100644
index 0000000..6276280
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFEchoRequest extends OFObject, OFMessage, OFRequest<OFEchoReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    byte[] getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFEchoRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        byte[] getData();
+        Builder setData(byte[] data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java
new file mode 100644
index 0000000..dea4e97
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFErrorMsg extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java
new file mode 100644
index 0000000..53fd319
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFErrorType {
+     HELLO_FAILED,
+     BAD_REQUEST,
+     BAD_ACTION,
+     FLOW_MOD_FAILED,
+     PORT_MOD_FAILED,
+     QUEUE_OP_FAILED,
+     BAD_INSTRUCTION,
+     BAD_MATCH,
+     GROUP_MOD_FAILED,
+     TABLE_MOD_FAILED,
+     SWITCH_CONFIG_FAILED,
+     ROLE_REQUEST_FAILED,
+     EXPERIMENTER,
+     METER_MOD_FAILED,
+     TABLE_FEATURES_FAILED;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java
new file mode 100644
index 0000000..f953879
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenter extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFExperimenter build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java
new file mode 100644
index 0000000..a308ab2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenterStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getExperimenter();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFExperimenterStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getExperimenter();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java
new file mode 100644
index 0000000..bb92557
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenterStatsRequest<T extends OFExperimenterStatsReply> extends OFObject, OFStatsRequest<T> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getExperimenter();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder<T> createBuilder();
+    public interface Builder<T extends OFExperimenterStatsReply> extends OFStatsRequest.Builder<T> {
+        OFExperimenterStatsRequest<T> build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder<T> setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder<T> setFlags(Set<OFStatsRequestFlags> flags);
+        long getExperimenter();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java
new file mode 100644
index 0000000..afc2f1f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java
@@ -0,0 +1,74 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factories.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public final class OFFactories {
+
+    private static final GenericReader GENERIC_READER = new GenericReader();
+
+    public static OFFactory getFactory(OFVersion version) {
+        switch(version) {
+            case OF_10:
+                return org.projectfloodlight.openflow.protocol.ver10.OFFactoryVer10.INSTANCE;
+            case OF_11:
+                return org.projectfloodlight.openflow.protocol.ver11.OFFactoryVer11.INSTANCE;
+            case OF_12:
+                return org.projectfloodlight.openflow.protocol.ver12.OFFactoryVer12.INSTANCE;
+            case OF_13:
+                return org.projectfloodlight.openflow.protocol.ver13.OFFactoryVer13.INSTANCE;
+            default:
+                throw new IllegalArgumentException("Unknown version: "+version);
+            }
+    }
+
+    private static class GenericReader implements OFMessageReader<OFMessage> {
+        public OFMessage readFrom(ChannelBuffer bb) throws OFParseError {
+            short wireVersion = U8.f(bb.getByte(0));
+            OFFactory factory;
+            switch (wireVersion) {
+            case 1:
+                factory = org.projectfloodlight.openflow.protocol.ver10.OFFactoryVer10.INSTANCE;
+                break;
+            case 2:
+                factory = org.projectfloodlight.openflow.protocol.ver11.OFFactoryVer11.INSTANCE;
+                break;
+            case 3:
+                factory = org.projectfloodlight.openflow.protocol.ver12.OFFactoryVer12.INSTANCE;
+                break;
+            case 4:
+                factory = org.projectfloodlight.openflow.protocol.ver13.OFFactoryVer13.INSTANCE;
+                break;
+            default:
+                throw new IllegalArgumentException("Unknown wire version: " + wireVersion);
+            }
+            return factory.getReader().readFrom(bb);
+        }
+    }
+
+    public static OFMessageReader<OFMessage> getGenericReader() {
+        return GENERIC_READER;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java
new file mode 100644
index 0000000..7f1ae47
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java
@@ -0,0 +1,336 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+
+public interface OFFactory extends XidGenerator {
+    // Subfactories
+    OFActions actions();
+    OFInstructions instructions();
+    OFMeterBands meterBands();
+    OFOxms oxms();
+    OFQueueProps queueProps();
+    OFErrorMsgs errorMsgs();
+    OFActionIds actionIds();
+    OFInstructionIds instructionIds();
+    OFBsnTlvs bsnTlvs();
+
+    OFAggregateStatsReply.Builder buildAggregateStatsReply();
+    OFAggregateStatsRequest.Builder buildAggregateStatsRequest();
+    OFBarrierReply.Builder buildBarrierReply();
+    OFBarrierReply barrierReply();
+    OFBarrierRequest.Builder buildBarrierRequest();
+    OFBarrierRequest barrierRequest();
+    OFBsnBwClearDataReply.Builder buildBsnBwClearDataReply();
+    OFBsnBwClearDataReply bsnBwClearDataReply(long status);
+    OFBsnBwClearDataRequest.Builder buildBsnBwClearDataRequest();
+    OFBsnBwClearDataRequest bsnBwClearDataRequest();
+    OFBsnBwEnableGetReply.Builder buildBsnBwEnableGetReply();
+    OFBsnBwEnableGetReply bsnBwEnableGetReply(long enabled);
+    OFBsnBwEnableGetRequest.Builder buildBsnBwEnableGetRequest();
+    OFBsnBwEnableGetRequest bsnBwEnableGetRequest();
+    OFBsnBwEnableSetReply.Builder buildBsnBwEnableSetReply();
+    OFBsnBwEnableSetRequest.Builder buildBsnBwEnableSetRequest();
+    OFBsnBwEnableSetRequest bsnBwEnableSetRequest(long enable);
+    OFBsnGetInterfacesReply.Builder buildBsnGetInterfacesReply();
+    OFBsnGetInterfacesReply bsnGetInterfacesReply(List<OFBsnInterface> interfaces);
+    OFBsnGetInterfacesRequest.Builder buildBsnGetInterfacesRequest();
+    OFBsnGetInterfacesRequest bsnGetInterfacesRequest();
+    OFBsnGetIpMaskReply.Builder buildBsnGetIpMaskReply() throws UnsupportedOperationException;
+    OFBsnGetIpMaskRequest.Builder buildBsnGetIpMaskRequest() throws UnsupportedOperationException;
+    OFBsnGetIpMaskRequest bsnGetIpMaskRequest(short index);
+    OFBsnGetL2TableReply.Builder buildBsnGetL2TableReply() throws UnsupportedOperationException;
+    OFBsnGetL2TableRequest.Builder buildBsnGetL2TableRequest() throws UnsupportedOperationException;
+    OFBsnGetL2TableRequest bsnGetL2TableRequest();
+    OFBsnGetMirroringReply.Builder buildBsnGetMirroringReply();
+    OFBsnGetMirroringReply bsnGetMirroringReply(short reportMirrorPorts);
+    OFBsnGetMirroringRequest.Builder buildBsnGetMirroringRequest();
+    OFBsnGetMirroringRequest bsnGetMirroringRequest(short reportMirrorPorts);
+    OFBsnHybridGetReply.Builder buildBsnHybridGetReply() throws UnsupportedOperationException;
+    OFBsnHybridGetRequest.Builder buildBsnHybridGetRequest() throws UnsupportedOperationException;
+    OFBsnHybridGetRequest bsnHybridGetRequest();
+    OFBsnInterface.Builder buildBsnInterface();
+    OFBsnPduRxReply.Builder buildBsnPduRxReply();
+    OFBsnPduRxRequest.Builder buildBsnPduRxRequest();
+    OFBsnPduRxTimeout.Builder buildBsnPduRxTimeout();
+    OFBsnPduTxReply.Builder buildBsnPduTxReply();
+    OFBsnPduTxRequest.Builder buildBsnPduTxRequest();
+    OFBsnSetIpMask.Builder buildBsnSetIpMask() throws UnsupportedOperationException;
+    OFBsnSetL2TableReply.Builder buildBsnSetL2TableReply() throws UnsupportedOperationException;
+    OFBsnSetL2TableRequest.Builder buildBsnSetL2TableRequest() throws UnsupportedOperationException;
+    OFBsnSetMirroring.Builder buildBsnSetMirroring();
+    OFBsnSetMirroring bsnSetMirroring(short reportMirrorPorts);
+    OFBsnSetPktinSuppressionReply.Builder buildBsnSetPktinSuppressionReply();
+    OFBsnSetPktinSuppressionReply bsnSetPktinSuppressionReply(long status);
+    OFBsnSetPktinSuppressionRequest.Builder buildBsnSetPktinSuppressionRequest();
+    OFBsnShellCommand.Builder buildBsnShellCommand() throws UnsupportedOperationException;
+    OFBsnShellOutput.Builder buildBsnShellOutput() throws UnsupportedOperationException;
+    OFBsnShellOutput bsnShellOutput(byte[] data);
+    OFBsnShellStatus.Builder buildBsnShellStatus() throws UnsupportedOperationException;
+    OFBsnShellStatus bsnShellStatus(long status);
+    OFBsnVirtualPortCreateReply.Builder buildBsnVirtualPortCreateReply();
+    OFBsnVirtualPortCreateRequest.Builder buildBsnVirtualPortCreateRequest();
+    OFBsnVirtualPortCreateRequest bsnVirtualPortCreateRequest(OFBsnVport vport);
+    OFBsnVirtualPortRemoveReply.Builder buildBsnVirtualPortRemoveReply();
+    OFBsnVirtualPortRemoveReply bsnVirtualPortRemoveReply(long status);
+    OFBsnVirtualPortRemoveRequest.Builder buildBsnVirtualPortRemoveRequest();
+    OFBsnVirtualPortRemoveRequest bsnVirtualPortRemoveRequest(long vportNo);
+    OFBsnVportL2Gre.Builder buildBsnVportL2Gre();
+    OFBsnVportQInQ.Builder buildBsnVportQInQ();
+    OFDescStatsReply.Builder buildDescStatsReply();
+    OFDescStatsRequest.Builder buildDescStatsRequest();
+    OFDescStatsRequest descStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFEchoReply.Builder buildEchoReply();
+    OFEchoReply echoReply(byte[] data);
+    OFEchoRequest.Builder buildEchoRequest();
+    OFEchoRequest echoRequest(byte[] data);
+    OFFeaturesReply.Builder buildFeaturesReply();
+    OFFeaturesRequest.Builder buildFeaturesRequest();
+    OFFeaturesRequest featuresRequest();
+    OFFlowAdd.Builder buildFlowAdd();
+    OFFlowDelete.Builder buildFlowDelete();
+    OFFlowDeleteStrict.Builder buildFlowDeleteStrict();
+    OFFlowModify.Builder buildFlowModify();
+    OFFlowModifyStrict.Builder buildFlowModifyStrict();
+    OFFlowRemoved.Builder buildFlowRemoved();
+    OFFlowStatsEntry.Builder buildFlowStatsEntry();
+    OFFlowStatsReply.Builder buildFlowStatsReply();
+    OFFlowStatsRequest.Builder buildFlowStatsRequest();
+    OFGetConfigReply.Builder buildGetConfigReply();
+    OFGetConfigRequest.Builder buildGetConfigRequest();
+    OFGetConfigRequest getConfigRequest();
+    OFHello.Builder buildHello();
+    OFHello hello(List<OFHelloElem> elements);
+    OFMatchV1.Builder buildMatchV1() throws UnsupportedOperationException;
+    OFNiciraControllerRoleReply.Builder buildNiciraControllerRoleReply() throws UnsupportedOperationException;
+    OFNiciraControllerRoleReply niciraControllerRoleReply(OFNiciraControllerRole role);
+    OFNiciraControllerRoleRequest.Builder buildNiciraControllerRoleRequest() throws UnsupportedOperationException;
+    OFNiciraControllerRoleRequest niciraControllerRoleRequest(OFNiciraControllerRole role);
+    OFPacketIn.Builder buildPacketIn();
+    OFPacketOut.Builder buildPacketOut();
+    OFPacketQueue.Builder buildPacketQueue();
+    OFPortDesc.Builder buildPortDesc();
+    OFPortMod.Builder buildPortMod();
+    OFPortStatsEntry.Builder buildPortStatsEntry();
+    OFPortStatsReply.Builder buildPortStatsReply();
+    OFPortStatsRequest.Builder buildPortStatsRequest();
+    OFPortStatus.Builder buildPortStatus();
+    OFQueueGetConfigReply.Builder buildQueueGetConfigReply();
+    OFQueueGetConfigRequest.Builder buildQueueGetConfigRequest();
+    OFQueueGetConfigRequest queueGetConfigRequest(OFPort port);
+    OFQueueStatsEntry.Builder buildQueueStatsEntry();
+    OFQueueStatsReply.Builder buildQueueStatsReply();
+    OFQueueStatsRequest.Builder buildQueueStatsRequest();
+    OFSetConfig.Builder buildSetConfig();
+    OFTableMod.Builder buildTableMod();
+    OFTableStatsEntry.Builder buildTableStatsEntry();
+    OFTableStatsReply.Builder buildTableStatsReply();
+    OFTableStatsRequest.Builder buildTableStatsRequest();
+    OFTableStatsRequest tableStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBucket.Builder buildBucket() throws UnsupportedOperationException;
+    OFBucketCounter.Builder buildBucketCounter() throws UnsupportedOperationException;
+    OFBucketCounter bucketCounter(U64 packetCount, U64 byteCount);
+    OFGroupAdd.Builder buildGroupAdd() throws UnsupportedOperationException;
+    OFGroupDelete.Builder buildGroupDelete() throws UnsupportedOperationException;
+    OFGroupDescStatsEntry.Builder buildGroupDescStatsEntry() throws UnsupportedOperationException;
+    OFGroupDescStatsReply.Builder buildGroupDescStatsReply() throws UnsupportedOperationException;
+    OFGroupDescStatsRequest.Builder buildGroupDescStatsRequest() throws UnsupportedOperationException;
+    OFGroupDescStatsRequest groupDescStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFGroupModify.Builder buildGroupModify() throws UnsupportedOperationException;
+    OFGroupStatsEntry.Builder buildGroupStatsEntry() throws UnsupportedOperationException;
+    OFGroupStatsReply.Builder buildGroupStatsReply() throws UnsupportedOperationException;
+    OFGroupStatsRequest.Builder buildGroupStatsRequest() throws UnsupportedOperationException;
+    OFMatchV2.Builder buildMatchV2() throws UnsupportedOperationException;
+    OFGroupFeaturesStatsReply.Builder buildGroupFeaturesStatsReply() throws UnsupportedOperationException;
+    OFGroupFeaturesStatsRequest.Builder buildGroupFeaturesStatsRequest() throws UnsupportedOperationException;
+    OFGroupFeaturesStatsRequest groupFeaturesStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFMatchV3.Builder buildMatchV3() throws UnsupportedOperationException;
+    OFMatchV3 matchV3(OFOxmList oxmList);
+    OFRoleReply.Builder buildRoleReply() throws UnsupportedOperationException;
+    OFRoleRequest.Builder buildRoleRequest() throws UnsupportedOperationException;
+    OFAsyncGetReply.Builder buildAsyncGetReply() throws UnsupportedOperationException;
+    OFAsyncGetRequest.Builder buildAsyncGetRequest() throws UnsupportedOperationException;
+    OFAsyncSet.Builder buildAsyncSet() throws UnsupportedOperationException;
+    OFBsnArpIdle.Builder buildBsnArpIdle() throws UnsupportedOperationException;
+    OFBsnControllerConnection.Builder buildBsnControllerConnection() throws UnsupportedOperationException;
+    OFBsnControllerConnectionsReply.Builder buildBsnControllerConnectionsReply() throws UnsupportedOperationException;
+    OFBsnControllerConnectionsReply bsnControllerConnectionsReply(List<OFBsnControllerConnection> connections);
+    OFBsnControllerConnectionsRequest.Builder buildBsnControllerConnectionsRequest() throws UnsupportedOperationException;
+    OFBsnControllerConnectionsRequest bsnControllerConnectionsRequest();
+    OFBsnDebugCounterDescStatsEntry.Builder buildBsnDebugCounterDescStatsEntry() throws UnsupportedOperationException;
+    OFBsnDebugCounterDescStatsReply.Builder buildBsnDebugCounterDescStatsReply() throws UnsupportedOperationException;
+    OFBsnDebugCounterDescStatsRequest.Builder buildBsnDebugCounterDescStatsRequest() throws UnsupportedOperationException;
+    OFBsnDebugCounterDescStatsRequest bsnDebugCounterDescStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnDebugCounterStatsEntry.Builder buildBsnDebugCounterStatsEntry() throws UnsupportedOperationException;
+    OFBsnDebugCounterStatsEntry bsnDebugCounterStatsEntry(U64 counterId, U64 value);
+    OFBsnDebugCounterStatsReply.Builder buildBsnDebugCounterStatsReply() throws UnsupportedOperationException;
+    OFBsnDebugCounterStatsRequest.Builder buildBsnDebugCounterStatsRequest() throws UnsupportedOperationException;
+    OFBsnDebugCounterStatsRequest bsnDebugCounterStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnFlowChecksumBucketStatsEntry.Builder buildBsnFlowChecksumBucketStatsEntry() throws UnsupportedOperationException;
+    OFBsnFlowChecksumBucketStatsEntry bsnFlowChecksumBucketStatsEntry(U64 checksum);
+    OFBsnFlowChecksumBucketStatsReply.Builder buildBsnFlowChecksumBucketStatsReply() throws UnsupportedOperationException;
+    OFBsnFlowChecksumBucketStatsRequest.Builder buildBsnFlowChecksumBucketStatsRequest() throws UnsupportedOperationException;
+    OFBsnFlowIdle.Builder buildBsnFlowIdle() throws UnsupportedOperationException;
+    OFBsnFlowIdleEnableGetReply.Builder buildBsnFlowIdleEnableGetReply() throws UnsupportedOperationException;
+    OFBsnFlowIdleEnableGetReply bsnFlowIdleEnableGetReply(long enabled);
+    OFBsnFlowIdleEnableGetRequest.Builder buildBsnFlowIdleEnableGetRequest() throws UnsupportedOperationException;
+    OFBsnFlowIdleEnableGetRequest bsnFlowIdleEnableGetRequest();
+    OFBsnFlowIdleEnableSetReply.Builder buildBsnFlowIdleEnableSetReply() throws UnsupportedOperationException;
+    OFBsnFlowIdleEnableSetRequest.Builder buildBsnFlowIdleEnableSetRequest() throws UnsupportedOperationException;
+    OFBsnFlowIdleEnableSetRequest bsnFlowIdleEnableSetRequest(long enable);
+    OFBsnGentableBucketStatsEntry.Builder buildBsnGentableBucketStatsEntry() throws UnsupportedOperationException;
+    OFBsnGentableBucketStatsEntry bsnGentableBucketStatsEntry(U128 checksum);
+    OFBsnGentableBucketStatsReply.Builder buildBsnGentableBucketStatsReply() throws UnsupportedOperationException;
+    OFBsnGentableBucketStatsRequest.Builder buildBsnGentableBucketStatsRequest() throws UnsupportedOperationException;
+    OFBsnGentableClearReply.Builder buildBsnGentableClearReply() throws UnsupportedOperationException;
+    OFBsnGentableClearRequest.Builder buildBsnGentableClearRequest() throws UnsupportedOperationException;
+    OFBsnGentableDescStatsEntry.Builder buildBsnGentableDescStatsEntry() throws UnsupportedOperationException;
+    OFBsnGentableDescStatsReply.Builder buildBsnGentableDescStatsReply() throws UnsupportedOperationException;
+    OFBsnGentableDescStatsRequest.Builder buildBsnGentableDescStatsRequest() throws UnsupportedOperationException;
+    OFBsnGentableDescStatsRequest bsnGentableDescStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnGentableEntryAdd.Builder buildBsnGentableEntryAdd() throws UnsupportedOperationException;
+    OFBsnGentableEntryDelete.Builder buildBsnGentableEntryDelete() throws UnsupportedOperationException;
+    OFBsnGentableEntryDescStatsEntry.Builder buildBsnGentableEntryDescStatsEntry() throws UnsupportedOperationException;
+    OFBsnGentableEntryDescStatsReply.Builder buildBsnGentableEntryDescStatsReply() throws UnsupportedOperationException;
+    OFBsnGentableEntryDescStatsRequest.Builder buildBsnGentableEntryDescStatsRequest() throws UnsupportedOperationException;
+    OFBsnGentableEntryStatsEntry.Builder buildBsnGentableEntryStatsEntry() throws UnsupportedOperationException;
+    OFBsnGentableEntryStatsEntry bsnGentableEntryStatsEntry(List<OFBsnTlv> key, List<OFBsnTlv> stats);
+    OFBsnGentableEntryStatsReply.Builder buildBsnGentableEntryStatsReply() throws UnsupportedOperationException;
+    OFBsnGentableEntryStatsRequest.Builder buildBsnGentableEntryStatsRequest() throws UnsupportedOperationException;
+    OFBsnGentableSetBucketsSize.Builder buildBsnGentableSetBucketsSize() throws UnsupportedOperationException;
+    OFBsnGentableStatsEntry.Builder buildBsnGentableStatsEntry() throws UnsupportedOperationException;
+    OFBsnGentableStatsReply.Builder buildBsnGentableStatsReply() throws UnsupportedOperationException;
+    OFBsnGentableStatsRequest.Builder buildBsnGentableStatsRequest() throws UnsupportedOperationException;
+    OFBsnGentableStatsRequest bsnGentableStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnGetSwitchPipelineReply.Builder buildBsnGetSwitchPipelineReply() throws UnsupportedOperationException;
+    OFBsnGetSwitchPipelineReply bsnGetSwitchPipelineReply(String pipeline);
+    OFBsnGetSwitchPipelineRequest.Builder buildBsnGetSwitchPipelineRequest() throws UnsupportedOperationException;
+    OFBsnGetSwitchPipelineRequest bsnGetSwitchPipelineRequest();
+    OFBsnImageDescStatsReply.Builder buildBsnImageDescStatsReply() throws UnsupportedOperationException;
+    OFBsnImageDescStatsRequest.Builder buildBsnImageDescStatsRequest() throws UnsupportedOperationException;
+    OFBsnImageDescStatsRequest bsnImageDescStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnLacpConvergenceNotif.Builder buildBsnLacpConvergenceNotif() throws UnsupportedOperationException;
+    OFBsnLacpStatsEntry.Builder buildBsnLacpStatsEntry() throws UnsupportedOperationException;
+    OFBsnLacpStatsReply.Builder buildBsnLacpStatsReply() throws UnsupportedOperationException;
+    OFBsnLacpStatsRequest.Builder buildBsnLacpStatsRequest() throws UnsupportedOperationException;
+    OFBsnLacpStatsRequest bsnLacpStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnLog.Builder buildBsnLog() throws UnsupportedOperationException;
+    OFBsnPortCounterStatsEntry.Builder buildBsnPortCounterStatsEntry() throws UnsupportedOperationException;
+    OFBsnPortCounterStatsEntry bsnPortCounterStatsEntry(OFPort portNo, List<U64> values);
+    OFBsnPortCounterStatsReply.Builder buildBsnPortCounterStatsReply() throws UnsupportedOperationException;
+    OFBsnPortCounterStatsRequest.Builder buildBsnPortCounterStatsRequest() throws UnsupportedOperationException;
+    OFBsnRoleStatus.Builder buildBsnRoleStatus() throws UnsupportedOperationException;
+    OFBsnSetAuxCxnsReply.Builder buildBsnSetAuxCxnsReply() throws UnsupportedOperationException;
+    OFBsnSetAuxCxnsRequest.Builder buildBsnSetAuxCxnsRequest() throws UnsupportedOperationException;
+    OFBsnSetAuxCxnsRequest bsnSetAuxCxnsRequest(long numAux);
+    OFBsnSetLacpReply.Builder buildBsnSetLacpReply() throws UnsupportedOperationException;
+    OFBsnSetLacpRequest.Builder buildBsnSetLacpRequest() throws UnsupportedOperationException;
+    OFBsnSetSwitchPipelineReply.Builder buildBsnSetSwitchPipelineReply() throws UnsupportedOperationException;
+    OFBsnSetSwitchPipelineReply bsnSetSwitchPipelineReply(long status);
+    OFBsnSetSwitchPipelineRequest.Builder buildBsnSetSwitchPipelineRequest() throws UnsupportedOperationException;
+    OFBsnSetSwitchPipelineRequest bsnSetSwitchPipelineRequest(String pipeline);
+    OFBsnSwitchPipelineStatsEntry.Builder buildBsnSwitchPipelineStatsEntry() throws UnsupportedOperationException;
+    OFBsnSwitchPipelineStatsEntry bsnSwitchPipelineStatsEntry(String pipeline);
+    OFBsnSwitchPipelineStatsReply.Builder buildBsnSwitchPipelineStatsReply() throws UnsupportedOperationException;
+    OFBsnSwitchPipelineStatsRequest.Builder buildBsnSwitchPipelineStatsRequest() throws UnsupportedOperationException;
+    OFBsnSwitchPipelineStatsRequest bsnSwitchPipelineStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnTableChecksumStatsEntry.Builder buildBsnTableChecksumStatsEntry() throws UnsupportedOperationException;
+    OFBsnTableChecksumStatsEntry bsnTableChecksumStatsEntry(TableId tableId, U64 checksum);
+    OFBsnTableChecksumStatsReply.Builder buildBsnTableChecksumStatsReply() throws UnsupportedOperationException;
+    OFBsnTableChecksumStatsRequest.Builder buildBsnTableChecksumStatsRequest() throws UnsupportedOperationException;
+    OFBsnTableChecksumStatsRequest bsnTableChecksumStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFBsnTableSetBucketsSize.Builder buildBsnTableSetBucketsSize() throws UnsupportedOperationException;
+    OFBsnTimeReply.Builder buildBsnTimeReply() throws UnsupportedOperationException;
+    OFBsnTimeReply bsnTimeReply(U64 timeMs);
+    OFBsnTimeRequest.Builder buildBsnTimeRequest() throws UnsupportedOperationException;
+    OFBsnTimeRequest bsnTimeRequest();
+    OFBsnVlanCounterStatsEntry.Builder buildBsnVlanCounterStatsEntry() throws UnsupportedOperationException;
+    OFBsnVlanCounterStatsEntry bsnVlanCounterStatsEntry(int vlanVid, List<U64> values);
+    OFBsnVlanCounterStatsReply.Builder buildBsnVlanCounterStatsReply() throws UnsupportedOperationException;
+    OFBsnVlanCounterStatsRequest.Builder buildBsnVlanCounterStatsRequest() throws UnsupportedOperationException;
+    OFBsnVrfCounterStatsEntry.Builder buildBsnVrfCounterStatsEntry() throws UnsupportedOperationException;
+    OFBsnVrfCounterStatsEntry bsnVrfCounterStatsEntry(long vrf, List<U64> values);
+    OFBsnVrfCounterStatsReply.Builder buildBsnVrfCounterStatsReply() throws UnsupportedOperationException;
+    OFBsnVrfCounterStatsRequest.Builder buildBsnVrfCounterStatsRequest() throws UnsupportedOperationException;
+    OFHelloElemVersionbitmap.Builder buildHelloElemVersionbitmap() throws UnsupportedOperationException;
+    OFHelloElemVersionbitmap helloElemVersionbitmap(List<U32> bitmaps);
+    OFMeterBandStats.Builder buildMeterBandStats() throws UnsupportedOperationException;
+    OFMeterBandStats meterBandStats(U64 packetBandCount, U64 byteBandCount);
+    OFMeterConfig.Builder buildMeterConfig() throws UnsupportedOperationException;
+    OFMeterConfigStatsReply.Builder buildMeterConfigStatsReply() throws UnsupportedOperationException;
+    OFMeterConfigStatsRequest.Builder buildMeterConfigStatsRequest() throws UnsupportedOperationException;
+    OFMeterFeatures.Builder buildMeterFeatures() throws UnsupportedOperationException;
+    OFMeterFeaturesStatsReply.Builder buildMeterFeaturesStatsReply() throws UnsupportedOperationException;
+    OFMeterFeaturesStatsRequest.Builder buildMeterFeaturesStatsRequest() throws UnsupportedOperationException;
+    OFMeterFeaturesStatsRequest meterFeaturesStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFMeterMod.Builder buildMeterMod() throws UnsupportedOperationException;
+    OFMeterStats.Builder buildMeterStats() throws UnsupportedOperationException;
+    OFMeterStatsReply.Builder buildMeterStatsReply() throws UnsupportedOperationException;
+    OFMeterStatsRequest.Builder buildMeterStatsRequest() throws UnsupportedOperationException;
+    OFPortDescStatsReply.Builder buildPortDescStatsReply() throws UnsupportedOperationException;
+    OFPortDescStatsRequest.Builder buildPortDescStatsRequest() throws UnsupportedOperationException;
+    OFPortDescStatsRequest portDescStatsRequest(Set<OFStatsRequestFlags> flags);
+    OFTableFeaturePropApplyActions.Builder buildTableFeaturePropApplyActions() throws UnsupportedOperationException;
+    OFTableFeaturePropApplyActions tableFeaturePropApplyActions(List<OFActionId> actionIds);
+    OFTableFeaturePropApplyActionsMiss.Builder buildTableFeaturePropApplyActionsMiss() throws UnsupportedOperationException;
+    OFTableFeaturePropApplyActionsMiss tableFeaturePropApplyActionsMiss(List<OFActionId> actionIds);
+    OFTableFeaturePropApplySetfield.Builder buildTableFeaturePropApplySetfield() throws UnsupportedOperationException;
+    OFTableFeaturePropApplySetfield tableFeaturePropApplySetfield(List<U32> oxmIds);
+    OFTableFeaturePropApplySetfieldMiss.Builder buildTableFeaturePropApplySetfieldMiss() throws UnsupportedOperationException;
+    OFTableFeaturePropApplySetfieldMiss tableFeaturePropApplySetfieldMiss(List<U32> oxmIds);
+    OFTableFeaturePropExperimenter.Builder buildTableFeaturePropExperimenter() throws UnsupportedOperationException;
+    OFTableFeaturePropExperimenterMiss.Builder buildTableFeaturePropExperimenterMiss() throws UnsupportedOperationException;
+    OFTableFeaturePropInstructions.Builder buildTableFeaturePropInstructions() throws UnsupportedOperationException;
+    OFTableFeaturePropInstructions tableFeaturePropInstructions(List<OFInstructionId> instructionIds);
+    OFTableFeaturePropInstructionsMiss.Builder buildTableFeaturePropInstructionsMiss() throws UnsupportedOperationException;
+    OFTableFeaturePropInstructionsMiss tableFeaturePropInstructionsMiss(List<OFInstructionId> instructionIds);
+    OFTableFeaturePropMatch.Builder buildTableFeaturePropMatch() throws UnsupportedOperationException;
+    OFTableFeaturePropMatch tableFeaturePropMatch(List<U32> oxmIds);
+    OFTableFeaturePropNextTables.Builder buildTableFeaturePropNextTables() throws UnsupportedOperationException;
+    OFTableFeaturePropNextTables tableFeaturePropNextTables(List<U8> nextTableIds);
+    OFTableFeaturePropNextTablesMiss.Builder buildTableFeaturePropNextTablesMiss() throws UnsupportedOperationException;
+    OFTableFeaturePropNextTablesMiss tableFeaturePropNextTablesMiss(List<U8> nextTableIds);
+    OFTableFeaturePropWildcards.Builder buildTableFeaturePropWildcards() throws UnsupportedOperationException;
+    OFTableFeaturePropWildcards tableFeaturePropWildcards(List<U32> oxmIds);
+    OFTableFeaturePropWriteActions.Builder buildTableFeaturePropWriteActions() throws UnsupportedOperationException;
+    OFTableFeaturePropWriteActions tableFeaturePropWriteActions(List<OFActionId> actionIds);
+    OFTableFeaturePropWriteActionsMiss.Builder buildTableFeaturePropWriteActionsMiss() throws UnsupportedOperationException;
+    OFTableFeaturePropWriteActionsMiss tableFeaturePropWriteActionsMiss(List<OFActionId> actionIds);
+    OFTableFeaturePropWriteSetfield.Builder buildTableFeaturePropWriteSetfield() throws UnsupportedOperationException;
+    OFTableFeaturePropWriteSetfield tableFeaturePropWriteSetfield(List<U32> oxmIds);
+    OFTableFeaturePropWriteSetfieldMiss.Builder buildTableFeaturePropWriteSetfieldMiss() throws UnsupportedOperationException;
+    OFTableFeaturePropWriteSetfieldMiss tableFeaturePropWriteSetfieldMiss(List<U32> oxmIds);
+    OFTableFeatures.Builder buildTableFeatures() throws UnsupportedOperationException;
+    OFTableFeaturesStatsReply.Builder buildTableFeaturesStatsReply() throws UnsupportedOperationException;
+    OFTableFeaturesStatsRequest.Builder buildTableFeaturesStatsRequest() throws UnsupportedOperationException;
+    OFUint64.Builder buildUint64() throws UnsupportedOperationException;
+    OFUint64 uint64(U64 value);
+    Match.Builder buildMatch();
+    Match matchWildcardAll();
+
+    OFMessageReader<OFMessage> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java
new file mode 100644
index 0000000..4d0ab31
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFeaturesReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    DatapathId getDatapathId();
+    long getNBuffers();
+    short getNTables();
+    Set<OFCapabilities> getCapabilities();
+    long getReserved() throws UnsupportedOperationException;
+    List<OFPortDesc> getPorts() throws UnsupportedOperationException;
+    Set<OFActionType> getActions() throws UnsupportedOperationException;
+    OFAuxId getAuxiliaryId() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFFeaturesReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        DatapathId getDatapathId();
+        Builder setDatapathId(DatapathId datapathId);
+        long getNBuffers();
+        Builder setNBuffers(long nBuffers);
+        short getNTables();
+        Builder setNTables(short nTables);
+        Set<OFCapabilities> getCapabilities();
+        Builder setCapabilities(Set<OFCapabilities> capabilities);
+        long getReserved() throws UnsupportedOperationException;
+        Builder setReserved(long reserved) throws UnsupportedOperationException;
+        List<OFPortDesc> getPorts() throws UnsupportedOperationException;
+        Builder setPorts(List<OFPortDesc> ports) throws UnsupportedOperationException;
+        Set<OFActionType> getActions() throws UnsupportedOperationException;
+        Builder setActions(Set<OFActionType> actions) throws UnsupportedOperationException;
+        OFAuxId getAuxiliaryId() throws UnsupportedOperationException;
+        Builder setAuxiliaryId(OFAuxId auxiliaryId) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java
new file mode 100644
index 0000000..78cb71b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFeaturesRequest extends OFObject, OFMessage, OFRequest<OFFeaturesReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFFeaturesRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java
new file mode 100644
index 0000000..19dccbf
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowAdd extends OFObject, OFFlowMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    U64 getCookie();
+    U64 getCookieMask() throws UnsupportedOperationException;
+    TableId getTableId() throws UnsupportedOperationException;
+    OFFlowModCommand getCommand();
+    int getIdleTimeout();
+    int getHardTimeout();
+    int getPriority();
+    OFBufferId getBufferId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    Set<OFFlowModFlags> getFlags();
+    Match getMatch();
+    List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+    List<OFAction> getActions() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFFlowMod.Builder {
+        OFFlowAdd build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        OFFlowModCommand getCommand();
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        int getPriority();
+        Builder setPriority(int priority);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        Set<OFFlowModFlags> getFlags();
+        Builder setFlags(Set<OFFlowModFlags> flags);
+        Match getMatch();
+        Builder setMatch(Match match);
+        List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+        List<OFAction> getActions() throws UnsupportedOperationException;
+        Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java
new file mode 100644
index 0000000..09f7f3a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowDelete extends OFObject, OFFlowMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    U64 getCookie();
+    U64 getCookieMask() throws UnsupportedOperationException;
+    TableId getTableId() throws UnsupportedOperationException;
+    OFFlowModCommand getCommand();
+    int getIdleTimeout();
+    int getHardTimeout();
+    int getPriority();
+    OFBufferId getBufferId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    Set<OFFlowModFlags> getFlags();
+    Match getMatch();
+    List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+    List<OFAction> getActions() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFFlowMod.Builder {
+        OFFlowDelete build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        OFFlowModCommand getCommand();
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        int getPriority();
+        Builder setPriority(int priority);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        Set<OFFlowModFlags> getFlags();
+        Builder setFlags(Set<OFFlowModFlags> flags);
+        Match getMatch();
+        Builder setMatch(Match match);
+        List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+        List<OFAction> getActions() throws UnsupportedOperationException;
+        Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java
new file mode 100644
index 0000000..72931d1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowDeleteStrict extends OFObject, OFFlowMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    U64 getCookie();
+    U64 getCookieMask() throws UnsupportedOperationException;
+    TableId getTableId() throws UnsupportedOperationException;
+    OFFlowModCommand getCommand();
+    int getIdleTimeout();
+    int getHardTimeout();
+    int getPriority();
+    OFBufferId getBufferId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    Set<OFFlowModFlags> getFlags();
+    Match getMatch();
+    List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+    List<OFAction> getActions() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFFlowMod.Builder {
+        OFFlowDeleteStrict build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        OFFlowModCommand getCommand();
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        int getPriority();
+        Builder setPriority(int priority);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        Set<OFFlowModFlags> getFlags();
+        Builder setFlags(Set<OFFlowModFlags> flags);
+        Match getMatch();
+        Builder setMatch(Match match);
+        List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+        List<OFAction> getActions() throws UnsupportedOperationException;
+        Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java
new file mode 100644
index 0000000..76da051
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowMod extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    U64 getCookie();
+    U64 getCookieMask() throws UnsupportedOperationException;
+    TableId getTableId() throws UnsupportedOperationException;
+    OFFlowModCommand getCommand();
+    int getIdleTimeout();
+    int getHardTimeout();
+    int getPriority();
+    OFBufferId getBufferId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    Set<OFFlowModFlags> getFlags();
+    Match getMatch();
+    List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+    List<OFAction> getActions() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFFlowMod build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        OFFlowModCommand getCommand();
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        int getPriority();
+        Builder setPriority(int priority);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        Set<OFFlowModFlags> getFlags();
+        Builder setFlags(Set<OFFlowModFlags> flags);
+        Match getMatch();
+        Builder setMatch(Match match);
+        List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+        List<OFAction> getActions() throws UnsupportedOperationException;
+        Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java
new file mode 100644
index 0000000..dd0b856
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowModCommand {
+     ADD,
+     MODIFY,
+     MODIFY_STRICT,
+     DELETE,
+     DELETE_STRICT;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java
new file mode 100644
index 0000000..17cf0d2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java
@@ -0,0 +1,39 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowModFailedCode {
+     ALL_TABLES_FULL,
+     OVERLAP,
+     EPERM,
+     BAD_EMERG_TIMEOUT,
+     BAD_COMMAND,
+     UNSUPPORTED,
+     UNKNOWN,
+     TABLE_FULL,
+     BAD_TABLE_ID,
+     BAD_TIMEOUT,
+     BAD_FLAGS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java
new file mode 100644
index 0000000..86c709f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java
@@ -0,0 +1,35 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowModFlags {
+     SEND_FLOW_REM,
+     CHECK_OVERLAP,
+     EMERG,
+     RESET_COUNTS,
+     NO_PKT_COUNTS,
+     NO_BYT_COUNTS,
+     BSN_SEND_IDLE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java
new file mode 100644
index 0000000..cc3129f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowModify extends OFObject, OFFlowMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    U64 getCookie();
+    U64 getCookieMask() throws UnsupportedOperationException;
+    TableId getTableId() throws UnsupportedOperationException;
+    OFFlowModCommand getCommand();
+    int getIdleTimeout();
+    int getHardTimeout();
+    int getPriority();
+    OFBufferId getBufferId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    Set<OFFlowModFlags> getFlags();
+    Match getMatch();
+    List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+    List<OFAction> getActions() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFFlowMod.Builder {
+        OFFlowModify build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        OFFlowModCommand getCommand();
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        int getPriority();
+        Builder setPriority(int priority);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        Set<OFFlowModFlags> getFlags();
+        Builder setFlags(Set<OFFlowModFlags> flags);
+        Match getMatch();
+        Builder setMatch(Match match);
+        List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+        List<OFAction> getActions() throws UnsupportedOperationException;
+        Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java
new file mode 100644
index 0000000..15809c9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowModifyStrict extends OFObject, OFFlowMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    U64 getCookie();
+    U64 getCookieMask() throws UnsupportedOperationException;
+    TableId getTableId() throws UnsupportedOperationException;
+    OFFlowModCommand getCommand();
+    int getIdleTimeout();
+    int getHardTimeout();
+    int getPriority();
+    OFBufferId getBufferId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    Set<OFFlowModFlags> getFlags();
+    Match getMatch();
+    List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+    List<OFAction> getActions() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFFlowMod.Builder {
+        OFFlowModifyStrict build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        OFFlowModCommand getCommand();
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        int getPriority();
+        Builder setPriority(int priority);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        Set<OFFlowModFlags> getFlags();
+        Builder setFlags(Set<OFFlowModFlags> flags);
+        Match getMatch();
+        Builder setMatch(Match match);
+        List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+        List<OFAction> getActions() throws UnsupportedOperationException;
+        Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java
new file mode 100644
index 0000000..186b8a6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java
@@ -0,0 +1,76 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowRemoved extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    U64 getCookie();
+    int getPriority();
+    short getReason();
+    TableId getTableId() throws UnsupportedOperationException;
+    long getDurationSec();
+    long getDurationNsec();
+    int getIdleTimeout();
+    int getHardTimeout() throws UnsupportedOperationException;
+    U64 getPacketCount();
+    U64 getByteCount();
+    Match getMatch();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFFlowRemoved build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        int getPriority();
+        Builder setPriority(int priority);
+        short getReason();
+        Builder setReason(short reason);
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        long getDurationSec();
+        Builder setDurationSec(long durationSec);
+        long getDurationNsec();
+        Builder setDurationNsec(long durationNsec);
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout() throws UnsupportedOperationException;
+        Builder setHardTimeout(int hardTimeout) throws UnsupportedOperationException;
+        U64 getPacketCount();
+        Builder setPacketCount(U64 packetCount);
+        U64 getByteCount();
+        Builder setByteCount(U64 byteCount);
+        Match getMatch();
+        Builder setMatch(Match match);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java
new file mode 100644
index 0000000..689b43f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowRemovedReason {
+     IDLE_TIMEOUT,
+     HARD_TIMEOUT,
+     DELETE,
+     GROUP_DELETE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java
new file mode 100644
index 0000000..db9b486
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java
@@ -0,0 +1,79 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowStatsEntry extends OFObject {
+    TableId getTableId();
+    long getDurationSec();
+    long getDurationNsec();
+    int getPriority();
+    int getIdleTimeout();
+    int getHardTimeout();
+    U64 getCookie();
+    U64 getPacketCount();
+    U64 getByteCount();
+    Match getMatch();
+    List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+    List<OFAction> getActions() throws UnsupportedOperationException;
+    Set<OFFlowModFlags> getFlags() throws UnsupportedOperationException;
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFFlowStatsEntry build();
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        long getDurationSec();
+        Builder setDurationSec(long durationSec);
+        long getDurationNsec();
+        Builder setDurationNsec(long durationNsec);
+        int getPriority();
+        Builder setPriority(int priority);
+        int getIdleTimeout();
+        Builder setIdleTimeout(int idleTimeout);
+        int getHardTimeout();
+        Builder setHardTimeout(int hardTimeout);
+        U64 getCookie();
+        Builder setCookie(U64 cookie);
+        U64 getPacketCount();
+        Builder setPacketCount(U64 packetCount);
+        U64 getByteCount();
+        Builder setByteCount(U64 byteCount);
+        Match getMatch();
+        Builder setMatch(Match match);
+        List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+        List<OFAction> getActions() throws UnsupportedOperationException;
+        Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+        Set<OFFlowModFlags> getFlags() throws UnsupportedOperationException;
+        Builder setFlags(Set<OFFlowModFlags> flags) throws UnsupportedOperationException;
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java
new file mode 100644
index 0000000..488acc2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFFlowStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFFlowStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFFlowStatsEntry> getEntries();
+        Builder setEntries(List<OFFlowStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java
new file mode 100644
index 0000000..56fd5d8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java
@@ -0,0 +1,67 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowStatsRequest extends OFObject, OFStatsRequest<OFFlowStatsReply>, OFRequest<OFFlowStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    TableId getTableId();
+    OFPort getOutPort();
+    OFGroup getOutGroup() throws UnsupportedOperationException;
+    U64 getCookie() throws UnsupportedOperationException;
+    U64 getCookieMask() throws UnsupportedOperationException;
+    Match getMatch();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFFlowStatsReply> {
+        OFFlowStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        OFPort getOutPort();
+        Builder setOutPort(OFPort outPort);
+        OFGroup getOutGroup() throws UnsupportedOperationException;
+        Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+        U64 getCookie() throws UnsupportedOperationException;
+        Builder setCookie(U64 cookie) throws UnsupportedOperationException;
+        U64 getCookieMask() throws UnsupportedOperationException;
+        Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+        Match getMatch();
+        Builder setMatch(Match match);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java
new file mode 100644
index 0000000..d732d7d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowWildcards {
+     IN_PORT,
+     DL_VLAN,
+     DL_SRC,
+     DL_DST,
+     DL_TYPE,
+     NW_PROTO,
+     TP_SRC,
+     TP_DST,
+     NW_SRC_ALL,
+     NW_SRC_MASK,
+     NW_DST_ALL,
+     NW_DST_MASK,
+     DL_VLAN_PCP,
+     NW_TOS,
+     ALL,
+     MPLS_LABEL,
+     MPLS_TC;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java
new file mode 100644
index 0000000..d3c0bd8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGetConfigReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    Set<OFConfigFlags> getFlags();
+    int getMissSendLen();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFGetConfigReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        Set<OFConfigFlags> getFlags();
+        Builder setFlags(Set<OFConfigFlags> flags);
+        int getMissSendLen();
+        Builder setMissSendLen(int missSendLen);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java
new file mode 100644
index 0000000..ec49dfe
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGetConfigRequest extends OFObject, OFMessage, OFRequest<OFGetConfigReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFGetConfigRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java
new file mode 100644
index 0000000..6502d85
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupAdd extends OFObject, OFGroupMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFGroupModCommand getCommand();
+    OFGroupType getGroupType();
+    OFGroup getGroup();
+    List<OFBucket> getBuckets();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFGroupMod.Builder {
+        OFGroupAdd build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFGroupModCommand getCommand();
+        OFGroupType getGroupType();
+        Builder setGroupType(OFGroupType groupType);
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+        List<OFBucket> getBuckets();
+        Builder setBuckets(List<OFBucket> buckets);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java
new file mode 100644
index 0000000..679fad6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupCapabilities {
+     SELECT_WEIGHT,
+     SELECT_LIVENESS,
+     CHAINING,
+     CHAINING_CHECKS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java
new file mode 100644
index 0000000..c649b82
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDelete extends OFObject, OFGroupMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFGroupModCommand getCommand();
+    OFGroupType getGroupType();
+    OFGroup getGroup();
+    List<OFBucket> getBuckets();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFGroupMod.Builder {
+        OFGroupDelete build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFGroupModCommand getCommand();
+        OFGroupType getGroupType();
+        Builder setGroupType(OFGroupType groupType);
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+        List<OFBucket> getBuckets();
+        Builder setBuckets(List<OFBucket> buckets);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java
new file mode 100644
index 0000000..be11fa0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDescStatsEntry extends OFObject {
+    OFGroupType getGroupType();
+    OFGroup getGroup();
+    List<OFBucket> getBuckets();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFGroupDescStatsEntry build();
+        OFGroupType getGroupType();
+        Builder setGroupType(OFGroupType groupType);
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+        List<OFBucket> getBuckets();
+        Builder setBuckets(List<OFBucket> buckets);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java
new file mode 100644
index 0000000..c3943e8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDescStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFGroupDescStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFGroupDescStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFGroupDescStatsEntry> getEntries();
+        Builder setEntries(List<OFGroupDescStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java
new file mode 100644
index 0000000..260e411
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDescStatsRequest extends OFObject, OFStatsRequest<OFGroupDescStatsReply>, OFRequest<OFGroupDescStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFGroupDescStatsReply> {
+        OFGroupDescStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java
new file mode 100644
index 0000000..c449fdf
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java
@@ -0,0 +1,79 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupFeaturesStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    long getTypes();
+    long getCapabilities();
+    long getMaxGroupsAll();
+    long getMaxGroupsSelect();
+    long getMaxGroupsIndirect();
+    long getMaxGroupsFf();
+    long getActionsAll();
+    long getActionsSelect();
+    long getActionsIndirect();
+    long getActionsFf();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFGroupFeaturesStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        long getTypes();
+        Builder setTypes(long types);
+        long getCapabilities();
+        Builder setCapabilities(long capabilities);
+        long getMaxGroupsAll();
+        Builder setMaxGroupsAll(long maxGroupsAll);
+        long getMaxGroupsSelect();
+        Builder setMaxGroupsSelect(long maxGroupsSelect);
+        long getMaxGroupsIndirect();
+        Builder setMaxGroupsIndirect(long maxGroupsIndirect);
+        long getMaxGroupsFf();
+        Builder setMaxGroupsFf(long maxGroupsFf);
+        long getActionsAll();
+        Builder setActionsAll(long actionsAll);
+        long getActionsSelect();
+        Builder setActionsSelect(long actionsSelect);
+        long getActionsIndirect();
+        Builder setActionsIndirect(long actionsIndirect);
+        long getActionsFf();
+        Builder setActionsFf(long actionsFf);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java
new file mode 100644
index 0000000..741a13d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupFeaturesStatsRequest extends OFObject, OFStatsRequest<OFGroupFeaturesStatsReply>, OFRequest<OFGroupFeaturesStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFGroupFeaturesStatsReply> {
+        OFGroupFeaturesStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java
new file mode 100644
index 0000000..65bfe68
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupMod extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFGroupModCommand getCommand();
+    OFGroupType getGroupType();
+    OFGroup getGroup();
+    List<OFBucket> getBuckets();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFGroupMod build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFGroupModCommand getCommand();
+        OFGroupType getGroupType();
+        Builder setGroupType(OFGroupType groupType);
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+        List<OFBucket> getBuckets();
+        Builder setBuckets(List<OFBucket> buckets);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java
new file mode 100644
index 0000000..30f122c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupModCommand {
+     ADD,
+     MODIFY,
+     DELETE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java
new file mode 100644
index 0000000..e88b22d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupModFailedCode {
+     GROUP_EXISTS,
+     INVALID_GROUP,
+     WEIGHT_UNSUPPORTED,
+     OUT_OF_GROUPS,
+     OUT_OF_BUCKETS,
+     CHAINING_UNSUPPORTED,
+     WATCH_UNSUPPORTED,
+     LOOP,
+     UNKNOWN_GROUP,
+     CHAINED_GROUP,
+     BAD_TYPE,
+     BAD_COMMAND,
+     BAD_BUCKET,
+     BAD_WATCH,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java
new file mode 100644
index 0000000..3c408fe
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupModify extends OFObject, OFGroupMod {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFGroupModCommand getCommand();
+    OFGroupType getGroupType();
+    OFGroup getGroup();
+    List<OFBucket> getBuckets();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFGroupMod.Builder {
+        OFGroupModify build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFGroupModCommand getCommand();
+        OFGroupType getGroupType();
+        Builder setGroupType(OFGroupType groupType);
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+        List<OFBucket> getBuckets();
+        Builder setBuckets(List<OFBucket> buckets);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java
new file mode 100644
index 0000000..efa4bf2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupStatsEntry extends OFObject {
+    OFGroup getGroup();
+    long getRefCount();
+    U64 getPacketCount();
+    U64 getByteCount();
+    List<OFBucketCounter> getBucketStats();
+    long getDurationSec() throws UnsupportedOperationException;
+    long getDurationNsec() throws UnsupportedOperationException;
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFGroupStatsEntry build();
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+        long getRefCount();
+        Builder setRefCount(long refCount);
+        U64 getPacketCount();
+        Builder setPacketCount(U64 packetCount);
+        U64 getByteCount();
+        Builder setByteCount(U64 byteCount);
+        List<OFBucketCounter> getBucketStats();
+        Builder setBucketStats(List<OFBucketCounter> bucketStats);
+        long getDurationSec() throws UnsupportedOperationException;
+        Builder setDurationSec(long durationSec) throws UnsupportedOperationException;
+        long getDurationNsec() throws UnsupportedOperationException;
+        Builder setDurationNsec(long durationNsec) throws UnsupportedOperationException;
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java
new file mode 100644
index 0000000..df8ea80
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFGroupStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFGroupStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFGroupStatsEntry> getEntries();
+        Builder setEntries(List<OFGroupStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java
new file mode 100644
index 0000000..24bdcb5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupStatsRequest extends OFObject, OFStatsRequest<OFGroupStatsReply>, OFRequest<OFGroupStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    OFGroup getGroup();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFGroupStatsReply> {
+        OFGroupStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java
new file mode 100644
index 0000000..bd7c37e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupType {
+     ALL,
+     SELECT,
+     INDIRECT,
+     FF;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java
new file mode 100644
index 0000000..0858559
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHello extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    List<OFHelloElem> getElements() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFHello build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        List<OFHelloElem> getElements() throws UnsupportedOperationException;
+        Builder setElements(List<OFHelloElem> elements) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java
new file mode 100644
index 0000000..68d69cc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHelloElem extends OFObject {
+    int getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFHelloElem build();
+        int getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java
new file mode 100644
index 0000000..1b221bd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFHelloElemType {
+     VERSIONBITMAP;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java
new file mode 100644
index 0000000..e8eb3c7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHelloElemVersionbitmap extends OFObject, OFHelloElem {
+    int getType();
+    List<U32> getBitmaps();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFHelloElem.Builder {
+        OFHelloElemVersionbitmap build();
+        int getType();
+        List<U32> getBitmaps();
+        Builder setBitmaps(List<U32> bitmaps);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java
new file mode 100644
index 0000000..92312dd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFHelloFailedCode {
+     INCOMPATIBLE,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java
new file mode 100644
index 0000000..8fc38eb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java
@@ -0,0 +1,35 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFInstructionType {
+     GOTO_TABLE,
+     WRITE_METADATA,
+     WRITE_ACTIONS,
+     APPLY_ACTIONS,
+     CLEAR_ACTIONS,
+     EXPERIMENTER,
+     METER;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java
new file mode 100644
index 0000000..7c33b94
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFIpv6ExthdrFlags {
+     NONEXT,
+     ESP,
+     AUTH,
+     DEST,
+     FRAG,
+     ROUTER,
+     HOP,
+     UNREP,
+     UNSEQ;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java
new file mode 100644
index 0000000..17e768c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMatchType {
+     STANDARD,
+     OXM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java
new file mode 100644
index 0000000..06deb6b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java
@@ -0,0 +1,77 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMatchV1 extends OFObject, Match {
+    int getWildcards();
+    OFPort getInPort();
+    MacAddress getEthSrc();
+    MacAddress getEthDst();
+    OFVlanVidMatch getVlanVid();
+    VlanPcp getVlanPcp();
+    EthType getEthType();
+    IpDscp getIpDscp();
+    IpProtocol getIpProto();
+    IPv4Address getIpv4Src();
+    IPv4Address getIpv4Dst();
+    TransportPort getTcpSrc();
+    TransportPort getTcpDst();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends Match.Builder {
+        OFMatchV1 build();
+        int getWildcards();
+        Builder setWildcards(int wildcards);
+        OFPort getInPort();
+        Builder setInPort(OFPort inPort);
+        MacAddress getEthSrc();
+        Builder setEthSrc(MacAddress ethSrc);
+        MacAddress getEthDst();
+        Builder setEthDst(MacAddress ethDst);
+        OFVlanVidMatch getVlanVid();
+        Builder setVlanVid(OFVlanVidMatch vlanVid);
+        VlanPcp getVlanPcp();
+        Builder setVlanPcp(VlanPcp vlanPcp);
+        EthType getEthType();
+        Builder setEthType(EthType ethType);
+        IpDscp getIpDscp();
+        Builder setIpDscp(IpDscp ipDscp);
+        IpProtocol getIpProto();
+        Builder setIpProto(IpProtocol ipProto);
+        IPv4Address getIpv4Src();
+        Builder setIpv4Src(IPv4Address ipv4Src);
+        IPv4Address getIpv4Dst();
+        Builder setIpv4Dst(IPv4Address ipv4Dst);
+        TransportPort getTcpSrc();
+        Builder setTcpSrc(TransportPort tcpSrc);
+        TransportPort getTcpDst();
+        Builder setTcpDst(TransportPort tcpDst);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java
new file mode 100644
index 0000000..7d40266
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java
@@ -0,0 +1,103 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMatchV2 extends OFObject, Match {
+    int getType();
+    OFPort getInPort();
+    int getWildcards();
+    MacAddress getEthSrc();
+    MacAddress getEthSrcMask();
+    MacAddress getEthDst();
+    MacAddress getEthDstMask();
+    int getVlanVid();
+    short getVlanPcp();
+    int getEthType();
+    short getIpDscp();
+    short getIpProto();
+    IPv4Address getIpv4Src();
+    IPv4Address getIpv4SrcMask();
+    IPv4Address getIpv4Dst();
+    IPv4Address getIpv4DstMask();
+    int getTcpSrc();
+    int getTcpDst();
+    long getMplsLabel();
+    short getMplsTc();
+    U64 getMetadata();
+    U64 getMetadataMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends Match.Builder {
+        OFMatchV2 build();
+        int getType();
+        OFPort getInPort();
+        Builder setInPort(OFPort inPort);
+        int getWildcards();
+        Builder setWildcards(int wildcards);
+        MacAddress getEthSrc();
+        Builder setEthSrc(MacAddress ethSrc);
+        MacAddress getEthSrcMask();
+        Builder setEthSrcMask(MacAddress ethSrcMask);
+        MacAddress getEthDst();
+        Builder setEthDst(MacAddress ethDst);
+        MacAddress getEthDstMask();
+        Builder setEthDstMask(MacAddress ethDstMask);
+        int getVlanVid();
+        Builder setVlanVid(int vlanVid);
+        short getVlanPcp();
+        Builder setVlanPcp(short vlanPcp);
+        int getEthType();
+        Builder setEthType(int ethType);
+        short getIpDscp();
+        Builder setIpDscp(short ipDscp);
+        short getIpProto();
+        Builder setIpProto(short ipProto);
+        IPv4Address getIpv4Src();
+        Builder setIpv4Src(IPv4Address ipv4Src);
+        IPv4Address getIpv4SrcMask();
+        Builder setIpv4SrcMask(IPv4Address ipv4SrcMask);
+        IPv4Address getIpv4Dst();
+        Builder setIpv4Dst(IPv4Address ipv4Dst);
+        IPv4Address getIpv4DstMask();
+        Builder setIpv4DstMask(IPv4Address ipv4DstMask);
+        int getTcpSrc();
+        Builder setTcpSrc(int tcpSrc);
+        int getTcpDst();
+        Builder setTcpDst(int tcpDst);
+        long getMplsLabel();
+        Builder setMplsLabel(long mplsLabel);
+        short getMplsTc();
+        Builder setMplsTc(short mplsTc);
+        U64 getMetadata();
+        Builder setMetadata(U64 metadata);
+        U64 getMetadataMask();
+        Builder setMetadataMask(U64 metadataMask);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java
new file mode 100644
index 0000000..6bfca6e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMatchV3 extends OFObject, Match {
+    int getType();
+    OFOxmList getOxmList();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends Match.Builder {
+        OFMatchV3 build();
+        int getType();
+        OFOxmList getOxmList();
+        Builder setOxmList(OFOxmList oxmList);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java
new file mode 100644
index 0000000..9a9d6f4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMessage extends OFObject {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFMessage build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java
new file mode 100644
index 0000000..20b4e47
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeter {
+     MAX,
+     SLOWPATH,
+     CONTROLLER,
+     ALL;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java
new file mode 100644
index 0000000..32adcc0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandStats extends OFObject {
+    U64 getPacketBandCount();
+    U64 getByteBandCount();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFMeterBandStats build();
+        U64 getPacketBandCount();
+        Builder setPacketBandCount(U64 packetBandCount);
+        U64 getByteBandCount();
+        Builder setByteBandCount(U64 byteBandCount);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java
new file mode 100644
index 0000000..ac61fb2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterBandType {
+     DROP,
+     DSCP_REMARK,
+     EXPERIMENTER;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java
new file mode 100644
index 0000000..5cd55b3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterConfig extends OFObject {
+    int getFlags();
+    long getMeterId();
+    List<OFMeterBand> getEntries();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFMeterConfig build();
+        int getFlags();
+        Builder setFlags(int flags);
+        long getMeterId();
+        Builder setMeterId(long meterId);
+        List<OFMeterBand> getEntries();
+        Builder setEntries(List<OFMeterBand> entries);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java
new file mode 100644
index 0000000..b80c158
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterConfigStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFMeterBand> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFMeterConfigStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFMeterBand> getEntries();
+        Builder setEntries(List<OFMeterBand> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java
new file mode 100644
index 0000000..6ab1828
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterConfigStatsRequest extends OFObject, OFStatsRequest<OFMeterConfigStatsReply>, OFRequest<OFMeterConfigStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getMeterId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFMeterConfigStatsReply> {
+        OFMeterConfigStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getMeterId();
+        Builder setMeterId(long meterId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java
new file mode 100644
index 0000000..4108de3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterFeatures extends OFObject {
+    long getMaxMeter();
+    long getBandTypes();
+    long getCapabilities();
+    short getMaxBands();
+    short getMaxColor();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFMeterFeatures build();
+        long getMaxMeter();
+        Builder setMaxMeter(long maxMeter);
+        long getBandTypes();
+        Builder setBandTypes(long bandTypes);
+        long getCapabilities();
+        Builder setCapabilities(long capabilities);
+        short getMaxBands();
+        Builder setMaxBands(short maxBands);
+        short getMaxColor();
+        Builder setMaxColor(short maxColor);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java
new file mode 100644
index 0000000..be19e8d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterFeaturesStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    OFMeterFeatures getFeatures();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFMeterFeaturesStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        OFMeterFeatures getFeatures();
+        Builder setFeatures(OFMeterFeatures features);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java
new file mode 100644
index 0000000..b239a22
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterFeaturesStatsRequest extends OFObject, OFStatsRequest<OFMeterFeaturesStatsReply>, OFRequest<OFMeterFeaturesStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFMeterFeaturesStatsReply> {
+        OFMeterFeaturesStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java
new file mode 100644
index 0000000..2df9c70
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterFlags {
+     KBPS,
+     PKTPS,
+     BURST,
+     STATS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java
new file mode 100644
index 0000000..b01f37c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterMod extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    int getCommand();
+    int getFlags();
+    long getMeterId();
+    List<OFMeterBand> getMeters();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFMeterMod build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        int getCommand();
+        Builder setCommand(int command);
+        int getFlags();
+        Builder setFlags(int flags);
+        long getMeterId();
+        Builder setMeterId(long meterId);
+        List<OFMeterBand> getMeters();
+        Builder setMeters(List<OFMeterBand> meters);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java
new file mode 100644
index 0000000..31bbe23
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterModCommand {
+     ADD,
+     MODIFY,
+     DELETE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java
new file mode 100644
index 0000000..b977cc3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterModFailedCode {
+     UNKNOWN,
+     METER_EXISTS,
+     INVALID_METER,
+     UNKNOWN_METER,
+     BAD_COMMAND,
+     BAD_FLAGS,
+     BAD_RATE,
+     BAD_BURST,
+     BAD_BAND,
+     BAD_BAND_VALUE,
+     OUT_OF_METERS,
+     OUT_OF_BANDS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java
new file mode 100644
index 0000000..a5310eb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterStats extends OFObject {
+    long getMeterId();
+    long getFlowCount();
+    U64 getPacketInCount();
+    U64 getByteInCount();
+    long getDurationSec();
+    long getDurationNsec();
+    List<OFMeterBandStats> getBandStats();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFMeterStats build();
+        long getMeterId();
+        Builder setMeterId(long meterId);
+        long getFlowCount();
+        Builder setFlowCount(long flowCount);
+        U64 getPacketInCount();
+        Builder setPacketInCount(U64 packetInCount);
+        U64 getByteInCount();
+        Builder setByteInCount(U64 byteInCount);
+        long getDurationSec();
+        Builder setDurationSec(long durationSec);
+        long getDurationNsec();
+        Builder setDurationNsec(long durationNsec);
+        List<OFMeterBandStats> getBandStats();
+        Builder setBandStats(List<OFMeterBandStats> bandStats);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java
new file mode 100644
index 0000000..7795fae
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFMeterStats> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFMeterStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFMeterStats> getEntries();
+        Builder setEntries(List<OFMeterStats> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java
new file mode 100644
index 0000000..f48fb64
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterStatsRequest extends OFObject, OFStatsRequest<OFMeterStatsReply>, OFRequest<OFMeterStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    long getMeterId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFMeterStatsReply> {
+        OFMeterStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        long getMeterId();
+        Builder setMeterId(long meterId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java
new file mode 100644
index 0000000..e3babe3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFNiciraControllerRole {
+     ROLE_OTHER,
+     ROLE_MASTER,
+     ROLE_SLAVE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java
new file mode 100644
index 0000000..5ec1cb4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFNiciraControllerRoleReply extends OFObject, OFNiciraHeader {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    OFNiciraControllerRole getRole();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFNiciraHeader.Builder {
+        OFNiciraControllerRoleReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        OFNiciraControllerRole getRole();
+        Builder setRole(OFNiciraControllerRole role);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java
new file mode 100644
index 0000000..002980c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFNiciraControllerRoleRequest extends OFObject, OFNiciraHeader, OFRequest<OFNiciraControllerRoleReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+    OFNiciraControllerRole getRole();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFNiciraHeader.Builder {
+        OFNiciraControllerRoleRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+        OFNiciraControllerRole getRole();
+        Builder setRole(OFNiciraControllerRole role);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java
new file mode 100644
index 0000000..9be1c52
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFNiciraHeader extends OFObject, OFExperimenter {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    long getExperimenter();
+    long getSubtype();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFExperimenter.Builder {
+        OFNiciraHeader build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        long getExperimenter();
+        long getSubtype();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java
new file mode 100644
index 0000000..005b0e9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFOxmClass {
+     NXM_0,
+     NXM_1,
+     OPENFLOW_BASIC,
+     EXPERIMENTER;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java
new file mode 100644
index 0000000..f1b1297
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java
@@ -0,0 +1,70 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPacketIn extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFBufferId getBufferId();
+    int getTotalLen();
+    OFPacketInReason getReason();
+    TableId getTableId() throws UnsupportedOperationException;
+    Match getMatch() throws UnsupportedOperationException;
+    byte[] getData();
+    OFPort getInPort() throws UnsupportedOperationException;
+    OFPort getInPhyPort() throws UnsupportedOperationException;
+    U64 getCookie() throws UnsupportedOperationException;
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFPacketIn build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        int getTotalLen();
+        Builder setTotalLen(int totalLen);
+        OFPacketInReason getReason();
+        Builder setReason(OFPacketInReason reason);
+        TableId getTableId() throws UnsupportedOperationException;
+        Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+        Match getMatch() throws UnsupportedOperationException;
+        Builder setMatch(Match match) throws UnsupportedOperationException;
+        byte[] getData();
+        Builder setData(byte[] data);
+        OFPort getInPort() throws UnsupportedOperationException;
+        Builder setInPort(OFPort inPort) throws UnsupportedOperationException;
+        OFPort getInPhyPort() throws UnsupportedOperationException;
+        Builder setInPhyPort(OFPort inPhyPort) throws UnsupportedOperationException;
+        U64 getCookie() throws UnsupportedOperationException;
+        Builder setCookie(U64 cookie) throws UnsupportedOperationException;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java
new file mode 100644
index 0000000..f13fb3c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPacketInReason {
+     NO_MATCH,
+     ACTION,
+     INVALID_TTL,
+     BSN_NEW_HOST,
+     BSN_STATION_MOVE,
+     BSN_BAD_VLAN,
+     BSN_DESTINATION_LOOKUP_FAILURE,
+     BSN_NO_ROUTE,
+     BSN_ICMP_ECHO_REQUEST,
+     BSN_DEST_NETWORK_UNREACHABLE,
+     BSN_DEST_HOST_UNREACHABLE,
+     BSN_DEST_PORT_UNREACHABLE,
+     BSN_FRAGMENTATION_REQUIRED,
+     BSN_ARP,
+     BSN_DHCP,
+     BSN_DEBUG,
+     BSN_PACKET_OF_DEATH;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java
new file mode 100644
index 0000000..e17516d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPacketOut extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFBufferId getBufferId();
+    OFPort getInPort();
+    List<OFAction> getActions();
+    byte[] getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFPacketOut build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFBufferId getBufferId();
+        Builder setBufferId(OFBufferId bufferId);
+        OFPort getInPort();
+        Builder setInPort(OFPort inPort);
+        List<OFAction> getActions();
+        Builder setActions(List<OFAction> actions);
+        byte[] getData();
+        Builder setData(byte[] data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java
new file mode 100644
index 0000000..33d6521
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPacketQueue extends OFObject {
+    long getQueueId();
+    OFPort getPort() throws UnsupportedOperationException;
+    List<OFQueueProp> getProperties();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFPacketQueue build();
+        long getQueueId();
+        Builder setQueueId(long queueId);
+        OFPort getPort() throws UnsupportedOperationException;
+        Builder setPort(OFPort port) throws UnsupportedOperationException;
+        List<OFQueueProp> getProperties();
+        Builder setProperties(List<OFQueueProp> properties);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java
new file mode 100644
index 0000000..5201415
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java
@@ -0,0 +1,36 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortConfig {
+     PORT_DOWN,
+     NO_STP,
+     NO_RECV,
+     NO_RECV_STP,
+     NO_FLOOD,
+     NO_FWD,
+     NO_PACKET_IN,
+     BSN_MIRROR_DEST;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java
new file mode 100644
index 0000000..4e2d85a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java
@@ -0,0 +1,72 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortDesc extends OFObject {
+    OFPort getPortNo();
+    MacAddress getHwAddr();
+    String getName();
+    Set<OFPortConfig> getConfig();
+    Set<OFPortState> getState();
+    Set<OFPortFeatures> getCurr();
+    Set<OFPortFeatures> getAdvertised();
+    Set<OFPortFeatures> getSupported();
+    Set<OFPortFeatures> getPeer();
+    long getCurrSpeed() throws UnsupportedOperationException;
+    long getMaxSpeed() throws UnsupportedOperationException;
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFPortDesc build();
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        MacAddress getHwAddr();
+        Builder setHwAddr(MacAddress hwAddr);
+        String getName();
+        Builder setName(String name);
+        Set<OFPortConfig> getConfig();
+        Builder setConfig(Set<OFPortConfig> config);
+        Set<OFPortState> getState();
+        Builder setState(Set<OFPortState> state);
+        Set<OFPortFeatures> getCurr();
+        Builder setCurr(Set<OFPortFeatures> curr);
+        Set<OFPortFeatures> getAdvertised();
+        Builder setAdvertised(Set<OFPortFeatures> advertised);
+        Set<OFPortFeatures> getSupported();
+        Builder setSupported(Set<OFPortFeatures> supported);
+        Set<OFPortFeatures> getPeer();
+        Builder setPeer(Set<OFPortFeatures> peer);
+        long getCurrSpeed() throws UnsupportedOperationException;
+        Builder setCurrSpeed(long currSpeed) throws UnsupportedOperationException;
+        long getMaxSpeed() throws UnsupportedOperationException;
+        Builder setMaxSpeed(long maxSpeed) throws UnsupportedOperationException;
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java
new file mode 100644
index 0000000..c445c24
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortDescStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFPortDesc> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFPortDescStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFPortDesc> getEntries();
+        Builder setEntries(List<OFPortDesc> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java
new file mode 100644
index 0000000..418e612
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortDescStatsRequest extends OFObject, OFStatsRequest<OFPortDescStatsReply>, OFRequest<OFPortDescStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFPortDescStatsReply> {
+        OFPortDescStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java
new file mode 100644
index 0000000..fd33a69
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortFeatures {
+     PF_10MB_HD(PortSpeed.SPEED_10MB),
+     PF_10MB_FD(PortSpeed.SPEED_10MB),
+     PF_100MB_HD(PortSpeed.SPEED_100MB),
+     PF_100MB_FD(PortSpeed.SPEED_100MB),
+     PF_1GB_HD(PortSpeed.SPEED_1GB),
+     PF_1GB_FD(PortSpeed.SPEED_1GB),
+     PF_10GB_FD(PortSpeed.SPEED_10GB),
+     PF_COPPER(PortSpeed.SPEED_NONE),
+     PF_FIBER(PortSpeed.SPEED_NONE),
+     PF_AUTONEG(PortSpeed.SPEED_NONE),
+     PF_PAUSE(PortSpeed.SPEED_NONE),
+     PF_PAUSE_ASYM(PortSpeed.SPEED_NONE),
+     PF_40GB_FD(PortSpeed.SPEED_40GB),
+     PF_100GB_FD(PortSpeed.SPEED_100GB),
+     PF_1TB_FD(PortSpeed.SPEED_1TB),
+     PF_OTHER(PortSpeed.SPEED_NONE);
+
+     private final PortSpeed portSpeed;
+
+     private OFPortFeatures(PortSpeed portSpeed) {
+        this.portSpeed = portSpeed;
+     }
+
+     public PortSpeed getPortSpeed() {
+         return portSpeed;
+     }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java
new file mode 100644
index 0000000..5c81061
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortMod extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFPort getPortNo();
+    MacAddress getHwAddr();
+    long getConfig();
+    long getMask();
+    long getAdvertise();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFPortMod build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        MacAddress getHwAddr();
+        Builder setHwAddr(MacAddress hwAddr);
+        long getConfig();
+        Builder setConfig(long config);
+        long getMask();
+        Builder setMask(long mask);
+        long getAdvertise();
+        Builder setAdvertise(long advertise);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java
new file mode 100644
index 0000000..e43b52c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortModFailedCode {
+     BAD_PORT,
+     BAD_HW_ADDR,
+     BAD_CONFIG,
+     BAD_ADVERTISE,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java
new file mode 100644
index 0000000..2e75baa
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortReason {
+     ADD,
+     DELETE,
+     MODIFY;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java
new file mode 100644
index 0000000..40d1c6b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortState {
+     LINK_DOWN(false),
+     STP_LISTEN(true),
+     STP_LEARN(true),
+     STP_FORWARD(true),
+     STP_BLOCK(true),
+     STP_MASK(true),
+     BLOCKED(false),
+     LIVE(false);
+
+     private final boolean stpState;
+
+     private OFPortState(boolean stpState) {
+        this.stpState = stpState;
+     }
+
+     public boolean isStpState() {
+         return stpState;
+     }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java
new file mode 100644
index 0000000..fd844f9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java
@@ -0,0 +1,83 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatsEntry extends OFObject {
+    OFPort getPortNo();
+    U64 getRxPackets();
+    U64 getTxPackets();
+    U64 getRxBytes();
+    U64 getTxBytes();
+    U64 getRxDropped();
+    U64 getTxDropped();
+    U64 getRxErrors();
+    U64 getTxErrors();
+    U64 getRxFrameErr();
+    U64 getRxOverErr();
+    U64 getRxCrcErr();
+    U64 getCollisions();
+    long getDurationSec() throws UnsupportedOperationException;
+    long getDurationNsec() throws UnsupportedOperationException;
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFPortStatsEntry build();
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        U64 getRxPackets();
+        Builder setRxPackets(U64 rxPackets);
+        U64 getTxPackets();
+        Builder setTxPackets(U64 txPackets);
+        U64 getRxBytes();
+        Builder setRxBytes(U64 rxBytes);
+        U64 getTxBytes();
+        Builder setTxBytes(U64 txBytes);
+        U64 getRxDropped();
+        Builder setRxDropped(U64 rxDropped);
+        U64 getTxDropped();
+        Builder setTxDropped(U64 txDropped);
+        U64 getRxErrors();
+        Builder setRxErrors(U64 rxErrors);
+        U64 getTxErrors();
+        Builder setTxErrors(U64 txErrors);
+        U64 getRxFrameErr();
+        Builder setRxFrameErr(U64 rxFrameErr);
+        U64 getRxOverErr();
+        Builder setRxOverErr(U64 rxOverErr);
+        U64 getRxCrcErr();
+        Builder setRxCrcErr(U64 rxCrcErr);
+        U64 getCollisions();
+        Builder setCollisions(U64 collisions);
+        long getDurationSec() throws UnsupportedOperationException;
+        Builder setDurationSec(long durationSec) throws UnsupportedOperationException;
+        long getDurationNsec() throws UnsupportedOperationException;
+        Builder setDurationNsec(long durationNsec) throws UnsupportedOperationException;
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java
new file mode 100644
index 0000000..90e0c31
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFPortStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFPortStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFPortStatsEntry> getEntries();
+        Builder setEntries(List<OFPortStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java
new file mode 100644
index 0000000..2bbdf93
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatsRequest extends OFObject, OFStatsRequest<OFPortStatsReply>, OFRequest<OFPortStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    OFPort getPortNo();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFPortStatsReply> {
+        OFPortStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java
new file mode 100644
index 0000000..e7bee5b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatus extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFPortReason getReason();
+    OFPortDesc getDesc();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFPortStatus build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFPortReason getReason();
+        Builder setReason(OFPortReason reason);
+        OFPortDesc getDesc();
+        Builder setDesc(OFPortDesc desc);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java
new file mode 100644
index 0000000..d31aab4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueGetConfigReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFPort getPort();
+    List<OFPacketQueue> getQueues();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFQueueGetConfigReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFPort getPort();
+        Builder setPort(OFPort port);
+        List<OFPacketQueue> getQueues();
+        Builder setQueues(List<OFPacketQueue> queues);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java
new file mode 100644
index 0000000..cddc9f0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueGetConfigRequest extends OFObject, OFMessage, OFRequest<OFQueueGetConfigReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFPort getPort();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFQueueGetConfigRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFPort getPort();
+        Builder setPort(OFPort port);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java
new file mode 100644
index 0000000..21549e2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFQueueOpFailedCode {
+     BAD_PORT,
+     BAD_QUEUE,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java
new file mode 100644
index 0000000..a5a11fc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFQueueProperties {
+     NONE,
+     MIN_RATE,
+     MAX_RATE,
+     EXPERIMENTER;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java
new file mode 100644
index 0000000..4f04ad8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueStatsEntry extends OFObject {
+    OFPort getPortNo();
+    long getQueueId();
+    U64 getTxBytes();
+    U64 getTxPackets();
+    U64 getTxErrors();
+    long getDurationSec() throws UnsupportedOperationException;
+    long getDurationNsec() throws UnsupportedOperationException;
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFQueueStatsEntry build();
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        long getQueueId();
+        Builder setQueueId(long queueId);
+        U64 getTxBytes();
+        Builder setTxBytes(U64 txBytes);
+        U64 getTxPackets();
+        Builder setTxPackets(U64 txPackets);
+        U64 getTxErrors();
+        Builder setTxErrors(U64 txErrors);
+        long getDurationSec() throws UnsupportedOperationException;
+        Builder setDurationSec(long durationSec) throws UnsupportedOperationException;
+        long getDurationNsec() throws UnsupportedOperationException;
+        Builder setDurationNsec(long durationNsec) throws UnsupportedOperationException;
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java
new file mode 100644
index 0000000..efeb67d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFQueueStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFQueueStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFQueueStatsEntry> getEntries();
+        Builder setEntries(List<OFQueueStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java
new file mode 100644
index 0000000..3101abe
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueStatsRequest extends OFObject, OFStatsRequest<OFQueueStatsReply>, OFRequest<OFQueueStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    OFPort getPortNo();
+    long getQueueId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFQueueStatsReply> {
+        OFQueueStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        OFPort getPortNo();
+        Builder setPortNo(OFPort portNo);
+        long getQueueId();
+        Builder setQueueId(long queueId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java
new file mode 100644
index 0000000..2b3a992
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFRoleReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFControllerRole getRole();
+    U64 getGenerationId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFRoleReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFControllerRole getRole();
+        Builder setRole(OFControllerRole role);
+        U64 getGenerationId();
+        Builder setGenerationId(U64 generationId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java
new file mode 100644
index 0000000..15bae7e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFRoleRequest extends OFObject, OFMessage, OFRequest<OFRoleReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFControllerRole getRole();
+    U64 getGenerationId();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFRoleRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFControllerRole getRole();
+        Builder setRole(OFControllerRole role);
+        U64 getGenerationId();
+        Builder setGenerationId(U64 generationId);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java
new file mode 100644
index 0000000..19793ec
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFRoleRequestFailedCode {
+     STALE,
+     UNSUP,
+     BAD_ROLE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java
new file mode 100644
index 0000000..2caf3f4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFSetConfig extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    Set<OFConfigFlags> getFlags();
+    int getMissSendLen();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFSetConfig build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        Set<OFConfigFlags> getFlags();
+        Builder setFlags(Set<OFConfigFlags> flags);
+        int getMissSendLen();
+        Builder setMissSendLen(int missSendLen);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java
new file mode 100644
index 0000000..504180a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFStatsReply extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java
new file mode 100644
index 0000000..e521381
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFStatsReplyFlags {
+     REPLY_MORE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java
new file mode 100644
index 0000000..94ea80b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFStatsRequest<T extends OFStatsReply> extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder<T> createBuilder();
+    public interface Builder<T extends OFStatsReply> extends OFMessage.Builder {
+        OFStatsRequest<T> build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder<T> setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder<T> setFlags(Set<OFStatsRequestFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java
new file mode 100644
index 0000000..80ba542
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFStatsRequestFlags {
+     REQ_MORE;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java
new file mode 100644
index 0000000..fee8757
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFStatsType {
+     DESC,
+     FLOW,
+     AGGREGATE,
+     TABLE,
+     PORT,
+     QUEUE,
+     EXPERIMENTER,
+     GROUP,
+     GROUP_DESC,
+     GROUP_FEATURES,
+     METER,
+     METER_CONFIG,
+     METER_FEATURES,
+     TABLE_FEATURES,
+     PORT_DESC;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java
new file mode 100644
index 0000000..646ce00
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFSwitchConfigFailedCode {
+     BAD_FLAGS,
+     BAD_LEN,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java
new file mode 100644
index 0000000..301ce93
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTable {
+     MAX,
+     ALL;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java
new file mode 100644
index 0000000..d620606
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableConfig {
+     TABLE_MISS_CONTROLLER,
+     TABLE_MISS_CONTINUE,
+     TABLE_MISS_DROP,
+     TABLE_MISS_MASK,
+     DEPRECATED_MASK;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java
new file mode 100644
index 0000000..4df78c2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeatureProp extends OFObject {
+    int getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFTableFeatureProp build();
+        int getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java
new file mode 100644
index 0000000..35ac87a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplyActions extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<OFActionId> getActionIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropApplyActions build();
+        int getType();
+        List<OFActionId> getActionIds();
+        Builder setActionIds(List<OFActionId> actionIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java
new file mode 100644
index 0000000..00dff4d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplyActionsMiss extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<OFActionId> getActionIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropApplyActionsMiss build();
+        int getType();
+        List<OFActionId> getActionIds();
+        Builder setActionIds(List<OFActionId> actionIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java
new file mode 100644
index 0000000..2fc37f7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplySetfield extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U32> getOxmIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropApplySetfield build();
+        int getType();
+        List<U32> getOxmIds();
+        Builder setOxmIds(List<U32> oxmIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java
new file mode 100644
index 0000000..a1208be
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplySetfieldMiss extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U32> getOxmIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropApplySetfieldMiss build();
+        int getType();
+        List<U32> getOxmIds();
+        Builder setOxmIds(List<U32> oxmIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java
new file mode 100644
index 0000000..2b80219
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropExperimenter extends OFObject, OFTableFeatureProp {
+    int getType();
+    long getExperimenter();
+    long getSubtype();
+    byte[] getExperimenterData();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropExperimenter build();
+        int getType();
+        long getExperimenter();
+        Builder setExperimenter(long experimenter);
+        long getSubtype();
+        Builder setSubtype(long subtype);
+        byte[] getExperimenterData();
+        Builder setExperimenterData(byte[] experimenterData);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java
new file mode 100644
index 0000000..74a2040
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropExperimenterMiss extends OFObject, OFTableFeatureProp {
+    int getType();
+    long getExperimenter();
+    long getSubtype();
+    byte[] getExperimenterData();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropExperimenterMiss build();
+        int getType();
+        long getExperimenter();
+        Builder setExperimenter(long experimenter);
+        long getSubtype();
+        Builder setSubtype(long subtype);
+        byte[] getExperimenterData();
+        Builder setExperimenterData(byte[] experimenterData);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java
new file mode 100644
index 0000000..43d489f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropInstructions extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<OFInstructionId> getInstructionIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropInstructions build();
+        int getType();
+        List<OFInstructionId> getInstructionIds();
+        Builder setInstructionIds(List<OFInstructionId> instructionIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java
new file mode 100644
index 0000000..edd4684
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropInstructionsMiss extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<OFInstructionId> getInstructionIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropInstructionsMiss build();
+        int getType();
+        List<OFInstructionId> getInstructionIds();
+        Builder setInstructionIds(List<OFInstructionId> instructionIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java
new file mode 100644
index 0000000..a065105
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropMatch extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U32> getOxmIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropMatch build();
+        int getType();
+        List<U32> getOxmIds();
+        Builder setOxmIds(List<U32> oxmIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java
new file mode 100644
index 0000000..ec3dc29
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropNextTables extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U8> getNextTableIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropNextTables build();
+        int getType();
+        List<U8> getNextTableIds();
+        Builder setNextTableIds(List<U8> nextTableIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java
new file mode 100644
index 0000000..d9c5911
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropNextTablesMiss extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U8> getNextTableIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropNextTablesMiss build();
+        int getType();
+        List<U8> getNextTableIds();
+        Builder setNextTableIds(List<U8> nextTableIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java
new file mode 100644
index 0000000..36691ee
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableFeaturePropType {
+     INSTRUCTIONS,
+     INSTRUCTIONS_MISS,
+     NEXT_TABLES,
+     NEXT_TABLES_MISS,
+     WRITE_ACTIONS,
+     WRITE_ACTIONS_MISS,
+     APPLY_ACTIONS,
+     APPLY_ACTIONS_MISS,
+     MATCH,
+     WILDCARDS,
+     WRITE_SETFIELD,
+     WRITE_SETFIELD_MISS,
+     APPLY_SETFIELD,
+     APPLY_SETFIELD_MISS,
+     EXPERIMENTER,
+     EXPERIMENTER_MISS;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java
new file mode 100644
index 0000000..c513561
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWildcards extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U32> getOxmIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropWildcards build();
+        int getType();
+        List<U32> getOxmIds();
+        Builder setOxmIds(List<U32> oxmIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java
new file mode 100644
index 0000000..9b7dec1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteActions extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<OFActionId> getActionIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropWriteActions build();
+        int getType();
+        List<OFActionId> getActionIds();
+        Builder setActionIds(List<OFActionId> actionIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java
new file mode 100644
index 0000000..e3deb3c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteActionsMiss extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<OFActionId> getActionIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropWriteActionsMiss build();
+        int getType();
+        List<OFActionId> getActionIds();
+        Builder setActionIds(List<OFActionId> actionIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java
new file mode 100644
index 0000000..7b5811b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteSetfield extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U32> getOxmIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropWriteSetfield build();
+        int getType();
+        List<U32> getOxmIds();
+        Builder setOxmIds(List<U32> oxmIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java
new file mode 100644
index 0000000..f68d90d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteSetfieldMiss extends OFObject, OFTableFeatureProp {
+    int getType();
+    List<U32> getOxmIds();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFTableFeatureProp.Builder {
+        OFTableFeaturePropWriteSetfieldMiss build();
+        int getType();
+        List<U32> getOxmIds();
+        Builder setOxmIds(List<U32> oxmIds);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java
new file mode 100644
index 0000000..d74de81
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeatures extends OFObject {
+    TableId getTableId();
+    String getName();
+    U64 getMetadataMatch();
+    U64 getMetadataWrite();
+    long getConfig();
+    long getMaxEntries();
+    List<OFTableFeatureProp> getProperties();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFTableFeatures build();
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        String getName();
+        Builder setName(String name);
+        U64 getMetadataMatch();
+        Builder setMetadataMatch(U64 metadataMatch);
+        U64 getMetadataWrite();
+        Builder setMetadataWrite(U64 metadataWrite);
+        long getConfig();
+        Builder setConfig(long config);
+        long getMaxEntries();
+        Builder setMaxEntries(long maxEntries);
+        List<OFTableFeatureProp> getProperties();
+        Builder setProperties(List<OFTableFeatureProp> properties);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java
new file mode 100644
index 0000000..5703e53
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java
@@ -0,0 +1,34 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableFeaturesFailedCode {
+     BAD_TABLE,
+     BAD_METADATA,
+     BAD_TYPE,
+     BAD_LEN,
+     BAD_ARGUMENT,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java
new file mode 100644
index 0000000..10d48ff
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturesStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFTableFeatures> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFTableFeaturesStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFTableFeatures> getEntries();
+        Builder setEntries(List<OFTableFeatures> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java
new file mode 100644
index 0000000..00dc72d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturesStatsRequest extends OFObject, OFStatsRequest<OFTableFeaturesStatsReply>, OFRequest<OFTableFeaturesStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+    List<OFTableFeatures> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFTableFeaturesStatsReply> {
+        OFTableFeaturesStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+        List<OFTableFeatures> getEntries();
+        Builder setEntries(List<OFTableFeatures> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java
new file mode 100644
index 0000000..be009c9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableMod extends OFObject, OFMessage {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    TableId getTableId();
+    long getConfig();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMessage.Builder {
+        OFTableMod build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        long getConfig();
+        Builder setConfig(long config);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java
new file mode 100644
index 0000000..6f81b11
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableModFailedCode {
+     BAD_TABLE,
+     BAD_CONFIG,
+     EPERM;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java
new file mode 100644
index 0000000..ee02f19
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java
@@ -0,0 +1,87 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableStatsEntry extends OFObject {
+    TableId getTableId();
+    String getName() throws UnsupportedOperationException;
+    OFMatchBmap getMatch() throws UnsupportedOperationException;
+    int getWildcards() throws UnsupportedOperationException;
+    long getWriteActions() throws UnsupportedOperationException;
+    long getApplyActions() throws UnsupportedOperationException;
+    U64 getWriteSetfields() throws UnsupportedOperationException;
+    U64 getApplySetfields() throws UnsupportedOperationException;
+    U64 getMetadataMatch() throws UnsupportedOperationException;
+    U64 getMetadataWrite() throws UnsupportedOperationException;
+    long getInstructions() throws UnsupportedOperationException;
+    long getConfig() throws UnsupportedOperationException;
+    long getMaxEntries() throws UnsupportedOperationException;
+    long getActiveCount();
+    U64 getLookupCount();
+    U64 getMatchedCount();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFTableStatsEntry build();
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        String getName() throws UnsupportedOperationException;
+        Builder setName(String name) throws UnsupportedOperationException;
+        OFMatchBmap getMatch() throws UnsupportedOperationException;
+        Builder setMatch(OFMatchBmap match) throws UnsupportedOperationException;
+        int getWildcards() throws UnsupportedOperationException;
+        Builder setWildcards(int wildcards) throws UnsupportedOperationException;
+        long getWriteActions() throws UnsupportedOperationException;
+        Builder setWriteActions(long writeActions) throws UnsupportedOperationException;
+        long getApplyActions() throws UnsupportedOperationException;
+        Builder setApplyActions(long applyActions) throws UnsupportedOperationException;
+        U64 getWriteSetfields() throws UnsupportedOperationException;
+        Builder setWriteSetfields(U64 writeSetfields) throws UnsupportedOperationException;
+        U64 getApplySetfields() throws UnsupportedOperationException;
+        Builder setApplySetfields(U64 applySetfields) throws UnsupportedOperationException;
+        U64 getMetadataMatch() throws UnsupportedOperationException;
+        Builder setMetadataMatch(U64 metadataMatch) throws UnsupportedOperationException;
+        U64 getMetadataWrite() throws UnsupportedOperationException;
+        Builder setMetadataWrite(U64 metadataWrite) throws UnsupportedOperationException;
+        long getInstructions() throws UnsupportedOperationException;
+        Builder setInstructions(long instructions) throws UnsupportedOperationException;
+        long getConfig() throws UnsupportedOperationException;
+        Builder setConfig(long config) throws UnsupportedOperationException;
+        long getMaxEntries() throws UnsupportedOperationException;
+        Builder setMaxEntries(long maxEntries) throws UnsupportedOperationException;
+        long getActiveCount();
+        Builder setActiveCount(long activeCount);
+        U64 getLookupCount();
+        Builder setLookupCount(U64 lookupCount);
+        U64 getMatchedCount();
+        Builder setMatchedCount(U64 matchedCount);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java
new file mode 100644
index 0000000..e16d879
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableStatsReply extends OFObject, OFStatsReply {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsReplyFlags> getFlags();
+    List<OFTableStatsEntry> getEntries();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsReply.Builder {
+        OFTableStatsReply build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsReplyFlags> getFlags();
+        Builder setFlags(Set<OFStatsReplyFlags> flags);
+        List<OFTableStatsEntry> getEntries();
+        Builder setEntries(List<OFTableStatsEntry> entries);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java
new file mode 100644
index 0000000..a9dff30
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableStatsRequest extends OFObject, OFStatsRequest<OFTableStatsReply>, OFRequest<OFTableStatsReply> {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFStatsType getStatsType();
+    Set<OFStatsRequestFlags> getFlags();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFStatsRequest.Builder<OFTableStatsReply> {
+        OFTableStatsRequest build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFStatsType getStatsType();
+        Set<OFStatsRequestFlags> getFlags();
+        Builder setFlags(Set<OFStatsRequestFlags> flags);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java
new file mode 100644
index 0000000..aef779f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFType {
+     HELLO,
+     ERROR,
+     ECHO_REQUEST,
+     ECHO_REPLY,
+     EXPERIMENTER,
+     FEATURES_REQUEST,
+     FEATURES_REPLY,
+     GET_CONFIG_REQUEST,
+     GET_CONFIG_REPLY,
+     SET_CONFIG,
+     PACKET_IN,
+     FLOW_REMOVED,
+     PORT_STATUS,
+     PACKET_OUT,
+     FLOW_MOD,
+     PORT_MOD,
+     STATS_REQUEST,
+     STATS_REPLY,
+     BARRIER_REQUEST,
+     BARRIER_REPLY,
+     QUEUE_GET_CONFIG_REQUEST,
+     QUEUE_GET_CONFIG_REPLY,
+     GROUP_MOD,
+     TABLE_MOD,
+     ROLE_REQUEST,
+     ROLE_REPLY,
+     GET_ASYNC_REQUEST,
+     GET_ASYNC_REPLY,
+     SET_ASYNC,
+     METER_MOD;
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java
new file mode 100644
index 0000000..c9d5edd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFUint64 extends OFObject {
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFUint64 build();
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java
new file mode 100644
index 0000000..6a2f731
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAction extends OFObject {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFAction build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java
new file mode 100644
index 0000000..c644ffd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsn extends OFObject, OFActionExperimenter {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionExperimenter.Builder {
+        OFActionBsn build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java
new file mode 100644
index 0000000..e09c19c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsnChecksum extends OFObject, OFActionBsn {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    U128 getChecksum();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionBsn.Builder {
+        OFActionBsnChecksum build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        U128 getChecksum();
+        Builder setChecksum(U128 checksum);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java
new file mode 100644
index 0000000..8b15cd2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsnMirror extends OFObject, OFActionBsn {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFPort getDestPort();
+    long getVlanTag();
+    short getCopyStage();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionBsn.Builder {
+        OFActionBsnMirror build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFPort getDestPort();
+        Builder setDestPort(OFPort destPort);
+        long getVlanTag();
+        Builder setVlanTag(long vlanTag);
+        short getCopyStage();
+        Builder setCopyStage(short copyStage);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java
new file mode 100644
index 0000000..24dbb3a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsnSetTunnelDst extends OFObject, OFActionBsn {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    long getDst();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionBsn.Builder {
+        OFActionBsnSetTunnelDst build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        long getDst();
+        Builder setDst(long dst);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java
new file mode 100644
index 0000000..166d4a7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionCopyTtlIn extends OFObject, OFAction {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionCopyTtlIn build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java
new file mode 100644
index 0000000..d78e511
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionCopyTtlOut extends OFObject, OFAction {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionCopyTtlOut build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java
new file mode 100644
index 0000000..e855cf0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionDecMplsTtl extends OFObject, OFAction {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionDecMplsTtl build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java
new file mode 100644
index 0000000..5dbec27
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionDecNwTtl extends OFObject, OFAction {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionDecNwTtl build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java
new file mode 100644
index 0000000..11ab1a6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionEnqueue extends OFObject, OFAction {
+    OFActionType getType();
+    OFPort getPort();
+    long getQueueId();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionEnqueue build();
+        OFActionType getType();
+        OFPort getPort();
+        Builder setPort(OFPort port);
+        long getQueueId();
+        Builder setQueueId(long queueId);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java
new file mode 100644
index 0000000..56d9ef9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionExperimenter extends OFObject, OFAction {
+    OFActionType getType();
+    long getExperimenter();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionExperimenter build();
+        OFActionType getType();
+        long getExperimenter();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java
new file mode 100644
index 0000000..8d65fa8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionGroup extends OFObject, OFAction {
+    OFActionType getType();
+    OFGroup getGroup();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionGroup build();
+        OFActionType getType();
+        OFGroup getGroup();
+        Builder setGroup(OFGroup group);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java
new file mode 100644
index 0000000..aad3c35
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionNicira extends OFObject, OFActionExperimenter {
+    OFActionType getType();
+    long getExperimenter();
+    int getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionExperimenter.Builder {
+        OFActionNicira build();
+        OFActionType getType();
+        long getExperimenter();
+        int getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java
new file mode 100644
index 0000000..55b81c9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionNiciraDecTtl extends OFObject, OFActionNicira {
+    OFActionType getType();
+    long getExperimenter();
+    int getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionNicira.Builder {
+        OFActionNiciraDecTtl build();
+        OFActionType getType();
+        long getExperimenter();
+        int getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java
new file mode 100644
index 0000000..b673a22
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionOutput extends OFObject, OFAction {
+    OFActionType getType();
+    OFPort getPort();
+    int getMaxLen();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionOutput build();
+        OFActionType getType();
+        OFPort getPort();
+        Builder setPort(OFPort port);
+        int getMaxLen();
+        Builder setMaxLen(int maxLen);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java
new file mode 100644
index 0000000..3067e2f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPopMpls extends OFObject, OFAction {
+    OFActionType getType();
+    EthType getEthertype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionPopMpls build();
+        OFActionType getType();
+        EthType getEthertype();
+        Builder setEthertype(EthType ethertype);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java
new file mode 100644
index 0000000..33934b6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPopPbb extends OFObject, OFAction {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionPopPbb build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java
new file mode 100644
index 0000000..998f7db
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPopVlan extends OFObject, OFAction {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionPopVlan build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java
new file mode 100644
index 0000000..76b7da2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPushMpls extends OFObject, OFAction {
+    OFActionType getType();
+    EthType getEthertype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionPushMpls build();
+        OFActionType getType();
+        EthType getEthertype();
+        Builder setEthertype(EthType ethertype);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java
new file mode 100644
index 0000000..0177569
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPushPbb extends OFObject, OFAction {
+    OFActionType getType();
+    EthType getEthertype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionPushPbb build();
+        OFActionType getType();
+        EthType getEthertype();
+        Builder setEthertype(EthType ethertype);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java
new file mode 100644
index 0000000..e98513b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPushVlan extends OFObject, OFAction {
+    OFActionType getType();
+    EthType getEthertype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionPushVlan build();
+        OFActionType getType();
+        EthType getEthertype();
+        Builder setEthertype(EthType ethertype);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java
new file mode 100644
index 0000000..1897651
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetDlDst extends OFObject, OFAction {
+    OFActionType getType();
+    MacAddress getDlAddr();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetDlDst build();
+        OFActionType getType();
+        MacAddress getDlAddr();
+        Builder setDlAddr(MacAddress dlAddr);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java
new file mode 100644
index 0000000..8dcc7f5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetDlSrc extends OFObject, OFAction {
+    OFActionType getType();
+    MacAddress getDlAddr();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetDlSrc build();
+        OFActionType getType();
+        MacAddress getDlAddr();
+        Builder setDlAddr(MacAddress dlAddr);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java
new file mode 100644
index 0000000..25f91ce
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetField extends OFObject, OFAction {
+    OFActionType getType();
+    OFOxm<?> getField();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetField build();
+        OFActionType getType();
+        OFOxm<?> getField();
+        Builder setField(OFOxm<?> field);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java
new file mode 100644
index 0000000..214d66b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetMplsLabel extends OFObject, OFAction {
+    OFActionType getType();
+    long getMplsLabel();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetMplsLabel build();
+        OFActionType getType();
+        long getMplsLabel();
+        Builder setMplsLabel(long mplsLabel);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java
new file mode 100644
index 0000000..6c43156
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetMplsTc extends OFObject, OFAction {
+    OFActionType getType();
+    short getMplsTc();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetMplsTc build();
+        OFActionType getType();
+        short getMplsTc();
+        Builder setMplsTc(short mplsTc);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java
new file mode 100644
index 0000000..c8513c6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetMplsTtl extends OFObject, OFAction {
+    OFActionType getType();
+    short getMplsTtl();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetMplsTtl build();
+        OFActionType getType();
+        short getMplsTtl();
+        Builder setMplsTtl(short mplsTtl);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java
new file mode 100644
index 0000000..539cd37
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwDst extends OFObject, OFAction {
+    OFActionType getType();
+    IPv4Address getNwAddr();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetNwDst build();
+        OFActionType getType();
+        IPv4Address getNwAddr();
+        Builder setNwAddr(IPv4Address nwAddr);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java
new file mode 100644
index 0000000..a42e2c8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwEcn extends OFObject, OFAction {
+    OFActionType getType();
+    IpEcn getNwEcn();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetNwEcn build();
+        OFActionType getType();
+        IpEcn getNwEcn();
+        Builder setNwEcn(IpEcn nwEcn);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java
new file mode 100644
index 0000000..cd27977
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwSrc extends OFObject, OFAction {
+    OFActionType getType();
+    IPv4Address getNwAddr();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetNwSrc build();
+        OFActionType getType();
+        IPv4Address getNwAddr();
+        Builder setNwAddr(IPv4Address nwAddr);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java
new file mode 100644
index 0000000..38a133b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwTos extends OFObject, OFAction {
+    OFActionType getType();
+    short getNwTos();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetNwTos build();
+        OFActionType getType();
+        short getNwTos();
+        Builder setNwTos(short nwTos);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java
new file mode 100644
index 0000000..ed35d59
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwTtl extends OFObject, OFAction {
+    OFActionType getType();
+    short getNwTtl();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetNwTtl build();
+        OFActionType getType();
+        short getNwTtl();
+        Builder setNwTtl(short nwTtl);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java
new file mode 100644
index 0000000..b2115ab
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetQueue extends OFObject, OFAction {
+    OFActionType getType();
+    long getQueueId();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetQueue build();
+        OFActionType getType();
+        long getQueueId();
+        Builder setQueueId(long queueId);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java
new file mode 100644
index 0000000..680b99a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetTpDst extends OFObject, OFAction {
+    OFActionType getType();
+    TransportPort getTpPort();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetTpDst build();
+        OFActionType getType();
+        TransportPort getTpPort();
+        Builder setTpPort(TransportPort tpPort);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java
new file mode 100644
index 0000000..bf555aa
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetTpSrc extends OFObject, OFAction {
+    OFActionType getType();
+    TransportPort getTpPort();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetTpSrc build();
+        OFActionType getType();
+        TransportPort getTpPort();
+        Builder setTpPort(TransportPort tpPort);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java
new file mode 100644
index 0000000..a448078
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetVlanPcp extends OFObject, OFAction {
+    OFActionType getType();
+    VlanPcp getVlanPcp();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetVlanPcp build();
+        OFActionType getType();
+        VlanPcp getVlanPcp();
+        Builder setVlanPcp(VlanPcp vlanPcp);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java
new file mode 100644
index 0000000..5bbf2c7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetVlanVid extends OFObject, OFAction {
+    OFActionType getType();
+    VlanVid getVlanVid();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionSetVlanVid build();
+        OFActionType getType();
+        VlanVid getVlanVid();
+        Builder setVlanVid(VlanVid vlanVid);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java
new file mode 100644
index 0000000..d3fcc90
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionStripVlan extends OFObject, OFAction {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFAction.Builder {
+        OFActionStripVlan build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java
new file mode 100644
index 0000000..e465ac5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java
@@ -0,0 +1,93 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+public interface OFActions {
+    // Subfactories
+
+    OFActionBsnChecksum.Builder buildBsnChecksum();
+    OFActionBsnChecksum bsnChecksum(U128 checksum);
+    OFActionBsnMirror.Builder buildBsnMirror();
+    OFActionBsnSetTunnelDst.Builder buildBsnSetTunnelDst();
+    OFActionBsnSetTunnelDst bsnSetTunnelDst(long dst);
+    OFActionEnqueue.Builder buildEnqueue() throws UnsupportedOperationException;
+    OFActionEnqueue enqueue(OFPort port, long queueId);
+    OFActionNiciraDecTtl niciraDecTtl();
+    OFActionOutput.Builder buildOutput();
+    OFActionOutput output(OFPort port, int maxLen);
+    OFActionSetDlDst.Builder buildSetDlDst() throws UnsupportedOperationException;
+    OFActionSetDlDst setDlDst(MacAddress dlAddr);
+    OFActionSetDlSrc.Builder buildSetDlSrc() throws UnsupportedOperationException;
+    OFActionSetDlSrc setDlSrc(MacAddress dlAddr);
+    OFActionSetNwDst.Builder buildSetNwDst() throws UnsupportedOperationException;
+    OFActionSetNwDst setNwDst(IPv4Address nwAddr);
+    OFActionSetNwSrc.Builder buildSetNwSrc() throws UnsupportedOperationException;
+    OFActionSetNwSrc setNwSrc(IPv4Address nwAddr);
+    OFActionSetNwTos.Builder buildSetNwTos() throws UnsupportedOperationException;
+    OFActionSetNwTos setNwTos(short nwTos);
+    OFActionSetTpDst.Builder buildSetTpDst() throws UnsupportedOperationException;
+    OFActionSetTpDst setTpDst(TransportPort tpPort);
+    OFActionSetTpSrc.Builder buildSetTpSrc() throws UnsupportedOperationException;
+    OFActionSetTpSrc setTpSrc(TransportPort tpPort);
+    OFActionSetVlanPcp.Builder buildSetVlanPcp() throws UnsupportedOperationException;
+    OFActionSetVlanPcp setVlanPcp(VlanPcp vlanPcp);
+    OFActionSetVlanVid.Builder buildSetVlanVid() throws UnsupportedOperationException;
+    OFActionSetVlanVid setVlanVid(VlanVid vlanVid);
+    OFActionStripVlan stripVlan();
+    OFActionCopyTtlIn copyTtlIn();
+    OFActionCopyTtlOut copyTtlOut();
+    OFActionDecMplsTtl decMplsTtl();
+    OFActionDecNwTtl decNwTtl();
+    OFActionGroup.Builder buildGroup() throws UnsupportedOperationException;
+    OFActionGroup group(OFGroup group);
+    OFActionPopMpls.Builder buildPopMpls() throws UnsupportedOperationException;
+    OFActionPopMpls popMpls(EthType ethertype);
+    OFActionPopVlan popVlan();
+    OFActionPushMpls.Builder buildPushMpls() throws UnsupportedOperationException;
+    OFActionPushMpls pushMpls(EthType ethertype);
+    OFActionPushVlan.Builder buildPushVlan() throws UnsupportedOperationException;
+    OFActionPushVlan pushVlan(EthType ethertype);
+    OFActionSetMplsLabel.Builder buildSetMplsLabel() throws UnsupportedOperationException;
+    OFActionSetMplsLabel setMplsLabel(long mplsLabel);
+    OFActionSetMplsTc.Builder buildSetMplsTc() throws UnsupportedOperationException;
+    OFActionSetMplsTc setMplsTc(short mplsTc);
+    OFActionSetMplsTtl.Builder buildSetMplsTtl() throws UnsupportedOperationException;
+    OFActionSetMplsTtl setMplsTtl(short mplsTtl);
+    OFActionSetNwEcn.Builder buildSetNwEcn() throws UnsupportedOperationException;
+    OFActionSetNwEcn setNwEcn(IpEcn nwEcn);
+    OFActionSetNwTtl.Builder buildSetNwTtl() throws UnsupportedOperationException;
+    OFActionSetNwTtl setNwTtl(short nwTtl);
+    OFActionSetQueue.Builder buildSetQueue() throws UnsupportedOperationException;
+    OFActionSetQueue setQueue(long queueId);
+    OFActionSetField.Builder buildSetField() throws UnsupportedOperationException;
+    OFActionSetField setField(OFOxm<?> field);
+    OFActionPopPbb popPbb();
+    OFActionPushPbb.Builder buildPushPbb() throws UnsupportedOperationException;
+    OFActionPushPbb pushPbb(EthType ethertype);
+
+    OFMessageReader<OFAction> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java
new file mode 100644
index 0000000..0ffacb4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionId extends OFObject {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFActionId build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java
new file mode 100644
index 0000000..c74b037
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsn extends OFObject, OFActionIdExperimenter {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionIdExperimenter.Builder {
+        OFActionIdBsn build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java
new file mode 100644
index 0000000..b051b37
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsnChecksum extends OFObject, OFActionIdBsn {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionIdBsn.Builder {
+        OFActionIdBsnChecksum build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java
new file mode 100644
index 0000000..60c4c92
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsnMirror extends OFObject, OFActionIdBsn {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionIdBsn.Builder {
+        OFActionIdBsnMirror build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java
new file mode 100644
index 0000000..b2c407a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsnSetTunnelDst extends OFObject, OFActionIdBsn {
+    OFActionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionIdBsn.Builder {
+        OFActionIdBsnSetTunnelDst build();
+        OFActionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java
new file mode 100644
index 0000000..0be31c3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdCopyTtlIn extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdCopyTtlIn build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java
new file mode 100644
index 0000000..b29d1ff
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdCopyTtlOut extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdCopyTtlOut build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java
new file mode 100644
index 0000000..dfcc979
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdDecMplsTtl extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdDecMplsTtl build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java
new file mode 100644
index 0000000..f9b31f1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdDecNwTtl extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdDecNwTtl build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java
new file mode 100644
index 0000000..084ca57
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdExperimenter extends OFObject, OFActionId {
+    OFActionType getType();
+    long getExperimenter();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdExperimenter build();
+        OFActionType getType();
+        long getExperimenter();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java
new file mode 100644
index 0000000..b38c9ab
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdGroup extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdGroup build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java
new file mode 100644
index 0000000..7c723ac
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdNicira extends OFObject, OFActionIdExperimenter {
+    OFActionType getType();
+    long getExperimenter();
+    int getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionIdExperimenter.Builder {
+        OFActionIdNicira build();
+        OFActionType getType();
+        long getExperimenter();
+        int getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java
new file mode 100644
index 0000000..6d53414
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdNiciraDecTtl extends OFObject, OFActionIdNicira {
+    OFActionType getType();
+    long getExperimenter();
+    int getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionIdNicira.Builder {
+        OFActionIdNiciraDecTtl build();
+        OFActionType getType();
+        long getExperimenter();
+        int getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java
new file mode 100644
index 0000000..ea2749c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdOutput extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdOutput build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java
new file mode 100644
index 0000000..9308ca1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPopMpls extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdPopMpls build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java
new file mode 100644
index 0000000..4371ec2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPopPbb extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdPopPbb build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java
new file mode 100644
index 0000000..757d40a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPopVlan extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdPopVlan build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java
new file mode 100644
index 0000000..5f76d66
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPushMpls extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdPushMpls build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java
new file mode 100644
index 0000000..0005457
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPushPbb extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdPushPbb build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java
new file mode 100644
index 0000000..c94cb34
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPushVlan extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdPushVlan build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java
new file mode 100644
index 0000000..d3f5328
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetField extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdSetField build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java
new file mode 100644
index 0000000..706c772
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetMplsTtl extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdSetMplsTtl build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java
new file mode 100644
index 0000000..8e588be
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetNwTtl extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdSetNwTtl build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java
new file mode 100644
index 0000000..2c29b66
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetQueue extends OFObject, OFActionId {
+    OFActionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFActionId.Builder {
+        OFActionIdSetQueue build();
+        OFActionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java
new file mode 100644
index 0000000..8c6c132
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+public interface OFActionIds {
+    // Subfactories
+
+    OFActionIdBsnChecksum bsnChecksum();
+    OFActionIdBsnMirror bsnMirror();
+    OFActionIdBsnSetTunnelDst bsnSetTunnelDst();
+    OFActionIdCopyTtlIn copyTtlIn();
+    OFActionIdCopyTtlOut copyTtlOut();
+    OFActionIdDecMplsTtl decMplsTtl();
+    OFActionIdDecNwTtl decNwTtl();
+    OFActionIdGroup group();
+    OFActionIdNiciraDecTtl niciraDecTtl();
+    OFActionIdOutput output();
+    OFActionIdPopMpls popMpls();
+    OFActionIdPopPbb popPbb();
+    OFActionIdPopVlan popVlan();
+    OFActionIdPushMpls pushMpls();
+    OFActionIdPushPbb pushPbb();
+    OFActionIdPushVlan pushVlan();
+    OFActionIdSetField setField();
+    OFActionIdSetMplsTtl setMplsTtl();
+    OFActionIdSetNwTtl setNwTtl();
+    OFActionIdSetQueue setQueue();
+
+    OFMessageReader<OFActionId> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java
new file mode 100644
index 0000000..bc150fd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlv extends OFObject {
+    int getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFBsnTlv build();
+        int getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java
new file mode 100644
index 0000000..7de728a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvBroadcastQueryTimeout extends OFObject, OFBsnTlv {
+    int getType();
+    long getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvBroadcastQueryTimeout build();
+        int getType();
+        long getValue();
+        Builder setValue(long value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java
new file mode 100644
index 0000000..d20aed0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvCircuitId extends OFObject, OFBsnTlv {
+    int getType();
+    byte[] getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvCircuitId build();
+        int getType();
+        byte[] getValue();
+        Builder setValue(byte[] value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java
new file mode 100644
index 0000000..ec66f67
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvCrcEnabled extends OFObject, OFBsnTlv {
+    int getType();
+    short getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvCrcEnabled build();
+        int getType();
+        short getValue();
+        Builder setValue(short value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java
new file mode 100644
index 0000000..57dd477
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIdleNotification extends OFObject, OFBsnTlv {
+    int getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvIdleNotification build();
+        int getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java
new file mode 100644
index 0000000..ac87110
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIdleTime extends OFObject, OFBsnTlv {
+    int getType();
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvIdleTime build();
+        int getType();
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java
new file mode 100644
index 0000000..deb7e68
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIdleTimeout extends OFObject, OFBsnTlv {
+    int getType();
+    long getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvIdleTimeout build();
+        int getType();
+        long getValue();
+        Builder setValue(long value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java
new file mode 100644
index 0000000..ea7dc41
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIpv4 extends OFObject, OFBsnTlv {
+    int getType();
+    IPv4Address getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvIpv4 build();
+        int getType();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java
new file mode 100644
index 0000000..f6978a5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvMac extends OFObject, OFBsnTlv {
+    int getType();
+    MacAddress getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvMac build();
+        int getType();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java
new file mode 100644
index 0000000..2b9a7ea
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvMissPackets extends OFObject, OFBsnTlv {
+    int getType();
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvMissPackets build();
+        int getType();
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java
new file mode 100644
index 0000000..536075a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvPort extends OFObject, OFBsnTlv {
+    int getType();
+    OFPort getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvPort build();
+        int getType();
+        OFPort getValue();
+        Builder setValue(OFPort value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java
new file mode 100644
index 0000000..844c727
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvQueueId extends OFObject, OFBsnTlv {
+    int getType();
+    long getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvQueueId build();
+        int getType();
+        long getValue();
+        Builder setValue(long value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java
new file mode 100644
index 0000000..a41686d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvQueueWeight extends OFObject, OFBsnTlv {
+    int getType();
+    long getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvQueueWeight build();
+        int getType();
+        long getValue();
+        Builder setValue(long value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java
new file mode 100644
index 0000000..ef2d93e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvReplyPackets extends OFObject, OFBsnTlv {
+    int getType();
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvReplyPackets build();
+        int getType();
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java
new file mode 100644
index 0000000..bed22ae
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvRequestPackets extends OFObject, OFBsnTlv {
+    int getType();
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvRequestPackets build();
+        int getType();
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java
new file mode 100644
index 0000000..98ac7da
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvRxPackets extends OFObject, OFBsnTlv {
+    int getType();
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvRxPackets build();
+        int getType();
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java
new file mode 100644
index 0000000..e292b24
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvTxPackets extends OFObject, OFBsnTlv {
+    int getType();
+    U64 getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvTxPackets build();
+        int getType();
+        U64 getValue();
+        Builder setValue(U64 value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java
new file mode 100644
index 0000000..05eea9b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfAnchor extends OFObject, OFBsnTlv {
+    int getType();
+    OFBsnUdfAnchor getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvUdfAnchor build();
+        int getType();
+        OFBsnUdfAnchor getValue();
+        Builder setValue(OFBsnUdfAnchor value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java
new file mode 100644
index 0000000..ff5156b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfId extends OFObject, OFBsnTlv {
+    int getType();
+    int getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvUdfId build();
+        int getType();
+        int getValue();
+        Builder setValue(int value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java
new file mode 100644
index 0000000..03ed71b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfLength extends OFObject, OFBsnTlv {
+    int getType();
+    int getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvUdfLength build();
+        int getType();
+        int getValue();
+        Builder setValue(int value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java
new file mode 100644
index 0000000..c572fbf
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfOffset extends OFObject, OFBsnTlv {
+    int getType();
+    int getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvUdfOffset build();
+        int getType();
+        int getValue();
+        Builder setValue(int value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java
new file mode 100644
index 0000000..26c6b12
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUnicastQueryTimeout extends OFObject, OFBsnTlv {
+    int getType();
+    long getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvUnicastQueryTimeout build();
+        int getType();
+        long getValue();
+        Builder setValue(long value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java
new file mode 100644
index 0000000..3943538
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvVlanVid extends OFObject, OFBsnTlv {
+    int getType();
+    VlanVid getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvVlanVid build();
+        int getType();
+        VlanVid getValue();
+        Builder setValue(VlanVid value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java
new file mode 100644
index 0000000..b89d0e3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvVrf extends OFObject, OFBsnTlv {
+    int getType();
+    long getValue();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFBsnTlv.Builder {
+        OFBsnTlvVrf build();
+        int getType();
+        long getValue();
+        Builder setValue(long value);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java
new file mode 100644
index 0000000..b89d774
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java
@@ -0,0 +1,78 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFBsnTlvs {
+    // Subfactories
+
+    OFBsnTlvBroadcastQueryTimeout.Builder buildBroadcastQueryTimeout() throws UnsupportedOperationException;
+    OFBsnTlvBroadcastQueryTimeout broadcastQueryTimeout(long value);
+    OFBsnTlvCircuitId.Builder buildCircuitId() throws UnsupportedOperationException;
+    OFBsnTlvCircuitId circuitId(byte[] value);
+    OFBsnTlvCrcEnabled.Builder buildCrcEnabled() throws UnsupportedOperationException;
+    OFBsnTlvCrcEnabled crcEnabled(short value);
+    OFBsnTlvIdleNotification idleNotification();
+    OFBsnTlvIdleTime.Builder buildIdleTime() throws UnsupportedOperationException;
+    OFBsnTlvIdleTime idleTime(U64 value);
+    OFBsnTlvIdleTimeout.Builder buildIdleTimeout() throws UnsupportedOperationException;
+    OFBsnTlvIdleTimeout idleTimeout(long value);
+    OFBsnTlvIpv4.Builder buildIpv4() throws UnsupportedOperationException;
+    OFBsnTlvIpv4 ipv4(IPv4Address value);
+    OFBsnTlvMac.Builder buildMac() throws UnsupportedOperationException;
+    OFBsnTlvMac mac(MacAddress value);
+    OFBsnTlvMissPackets.Builder buildMissPackets() throws UnsupportedOperationException;
+    OFBsnTlvMissPackets missPackets(U64 value);
+    OFBsnTlvPort.Builder buildPort() throws UnsupportedOperationException;
+    OFBsnTlvPort port(OFPort value);
+    OFBsnTlvQueueId.Builder buildQueueId() throws UnsupportedOperationException;
+    OFBsnTlvQueueId queueId(long value);
+    OFBsnTlvQueueWeight.Builder buildQueueWeight() throws UnsupportedOperationException;
+    OFBsnTlvQueueWeight queueWeight(long value);
+    OFBsnTlvReplyPackets.Builder buildReplyPackets() throws UnsupportedOperationException;
+    OFBsnTlvReplyPackets replyPackets(U64 value);
+    OFBsnTlvRequestPackets.Builder buildRequestPackets() throws UnsupportedOperationException;
+    OFBsnTlvRequestPackets requestPackets(U64 value);
+    OFBsnTlvRxPackets.Builder buildRxPackets() throws UnsupportedOperationException;
+    OFBsnTlvRxPackets rxPackets(U64 value);
+    OFBsnTlvTxPackets.Builder buildTxPackets() throws UnsupportedOperationException;
+    OFBsnTlvTxPackets txPackets(U64 value);
+    OFBsnTlvUdfAnchor.Builder buildUdfAnchor() throws UnsupportedOperationException;
+    OFBsnTlvUdfAnchor udfAnchor(OFBsnUdfAnchor value);
+    OFBsnTlvUdfId.Builder buildUdfId() throws UnsupportedOperationException;
+    OFBsnTlvUdfId udfId(int value);
+    OFBsnTlvUdfLength.Builder buildUdfLength() throws UnsupportedOperationException;
+    OFBsnTlvUdfLength udfLength(int value);
+    OFBsnTlvUdfOffset.Builder buildUdfOffset() throws UnsupportedOperationException;
+    OFBsnTlvUdfOffset udfOffset(int value);
+    OFBsnTlvUnicastQueryTimeout.Builder buildUnicastQueryTimeout() throws UnsupportedOperationException;
+    OFBsnTlvUnicastQueryTimeout unicastQueryTimeout(long value);
+    OFBsnTlvVlanVid.Builder buildVlanVid() throws UnsupportedOperationException;
+    OFBsnTlvVlanVid vlanVid(VlanVid value);
+    OFBsnTlvVrf.Builder buildVrf() throws UnsupportedOperationException;
+    OFBsnTlvVrf vrf(long value);
+
+    OFMessageReader<OFBsnTlv> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java
new file mode 100644
index 0000000..b21fd98
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadActionErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFBadActionCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFBadActionErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFBadActionCode getCode();
+        Builder setCode(OFBadActionCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java
new file mode 100644
index 0000000..2a9ae22
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadInstructionErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFBadInstructionCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFBadInstructionErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFBadInstructionCode getCode();
+        Builder setCode(OFBadInstructionCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java
new file mode 100644
index 0000000..73a2508
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadMatchErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFBadMatchCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFBadMatchErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFBadMatchCode getCode();
+        Builder setCode(OFBadMatchCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java
new file mode 100644
index 0000000..dac9bcc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadRequestErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFBadRequestCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFBadRequestErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFBadRequestCode getCode();
+        Builder setCode(OFBadRequestCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java
new file mode 100644
index 0000000..db7485d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFErrorMsgs extends XidGenerator {
+    // Subfactories
+
+    OFBadActionErrorMsg.Builder buildBadActionErrorMsg();
+    OFBadRequestErrorMsg.Builder buildBadRequestErrorMsg();
+    OFFlowModFailedErrorMsg.Builder buildFlowModFailedErrorMsg();
+    OFHelloFailedErrorMsg.Builder buildHelloFailedErrorMsg();
+    OFPortModFailedErrorMsg.Builder buildPortModFailedErrorMsg();
+    OFQueueOpFailedErrorMsg.Builder buildQueueOpFailedErrorMsg();
+    OFBadInstructionErrorMsg.Builder buildBadInstructionErrorMsg() throws UnsupportedOperationException;
+    OFBadMatchErrorMsg.Builder buildBadMatchErrorMsg() throws UnsupportedOperationException;
+    OFGroupModFailedErrorMsg.Builder buildGroupModFailedErrorMsg() throws UnsupportedOperationException;
+    OFSwitchConfigFailedErrorMsg.Builder buildSwitchConfigFailedErrorMsg() throws UnsupportedOperationException;
+    OFTableModFailedErrorMsg.Builder buildTableModFailedErrorMsg() throws UnsupportedOperationException;
+    OFExperimenterErrorMsg.Builder buildExperimenterErrorMsg() throws UnsupportedOperationException;
+    OFRoleRequestFailedErrorMsg.Builder buildRoleRequestFailedErrorMsg() throws UnsupportedOperationException;
+    OFMeterModFailedErrorMsg.Builder buildMeterModFailedErrorMsg() throws UnsupportedOperationException;
+    OFTableFeaturesFailedErrorMsg.Builder buildTableFeaturesFailedErrorMsg() throws UnsupportedOperationException;
+
+    OFMessageReader<OFErrorMsg> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java
new file mode 100644
index 0000000..124b01e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenterErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    int getSubtype();
+    long getExperimenter();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFExperimenterErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        int getSubtype();
+        Builder setSubtype(int subtype);
+        long getExperimenter();
+        Builder setExperimenter(long experimenter);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java
new file mode 100644
index 0000000..91d0d43
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowModFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFFlowModFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFFlowModFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFFlowModFailedCode getCode();
+        Builder setCode(OFFlowModFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java
new file mode 100644
index 0000000..93944c1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupModFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFGroupModFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFGroupModFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFGroupModFailedCode getCode();
+        Builder setCode(OFGroupModFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java
new file mode 100644
index 0000000..7cf3afd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHelloFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFHelloFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFHelloFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFHelloFailedCode getCode();
+        Builder setCode(OFHelloFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java
new file mode 100644
index 0000000..3d7a0c3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterModFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFMeterModFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFMeterModFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFMeterModFailedCode getCode();
+        Builder setCode(OFMeterModFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java
new file mode 100644
index 0000000..dfdfb79
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortModFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFPortModFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFPortModFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFPortModFailedCode getCode();
+        Builder setCode(OFPortModFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java
new file mode 100644
index 0000000..6c460df
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueOpFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFQueueOpFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFQueueOpFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFQueueOpFailedCode getCode();
+        Builder setCode(OFQueueOpFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java
new file mode 100644
index 0000000..c24d291
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFRoleRequestFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFRoleRequestFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFRoleRequestFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFRoleRequestFailedCode getCode();
+        Builder setCode(OFRoleRequestFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java
new file mode 100644
index 0000000..1c797ab
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFSwitchConfigFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFSwitchConfigFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFSwitchConfigFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFSwitchConfigFailedCode getCode();
+        Builder setCode(OFSwitchConfigFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java
new file mode 100644
index 0000000..93075dd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturesFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFTableFeaturesFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFTableFeaturesFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFTableFeaturesFailedCode getCode();
+        Builder setCode(OFTableFeaturesFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java
new file mode 100644
index 0000000..9e7c822
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableModFailedErrorMsg extends OFObject, OFErrorMsg {
+    OFVersion getVersion();
+    OFType getType();
+    long getXid();
+    OFErrorType getErrType();
+    OFTableModFailedCode getCode();
+    OFErrorCauseData getData();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFErrorMsg.Builder {
+        OFTableModFailedErrorMsg build();
+        OFVersion getVersion();
+        OFType getType();
+        long getXid();
+        Builder setXid(long xid);
+        OFErrorType getErrType();
+        OFTableModFailedCode getCode();
+        Builder setCode(OFTableModFailedCode code);
+        OFErrorCauseData getData();
+        Builder setData(OFErrorCauseData data);
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java
new file mode 100644
index 0000000..85c4292
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstruction extends OFObject {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFInstruction build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java
new file mode 100644
index 0000000..5547beb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionApplyActions extends OFObject, OFInstruction {
+    OFInstructionType getType();
+    List<OFAction> getActions();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstruction.Builder {
+        OFInstructionApplyActions build();
+        OFInstructionType getType();
+        List<OFAction> getActions();
+        Builder setActions(List<OFAction> actions);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java
new file mode 100644
index 0000000..24f9237
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsn extends OFObject, OFInstructionExperimenter {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionExperimenter.Builder {
+        OFInstructionBsn build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java
new file mode 100644
index 0000000..add97cc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnArpOffload extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnArpOffload build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java
new file mode 100644
index 0000000..e930943
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDeny extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnDeny build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java
new file mode 100644
index 0000000..eb8a422
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDhcpOffload extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnDhcpOffload build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java
new file mode 100644
index 0000000..bef2b49
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDisableSplitHorizonCheck extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnDisableSplitHorizonCheck build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java
new file mode 100644
index 0000000..3e38615
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDisableSrcMacCheck extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnDisableSrcMacCheck build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java
new file mode 100644
index 0000000..9295e32
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDisableVlanCounters extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnDisableVlanCounters build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java
new file mode 100644
index 0000000..0f34780
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnPacketOfDeath extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnPacketOfDeath build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java
new file mode 100644
index 0000000..a23fcf3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnPermit extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnPermit build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java
new file mode 100644
index 0000000..41c242e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnPrioritizePdus extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnPrioritizePdus build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java
new file mode 100644
index 0000000..b6d4f9b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnRequireVlanXlate extends OFObject, OFInstructionBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionBsn.Builder {
+        OFInstructionBsnRequireVlanXlate build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java
new file mode 100644
index 0000000..8323776
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionClearActions extends OFObject, OFInstruction {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstruction.Builder {
+        OFInstructionClearActions build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java
new file mode 100644
index 0000000..f6b4244
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionExperimenter extends OFObject, OFInstruction {
+    OFInstructionType getType();
+    long getExperimenter();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstruction.Builder {
+        OFInstructionExperimenter build();
+        OFInstructionType getType();
+        long getExperimenter();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java
new file mode 100644
index 0000000..9a80fb2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionGotoTable extends OFObject, OFInstruction {
+    OFInstructionType getType();
+    TableId getTableId();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstruction.Builder {
+        OFInstructionGotoTable build();
+        OFInstructionType getType();
+        TableId getTableId();
+        Builder setTableId(TableId tableId);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java
new file mode 100644
index 0000000..e965291
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionMeter extends OFObject, OFInstruction {
+    OFInstructionType getType();
+    long getMeterId();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstruction.Builder {
+        OFInstructionMeter build();
+        OFInstructionType getType();
+        long getMeterId();
+        Builder setMeterId(long meterId);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java
new file mode 100644
index 0000000..a6f62c4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionWriteActions extends OFObject, OFInstruction {
+    OFInstructionType getType();
+    List<OFAction> getActions();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstruction.Builder {
+        OFInstructionWriteActions build();
+        OFInstructionType getType();
+        List<OFAction> getActions();
+        Builder setActions(List<OFAction> actions);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java
new file mode 100644
index 0000000..4706932
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionWriteMetadata extends OFObject, OFInstruction {
+    OFInstructionType getType();
+    U64 getMetadata();
+    U64 getMetadataMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstruction.Builder {
+        OFInstructionWriteMetadata build();
+        OFInstructionType getType();
+        U64 getMetadata();
+        Builder setMetadata(U64 metadata);
+        U64 getMetadataMask();
+        Builder setMetadataMask(U64 metadataMask);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java
new file mode 100644
index 0000000..fe09c2c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+
+public interface OFInstructions {
+    // Subfactories
+
+    OFInstructionApplyActions.Builder buildApplyActions() throws UnsupportedOperationException;
+    OFInstructionApplyActions applyActions(List<OFAction> actions);
+    OFInstructionClearActions clearActions();
+    OFInstructionGotoTable.Builder buildGotoTable() throws UnsupportedOperationException;
+    OFInstructionGotoTable gotoTable(TableId tableId);
+    OFInstructionWriteActions.Builder buildWriteActions() throws UnsupportedOperationException;
+    OFInstructionWriteActions writeActions(List<OFAction> actions);
+    OFInstructionWriteMetadata.Builder buildWriteMetadata() throws UnsupportedOperationException;
+    OFInstructionWriteMetadata writeMetadata(U64 metadata, U64 metadataMask);
+    OFInstructionBsnArpOffload bsnArpOffload();
+    OFInstructionBsnDeny bsnDeny();
+    OFInstructionBsnDhcpOffload bsnDhcpOffload();
+    OFInstructionBsnDisableSplitHorizonCheck bsnDisableSplitHorizonCheck();
+    OFInstructionBsnDisableSrcMacCheck bsnDisableSrcMacCheck();
+    OFInstructionBsnDisableVlanCounters bsnDisableVlanCounters();
+    OFInstructionBsnPacketOfDeath bsnPacketOfDeath();
+    OFInstructionBsnPermit bsnPermit();
+    OFInstructionBsnPrioritizePdus bsnPrioritizePdus();
+    OFInstructionBsnRequireVlanXlate bsnRequireVlanXlate();
+    OFInstructionMeter.Builder buildMeter() throws UnsupportedOperationException;
+    OFInstructionMeter meter(long meterId);
+
+    OFMessageReader<OFInstruction> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java
new file mode 100644
index 0000000..906401c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionId extends OFObject {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFInstructionId build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java
new file mode 100644
index 0000000..8d37525
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdApplyActions extends OFObject, OFInstructionId {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionId.Builder {
+        OFInstructionIdApplyActions build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java
new file mode 100644
index 0000000..7114df8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsn extends OFObject, OFInstructionIdExperimenter {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdExperimenter.Builder {
+        OFInstructionIdBsn build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java
new file mode 100644
index 0000000..c669714
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnArpOffload extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnArpOffload build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java
new file mode 100644
index 0000000..5f4f489
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDeny extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnDeny build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java
new file mode 100644
index 0000000..43e6fc8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDhcpOffload extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnDhcpOffload build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java
new file mode 100644
index 0000000..57fc457
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDisableSplitHorizonCheck extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnDisableSplitHorizonCheck build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java
new file mode 100644
index 0000000..7b92fbc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDisableSrcMacCheck extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnDisableSrcMacCheck build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java
new file mode 100644
index 0000000..1e1366a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDisableVlanCounters extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnDisableVlanCounters build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java
new file mode 100644
index 0000000..a38265e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnPacketOfDeath extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnPacketOfDeath build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java
new file mode 100644
index 0000000..a499743
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnPermit extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnPermit build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java
new file mode 100644
index 0000000..08f1e7e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnPrioritizePdus extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnPrioritizePdus build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java
new file mode 100644
index 0000000..f6b9dc9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnRequireVlanXlate extends OFObject, OFInstructionIdBsn {
+    OFInstructionType getType();
+    long getExperimenter();
+    long getSubtype();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionIdBsn.Builder {
+        OFInstructionIdBsnRequireVlanXlate build();
+        OFInstructionType getType();
+        long getExperimenter();
+        long getSubtype();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java
new file mode 100644
index 0000000..8c7c1d7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdClearActions extends OFObject, OFInstructionId {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionId.Builder {
+        OFInstructionIdClearActions build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java
new file mode 100644
index 0000000..d54f3f9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdExperimenter extends OFObject, OFInstructionId {
+    OFInstructionType getType();
+    long getExperimenter();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionId.Builder {
+        OFInstructionIdExperimenter build();
+        OFInstructionType getType();
+        long getExperimenter();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java
new file mode 100644
index 0000000..4e12baa
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdGotoTable extends OFObject, OFInstructionId {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionId.Builder {
+        OFInstructionIdGotoTable build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java
new file mode 100644
index 0000000..277ab6e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdMeter extends OFObject, OFInstructionId {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionId.Builder {
+        OFInstructionIdMeter build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java
new file mode 100644
index 0000000..13b7dee
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdWriteActions extends OFObject, OFInstructionId {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionId.Builder {
+        OFInstructionIdWriteActions build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java
new file mode 100644
index 0000000..96ea693
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdWriteMetadata extends OFObject, OFInstructionId {
+    OFInstructionType getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFInstructionId.Builder {
+        OFInstructionIdWriteMetadata build();
+        OFInstructionType getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java
new file mode 100644
index 0000000..901b87a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFInstructionIds {
+    // Subfactories
+
+    OFInstructionIdApplyActions applyActions();
+    OFInstructionIdBsnArpOffload bsnArpOffload();
+    OFInstructionIdBsnDeny bsnDeny();
+    OFInstructionIdBsnDhcpOffload bsnDhcpOffload();
+    OFInstructionIdBsnDisableSplitHorizonCheck bsnDisableSplitHorizonCheck();
+    OFInstructionIdBsnDisableSrcMacCheck bsnDisableSrcMacCheck();
+    OFInstructionIdBsnDisableVlanCounters bsnDisableVlanCounters();
+    OFInstructionIdBsnPacketOfDeath bsnPacketOfDeath();
+    OFInstructionIdBsnPermit bsnPermit();
+    OFInstructionIdBsnPrioritizePdus bsnPrioritizePdus();
+    OFInstructionIdBsnRequireVlanXlate bsnRequireVlanXlate();
+    OFInstructionIdClearActions clearActions();
+    OFInstructionIdGotoTable gotoTable();
+    OFInstructionIdMeter meter();
+    OFInstructionIdWriteActions writeActions();
+    OFInstructionIdWriteMetadata writeMetadata();
+
+    OFMessageReader<OFInstructionId> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java
new file mode 100644
index 0000000..51edbfc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBand extends OFObject {
+    int getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFMeterBand build();
+        int getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java
new file mode 100644
index 0000000..701ac61
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandDrop extends OFObject, OFMeterBand {
+    int getType();
+    long getRate();
+    long getBurstSize();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMeterBand.Builder {
+        OFMeterBandDrop build();
+        int getType();
+        long getRate();
+        Builder setRate(long rate);
+        long getBurstSize();
+        Builder setBurstSize(long burstSize);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java
new file mode 100644
index 0000000..8bb096d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandDscpRemark extends OFObject, OFMeterBand {
+    int getType();
+    long getRate();
+    long getBurstSize();
+    short getPrecLevel();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMeterBand.Builder {
+        OFMeterBandDscpRemark build();
+        int getType();
+        long getRate();
+        Builder setRate(long rate);
+        long getBurstSize();
+        Builder setBurstSize(long burstSize);
+        short getPrecLevel();
+        Builder setPrecLevel(short precLevel);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java
new file mode 100644
index 0000000..f621170
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandExperimenter extends OFObject, OFMeterBand {
+    int getType();
+    long getRate();
+    long getBurstSize();
+    long getExperimenter();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFMeterBand.Builder {
+        OFMeterBandExperimenter build();
+        int getType();
+        long getRate();
+        Builder setRate(long rate);
+        long getBurstSize();
+        Builder setBurstSize(long burstSize);
+        long getExperimenter();
+        Builder setExperimenter(long experimenter);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java
new file mode 100644
index 0000000..52e6181
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFMeterBands {
+    // Subfactories
+
+    OFMeterBandDrop.Builder buildDrop() throws UnsupportedOperationException;
+    OFMeterBandDrop drop(long rate, long burstSize);
+    OFMeterBandDscpRemark.Builder buildDscpRemark() throws UnsupportedOperationException;
+    OFMeterBandExperimenter.Builder buildExperimenter() throws UnsupportedOperationException;
+
+    OFMessageReader<OFMeterBand> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java
new file mode 100644
index 0000000..d14aa42
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxm<T extends OFValueType<T>> extends OFObject {
+    long getTypeLen();
+    T getValue();
+    T getMask();
+    MatchField<T> getMatchField();
+    boolean isMasked();
+    OFOxm<T> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder<T> createBuilder();
+    public interface Builder<T extends OFValueType<T>>  {
+        OFOxm<T> build();
+        long getTypeLen();
+        T getValue();
+        T getMask();
+        MatchField<T> getMatchField();
+        boolean isMasked();
+        OFOxm<T> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java
new file mode 100644
index 0000000..5526177
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpOp extends OFObject, OFOxm<ArpOpcode> {
+    long getTypeLen();
+    ArpOpcode getValue();
+    MatchField<ArpOpcode> getMatchField();
+    boolean isMasked();
+    OFOxm<ArpOpcode> getCanonical();
+    ArpOpcode getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ArpOpcode> {
+        OFOxmArpOp build();
+        long getTypeLen();
+        ArpOpcode getValue();
+        Builder setValue(ArpOpcode value);
+        MatchField<ArpOpcode> getMatchField();
+        boolean isMasked();
+        OFOxm<ArpOpcode> getCanonical();
+        ArpOpcode getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java
new file mode 100644
index 0000000..92e0b8a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpOpMasked extends OFObject, OFOxm<ArpOpcode> {
+    long getTypeLen();
+    ArpOpcode getValue();
+    ArpOpcode getMask();
+    MatchField<ArpOpcode> getMatchField();
+    boolean isMasked();
+    OFOxm<ArpOpcode> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ArpOpcode> {
+        OFOxmArpOpMasked build();
+        long getTypeLen();
+        ArpOpcode getValue();
+        Builder setValue(ArpOpcode value);
+        ArpOpcode getMask();
+        Builder setMask(ArpOpcode mask);
+        MatchField<ArpOpcode> getMatchField();
+        boolean isMasked();
+        OFOxm<ArpOpcode> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java
new file mode 100644
index 0000000..dcb5a02
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpSha extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    MacAddress getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmArpSha build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        MacAddress getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java
new file mode 100644
index 0000000..210fe89
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpShaMasked extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MacAddress getMask();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmArpShaMasked build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MacAddress getMask();
+        Builder setMask(MacAddress mask);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java
new file mode 100644
index 0000000..0b2cab1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpSpa extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    IPv4Address getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmArpSpa build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        IPv4Address getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java
new file mode 100644
index 0000000..023fcb2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpSpaMasked extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    IPv4Address getMask();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmArpSpaMasked build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        IPv4Address getMask();
+        Builder setMask(IPv4Address mask);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java
new file mode 100644
index 0000000..c91c1bc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpTha extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    MacAddress getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmArpTha build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        MacAddress getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java
new file mode 100644
index 0000000..e24bd33
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpThaMasked extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MacAddress getMask();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmArpThaMasked build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MacAddress getMask();
+        Builder setMask(MacAddress mask);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java
new file mode 100644
index 0000000..3ea1500
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpTpa extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    IPv4Address getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmArpTpa build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        IPv4Address getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java
new file mode 100644
index 0000000..81501a7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpTpaMasked extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    IPv4Address getMask();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmArpTpaMasked build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        IPv4Address getMask();
+        Builder setMask(IPv4Address mask);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java
new file mode 100644
index 0000000..b23df57
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnEgrPortGroupId extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    ClassId getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnEgrPortGroupId build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        ClassId getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java
new file mode 100644
index 0000000..055fd7a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnEgrPortGroupIdMasked extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    ClassId getMask();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnEgrPortGroupIdMasked build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        ClassId getMask();
+        Builder setMask(ClassId mask);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java
new file mode 100644
index 0000000..b56e34c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnGlobalVrfAllowed extends OFObject, OFOxm<OFBooleanValue> {
+    long getTypeLen();
+    OFBooleanValue getValue();
+    MatchField<OFBooleanValue> getMatchField();
+    boolean isMasked();
+    OFOxm<OFBooleanValue> getCanonical();
+    OFBooleanValue getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFBooleanValue> {
+        OFOxmBsnGlobalVrfAllowed build();
+        long getTypeLen();
+        OFBooleanValue getValue();
+        Builder setValue(OFBooleanValue value);
+        MatchField<OFBooleanValue> getMatchField();
+        boolean isMasked();
+        OFOxm<OFBooleanValue> getCanonical();
+        OFBooleanValue getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java
new file mode 100644
index 0000000..7b5c7d7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnGlobalVrfAllowedMasked extends OFObject, OFOxm<OFBooleanValue> {
+    long getTypeLen();
+    OFBooleanValue getValue();
+    OFBooleanValue getMask();
+    MatchField<OFBooleanValue> getMatchField();
+    boolean isMasked();
+    OFOxm<OFBooleanValue> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFBooleanValue> {
+        OFOxmBsnGlobalVrfAllowedMasked build();
+        long getTypeLen();
+        OFBooleanValue getValue();
+        Builder setValue(OFBooleanValue value);
+        OFBooleanValue getMask();
+        Builder setMask(OFBooleanValue mask);
+        MatchField<OFBooleanValue> getMatchField();
+        boolean isMasked();
+        OFOxm<OFBooleanValue> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java
new file mode 100644
index 0000000..42a86ff
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnInPorts128 extends OFObject, OFOxm<OFBitMask128> {
+    long getTypeLen();
+    OFBitMask128 getValue();
+    MatchField<OFBitMask128> getMatchField();
+    boolean isMasked();
+    OFOxm<OFBitMask128> getCanonical();
+    OFBitMask128 getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFBitMask128> {
+        OFOxmBsnInPorts128 build();
+        long getTypeLen();
+        OFBitMask128 getValue();
+        Builder setValue(OFBitMask128 value);
+        MatchField<OFBitMask128> getMatchField();
+        boolean isMasked();
+        OFOxm<OFBitMask128> getCanonical();
+        OFBitMask128 getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java
new file mode 100644
index 0000000..9826f7a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnInPorts128Masked extends OFObject, OFOxm<OFBitMask128> {
+    long getTypeLen();
+    OFBitMask128 getValue();
+    OFBitMask128 getMask();
+    MatchField<OFBitMask128> getMatchField();
+    boolean isMasked();
+    OFOxm<OFBitMask128> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFBitMask128> {
+        OFOxmBsnInPorts128Masked build();
+        long getTypeLen();
+        OFBitMask128 getValue();
+        Builder setValue(OFBitMask128 value);
+        OFBitMask128 getMask();
+        Builder setMask(OFBitMask128 mask);
+        MatchField<OFBitMask128> getMatchField();
+        boolean isMasked();
+        OFOxm<OFBitMask128> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java
new file mode 100644
index 0000000..b587941
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3DstClassId extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    ClassId getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnL3DstClassId build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        ClassId getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java
new file mode 100644
index 0000000..b3619d0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3DstClassIdMasked extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    ClassId getMask();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnL3DstClassIdMasked build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        ClassId getMask();
+        Builder setMask(ClassId mask);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java
new file mode 100644
index 0000000..2ab08da
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3InterfaceClassId extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    ClassId getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnL3InterfaceClassId build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        ClassId getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java
new file mode 100644
index 0000000..5dbc3c2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3InterfaceClassIdMasked extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    ClassId getMask();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnL3InterfaceClassIdMasked build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        ClassId getMask();
+        Builder setMask(ClassId mask);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java
new file mode 100644
index 0000000..0202270
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3SrcClassId extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    ClassId getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnL3SrcClassId build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        ClassId getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java
new file mode 100644
index 0000000..06adca0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3SrcClassIdMasked extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    ClassId getMask();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnL3SrcClassIdMasked build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        ClassId getMask();
+        Builder setMask(ClassId mask);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java
new file mode 100644
index 0000000..c8c73f6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnLagId extends OFObject, OFOxm<LagId> {
+    long getTypeLen();
+    LagId getValue();
+    MatchField<LagId> getMatchField();
+    boolean isMasked();
+    OFOxm<LagId> getCanonical();
+    LagId getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<LagId> {
+        OFOxmBsnLagId build();
+        long getTypeLen();
+        LagId getValue();
+        Builder setValue(LagId value);
+        MatchField<LagId> getMatchField();
+        boolean isMasked();
+        OFOxm<LagId> getCanonical();
+        LagId getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java
new file mode 100644
index 0000000..6b117dd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnLagIdMasked extends OFObject, OFOxm<LagId> {
+    long getTypeLen();
+    LagId getValue();
+    LagId getMask();
+    MatchField<LagId> getMatchField();
+    boolean isMasked();
+    OFOxm<LagId> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<LagId> {
+        OFOxmBsnLagIdMasked build();
+        long getTypeLen();
+        LagId getValue();
+        Builder setValue(LagId value);
+        LagId getMask();
+        Builder setMask(LagId mask);
+        MatchField<LagId> getMatchField();
+        boolean isMasked();
+        OFOxm<LagId> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java
new file mode 100644
index 0000000..c1a31d1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnTcpFlags extends OFObject, OFOxm<U16> {
+    long getTypeLen();
+    U16 getValue();
+    MatchField<U16> getMatchField();
+    boolean isMasked();
+    OFOxm<U16> getCanonical();
+    U16 getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U16> {
+        OFOxmBsnTcpFlags build();
+        long getTypeLen();
+        U16 getValue();
+        Builder setValue(U16 value);
+        MatchField<U16> getMatchField();
+        boolean isMasked();
+        OFOxm<U16> getCanonical();
+        U16 getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java
new file mode 100644
index 0000000..694c8b3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnTcpFlagsMasked extends OFObject, OFOxm<U16> {
+    long getTypeLen();
+    U16 getValue();
+    U16 getMask();
+    MatchField<U16> getMatchField();
+    boolean isMasked();
+    OFOxm<U16> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U16> {
+        OFOxmBsnTcpFlagsMasked build();
+        long getTypeLen();
+        U16 getValue();
+        Builder setValue(U16 value);
+        U16 getMask();
+        Builder setMask(U16 mask);
+        MatchField<U16> getMatchField();
+        boolean isMasked();
+        OFOxm<U16> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java
new file mode 100644
index 0000000..7143e5a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf0 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf0 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java
new file mode 100644
index 0000000..ee1c5ff
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf0Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf0Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java
new file mode 100644
index 0000000..e45f0b3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf1 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf1 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java
new file mode 100644
index 0000000..e28f8e2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf1Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf1Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java
new file mode 100644
index 0000000..dea445d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf2 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf2 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java
new file mode 100644
index 0000000..549d930
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf2Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf2Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java
new file mode 100644
index 0000000..094b197
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf3 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf3 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java
new file mode 100644
index 0000000..0a5a77f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf3Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf3Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java
new file mode 100644
index 0000000..d7ea548
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf4 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf4 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java
new file mode 100644
index 0000000..735d3e8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf4Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf4Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java
new file mode 100644
index 0000000..52a0eb0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf5 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf5 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java
new file mode 100644
index 0000000..138ac18
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf5Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf5Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java
new file mode 100644
index 0000000..6d84593
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf6 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf6 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java
new file mode 100644
index 0000000..fd03177
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf6Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf6Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java
new file mode 100644
index 0000000..430ec39
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf7 extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    UDF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf7 build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        UDF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java
new file mode 100644
index 0000000..6859ec3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf7Masked extends OFObject, OFOxm<UDF> {
+    long getTypeLen();
+    UDF getValue();
+    UDF getMask();
+    MatchField<UDF> getMatchField();
+    boolean isMasked();
+    OFOxm<UDF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<UDF> {
+        OFOxmBsnUdf7Masked build();
+        long getTypeLen();
+        UDF getValue();
+        Builder setValue(UDF value);
+        UDF getMask();
+        Builder setMask(UDF mask);
+        MatchField<UDF> getMatchField();
+        boolean isMasked();
+        OFOxm<UDF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java
new file mode 100644
index 0000000..84a94a3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVlanXlatePortGroupId extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    ClassId getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnVlanXlatePortGroupId build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        ClassId getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java
new file mode 100644
index 0000000..992bd48
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVlanXlatePortGroupIdMasked extends OFObject, OFOxm<ClassId> {
+    long getTypeLen();
+    ClassId getValue();
+    ClassId getMask();
+    MatchField<ClassId> getMatchField();
+    boolean isMasked();
+    OFOxm<ClassId> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ClassId> {
+        OFOxmBsnVlanXlatePortGroupIdMasked build();
+        long getTypeLen();
+        ClassId getValue();
+        Builder setValue(ClassId value);
+        ClassId getMask();
+        Builder setMask(ClassId mask);
+        MatchField<ClassId> getMatchField();
+        boolean isMasked();
+        OFOxm<ClassId> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java
new file mode 100644
index 0000000..b27b0f2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVrf extends OFObject, OFOxm<VRF> {
+    long getTypeLen();
+    VRF getValue();
+    MatchField<VRF> getMatchField();
+    boolean isMasked();
+    OFOxm<VRF> getCanonical();
+    VRF getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<VRF> {
+        OFOxmBsnVrf build();
+        long getTypeLen();
+        VRF getValue();
+        Builder setValue(VRF value);
+        MatchField<VRF> getMatchField();
+        boolean isMasked();
+        OFOxm<VRF> getCanonical();
+        VRF getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java
new file mode 100644
index 0000000..f235551
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVrfMasked extends OFObject, OFOxm<VRF> {
+    long getTypeLen();
+    VRF getValue();
+    VRF getMask();
+    MatchField<VRF> getMatchField();
+    boolean isMasked();
+    OFOxm<VRF> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<VRF> {
+        OFOxmBsnVrfMasked build();
+        long getTypeLen();
+        VRF getValue();
+        Builder setValue(VRF value);
+        VRF getMask();
+        Builder setMask(VRF mask);
+        MatchField<VRF> getMatchField();
+        boolean isMasked();
+        OFOxm<VRF> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java
new file mode 100644
index 0000000..9c70c2e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthDst extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    MacAddress getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmEthDst build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        MacAddress getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java
new file mode 100644
index 0000000..0987c6b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthDstMasked extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MacAddress getMask();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmEthDstMasked build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MacAddress getMask();
+        Builder setMask(MacAddress mask);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java
new file mode 100644
index 0000000..7b0920a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthSrc extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    MacAddress getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmEthSrc build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        MacAddress getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java
new file mode 100644
index 0000000..e869585
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthSrcMasked extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MacAddress getMask();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmEthSrcMasked build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MacAddress getMask();
+        Builder setMask(MacAddress mask);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java
new file mode 100644
index 0000000..6d59534
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthType extends OFObject, OFOxm<EthType> {
+    long getTypeLen();
+    EthType getValue();
+    MatchField<EthType> getMatchField();
+    boolean isMasked();
+    OFOxm<EthType> getCanonical();
+    EthType getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<EthType> {
+        OFOxmEthType build();
+        long getTypeLen();
+        EthType getValue();
+        Builder setValue(EthType value);
+        MatchField<EthType> getMatchField();
+        boolean isMasked();
+        OFOxm<EthType> getCanonical();
+        EthType getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java
new file mode 100644
index 0000000..9ae2f1f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthTypeMasked extends OFObject, OFOxm<EthType> {
+    long getTypeLen();
+    EthType getValue();
+    EthType getMask();
+    MatchField<EthType> getMatchField();
+    boolean isMasked();
+    OFOxm<EthType> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<EthType> {
+        OFOxmEthTypeMasked build();
+        long getTypeLen();
+        EthType getValue();
+        Builder setValue(EthType value);
+        EthType getMask();
+        Builder setMask(EthType mask);
+        MatchField<EthType> getMatchField();
+        boolean isMasked();
+        OFOxm<EthType> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java
new file mode 100644
index 0000000..db219a7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4Code extends OFObject, OFOxm<ICMPv4Code> {
+    long getTypeLen();
+    ICMPv4Code getValue();
+    MatchField<ICMPv4Code> getMatchField();
+    boolean isMasked();
+    OFOxm<ICMPv4Code> getCanonical();
+    ICMPv4Code getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ICMPv4Code> {
+        OFOxmIcmpv4Code build();
+        long getTypeLen();
+        ICMPv4Code getValue();
+        Builder setValue(ICMPv4Code value);
+        MatchField<ICMPv4Code> getMatchField();
+        boolean isMasked();
+        OFOxm<ICMPv4Code> getCanonical();
+        ICMPv4Code getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java
new file mode 100644
index 0000000..2462b45
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4CodeMasked extends OFObject, OFOxm<ICMPv4Code> {
+    long getTypeLen();
+    ICMPv4Code getValue();
+    ICMPv4Code getMask();
+    MatchField<ICMPv4Code> getMatchField();
+    boolean isMasked();
+    OFOxm<ICMPv4Code> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ICMPv4Code> {
+        OFOxmIcmpv4CodeMasked build();
+        long getTypeLen();
+        ICMPv4Code getValue();
+        Builder setValue(ICMPv4Code value);
+        ICMPv4Code getMask();
+        Builder setMask(ICMPv4Code mask);
+        MatchField<ICMPv4Code> getMatchField();
+        boolean isMasked();
+        OFOxm<ICMPv4Code> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java
new file mode 100644
index 0000000..ede641b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4Type extends OFObject, OFOxm<ICMPv4Type> {
+    long getTypeLen();
+    ICMPv4Type getValue();
+    MatchField<ICMPv4Type> getMatchField();
+    boolean isMasked();
+    OFOxm<ICMPv4Type> getCanonical();
+    ICMPv4Type getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ICMPv4Type> {
+        OFOxmIcmpv4Type build();
+        long getTypeLen();
+        ICMPv4Type getValue();
+        Builder setValue(ICMPv4Type value);
+        MatchField<ICMPv4Type> getMatchField();
+        boolean isMasked();
+        OFOxm<ICMPv4Type> getCanonical();
+        ICMPv4Type getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java
new file mode 100644
index 0000000..7c8f011
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4TypeMasked extends OFObject, OFOxm<ICMPv4Type> {
+    long getTypeLen();
+    ICMPv4Type getValue();
+    ICMPv4Type getMask();
+    MatchField<ICMPv4Type> getMatchField();
+    boolean isMasked();
+    OFOxm<ICMPv4Type> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<ICMPv4Type> {
+        OFOxmIcmpv4TypeMasked build();
+        long getTypeLen();
+        ICMPv4Type getValue();
+        Builder setValue(ICMPv4Type value);
+        ICMPv4Type getMask();
+        Builder setMask(ICMPv4Type mask);
+        MatchField<ICMPv4Type> getMatchField();
+        boolean isMasked();
+        OFOxm<ICMPv4Type> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java
new file mode 100644
index 0000000..7ff6ac8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6Code extends OFObject, OFOxm<U8> {
+    long getTypeLen();
+    U8 getValue();
+    MatchField<U8> getMatchField();
+    boolean isMasked();
+    OFOxm<U8> getCanonical();
+    U8 getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U8> {
+        OFOxmIcmpv6Code build();
+        long getTypeLen();
+        U8 getValue();
+        Builder setValue(U8 value);
+        MatchField<U8> getMatchField();
+        boolean isMasked();
+        OFOxm<U8> getCanonical();
+        U8 getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java
new file mode 100644
index 0000000..2cf38b3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6CodeMasked extends OFObject, OFOxm<U8> {
+    long getTypeLen();
+    U8 getValue();
+    U8 getMask();
+    MatchField<U8> getMatchField();
+    boolean isMasked();
+    OFOxm<U8> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U8> {
+        OFOxmIcmpv6CodeMasked build();
+        long getTypeLen();
+        U8 getValue();
+        Builder setValue(U8 value);
+        U8 getMask();
+        Builder setMask(U8 mask);
+        MatchField<U8> getMatchField();
+        boolean isMasked();
+        OFOxm<U8> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java
new file mode 100644
index 0000000..de54d1d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6Type extends OFObject, OFOxm<U8> {
+    long getTypeLen();
+    U8 getValue();
+    MatchField<U8> getMatchField();
+    boolean isMasked();
+    OFOxm<U8> getCanonical();
+    U8 getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U8> {
+        OFOxmIcmpv6Type build();
+        long getTypeLen();
+        U8 getValue();
+        Builder setValue(U8 value);
+        MatchField<U8> getMatchField();
+        boolean isMasked();
+        OFOxm<U8> getCanonical();
+        U8 getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java
new file mode 100644
index 0000000..bb61bd5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6TypeMasked extends OFObject, OFOxm<U8> {
+    long getTypeLen();
+    U8 getValue();
+    U8 getMask();
+    MatchField<U8> getMatchField();
+    boolean isMasked();
+    OFOxm<U8> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U8> {
+        OFOxmIcmpv6TypeMasked build();
+        long getTypeLen();
+        U8 getValue();
+        Builder setValue(U8 value);
+        U8 getMask();
+        Builder setMask(U8 mask);
+        MatchField<U8> getMatchField();
+        boolean isMasked();
+        OFOxm<U8> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java
new file mode 100644
index 0000000..85b2700
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPhyPort extends OFObject, OFOxm<OFPort> {
+    long getTypeLen();
+    OFPort getValue();
+    MatchField<OFPort> getMatchField();
+    boolean isMasked();
+    OFOxm<OFPort> getCanonical();
+    OFPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFPort> {
+        OFOxmInPhyPort build();
+        long getTypeLen();
+        OFPort getValue();
+        Builder setValue(OFPort value);
+        MatchField<OFPort> getMatchField();
+        boolean isMasked();
+        OFOxm<OFPort> getCanonical();
+        OFPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java
new file mode 100644
index 0000000..ae20318
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPhyPortMasked extends OFObject, OFOxm<OFPort> {
+    long getTypeLen();
+    OFPort getValue();
+    OFPort getMask();
+    MatchField<OFPort> getMatchField();
+    boolean isMasked();
+    OFOxm<OFPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFPort> {
+        OFOxmInPhyPortMasked build();
+        long getTypeLen();
+        OFPort getValue();
+        Builder setValue(OFPort value);
+        OFPort getMask();
+        Builder setMask(OFPort mask);
+        MatchField<OFPort> getMatchField();
+        boolean isMasked();
+        OFOxm<OFPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java
new file mode 100644
index 0000000..11ac28b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPort extends OFObject, OFOxm<OFPort> {
+    long getTypeLen();
+    OFPort getValue();
+    MatchField<OFPort> getMatchField();
+    boolean isMasked();
+    OFOxm<OFPort> getCanonical();
+    OFPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFPort> {
+        OFOxmInPort build();
+        long getTypeLen();
+        OFPort getValue();
+        Builder setValue(OFPort value);
+        MatchField<OFPort> getMatchField();
+        boolean isMasked();
+        OFOxm<OFPort> getCanonical();
+        OFPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java
new file mode 100644
index 0000000..3e8970c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPortMasked extends OFObject, OFOxm<OFPort> {
+    long getTypeLen();
+    OFPort getValue();
+    OFPort getMask();
+    MatchField<OFPort> getMatchField();
+    boolean isMasked();
+    OFOxm<OFPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFPort> {
+        OFOxmInPortMasked build();
+        long getTypeLen();
+        OFPort getValue();
+        Builder setValue(OFPort value);
+        OFPort getMask();
+        Builder setMask(OFPort mask);
+        MatchField<OFPort> getMatchField();
+        boolean isMasked();
+        OFOxm<OFPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java
new file mode 100644
index 0000000..0d829db
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpDscp extends OFObject, OFOxm<IpDscp> {
+    long getTypeLen();
+    IpDscp getValue();
+    MatchField<IpDscp> getMatchField();
+    boolean isMasked();
+    OFOxm<IpDscp> getCanonical();
+    IpDscp getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IpDscp> {
+        OFOxmIpDscp build();
+        long getTypeLen();
+        IpDscp getValue();
+        Builder setValue(IpDscp value);
+        MatchField<IpDscp> getMatchField();
+        boolean isMasked();
+        OFOxm<IpDscp> getCanonical();
+        IpDscp getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java
new file mode 100644
index 0000000..a837b72
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpDscpMasked extends OFObject, OFOxm<IpDscp> {
+    long getTypeLen();
+    IpDscp getValue();
+    IpDscp getMask();
+    MatchField<IpDscp> getMatchField();
+    boolean isMasked();
+    OFOxm<IpDscp> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IpDscp> {
+        OFOxmIpDscpMasked build();
+        long getTypeLen();
+        IpDscp getValue();
+        Builder setValue(IpDscp value);
+        IpDscp getMask();
+        Builder setMask(IpDscp mask);
+        MatchField<IpDscp> getMatchField();
+        boolean isMasked();
+        OFOxm<IpDscp> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java
new file mode 100644
index 0000000..a70813f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpEcn extends OFObject, OFOxm<IpEcn> {
+    long getTypeLen();
+    IpEcn getValue();
+    MatchField<IpEcn> getMatchField();
+    boolean isMasked();
+    OFOxm<IpEcn> getCanonical();
+    IpEcn getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IpEcn> {
+        OFOxmIpEcn build();
+        long getTypeLen();
+        IpEcn getValue();
+        Builder setValue(IpEcn value);
+        MatchField<IpEcn> getMatchField();
+        boolean isMasked();
+        OFOxm<IpEcn> getCanonical();
+        IpEcn getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java
new file mode 100644
index 0000000..4a3a1ff
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpEcnMasked extends OFObject, OFOxm<IpEcn> {
+    long getTypeLen();
+    IpEcn getValue();
+    IpEcn getMask();
+    MatchField<IpEcn> getMatchField();
+    boolean isMasked();
+    OFOxm<IpEcn> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IpEcn> {
+        OFOxmIpEcnMasked build();
+        long getTypeLen();
+        IpEcn getValue();
+        Builder setValue(IpEcn value);
+        IpEcn getMask();
+        Builder setMask(IpEcn mask);
+        MatchField<IpEcn> getMatchField();
+        boolean isMasked();
+        OFOxm<IpEcn> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java
new file mode 100644
index 0000000..dc284d6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpProto extends OFObject, OFOxm<IpProtocol> {
+    long getTypeLen();
+    IpProtocol getValue();
+    MatchField<IpProtocol> getMatchField();
+    boolean isMasked();
+    OFOxm<IpProtocol> getCanonical();
+    IpProtocol getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IpProtocol> {
+        OFOxmIpProto build();
+        long getTypeLen();
+        IpProtocol getValue();
+        Builder setValue(IpProtocol value);
+        MatchField<IpProtocol> getMatchField();
+        boolean isMasked();
+        OFOxm<IpProtocol> getCanonical();
+        IpProtocol getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java
new file mode 100644
index 0000000..906f742
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpProtoMasked extends OFObject, OFOxm<IpProtocol> {
+    long getTypeLen();
+    IpProtocol getValue();
+    IpProtocol getMask();
+    MatchField<IpProtocol> getMatchField();
+    boolean isMasked();
+    OFOxm<IpProtocol> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IpProtocol> {
+        OFOxmIpProtoMasked build();
+        long getTypeLen();
+        IpProtocol getValue();
+        Builder setValue(IpProtocol value);
+        IpProtocol getMask();
+        Builder setMask(IpProtocol mask);
+        MatchField<IpProtocol> getMatchField();
+        boolean isMasked();
+        OFOxm<IpProtocol> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java
new file mode 100644
index 0000000..6e97025
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4Dst extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    IPv4Address getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmIpv4Dst build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        IPv4Address getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java
new file mode 100644
index 0000000..8a008c8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4DstMasked extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    IPv4Address getMask();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmIpv4DstMasked build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        IPv4Address getMask();
+        Builder setMask(IPv4Address mask);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java
new file mode 100644
index 0000000..1cfbc04
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4Src extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    IPv4Address getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmIpv4Src build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        IPv4Address getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java
new file mode 100644
index 0000000..9fcd714
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4SrcMasked extends OFObject, OFOxm<IPv4Address> {
+    long getTypeLen();
+    IPv4Address getValue();
+    IPv4Address getMask();
+    MatchField<IPv4Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv4Address> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv4Address> {
+        OFOxmIpv4SrcMasked build();
+        long getTypeLen();
+        IPv4Address getValue();
+        Builder setValue(IPv4Address value);
+        IPv4Address getMask();
+        Builder setMask(IPv4Address mask);
+        MatchField<IPv4Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv4Address> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java
new file mode 100644
index 0000000..bb92e3b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6Dst extends OFObject, OFOxm<IPv6Address> {
+    long getTypeLen();
+    IPv6Address getValue();
+    MatchField<IPv6Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6Address> getCanonical();
+    IPv6Address getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6Address> {
+        OFOxmIpv6Dst build();
+        long getTypeLen();
+        IPv6Address getValue();
+        Builder setValue(IPv6Address value);
+        MatchField<IPv6Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6Address> getCanonical();
+        IPv6Address getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java
new file mode 100644
index 0000000..ca98060
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6DstMasked extends OFObject, OFOxm<IPv6Address> {
+    long getTypeLen();
+    IPv6Address getValue();
+    IPv6Address getMask();
+    MatchField<IPv6Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6Address> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6Address> {
+        OFOxmIpv6DstMasked build();
+        long getTypeLen();
+        IPv6Address getValue();
+        Builder setValue(IPv6Address value);
+        IPv6Address getMask();
+        Builder setMask(IPv6Address mask);
+        MatchField<IPv6Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6Address> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java
new file mode 100644
index 0000000..fa28ec7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6Flabel extends OFObject, OFOxm<IPv6FlowLabel> {
+    long getTypeLen();
+    IPv6FlowLabel getValue();
+    MatchField<IPv6FlowLabel> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6FlowLabel> getCanonical();
+    IPv6FlowLabel getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6FlowLabel> {
+        OFOxmIpv6Flabel build();
+        long getTypeLen();
+        IPv6FlowLabel getValue();
+        Builder setValue(IPv6FlowLabel value);
+        MatchField<IPv6FlowLabel> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6FlowLabel> getCanonical();
+        IPv6FlowLabel getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java
new file mode 100644
index 0000000..7e19baa
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6FlabelMasked extends OFObject, OFOxm<IPv6FlowLabel> {
+    long getTypeLen();
+    IPv6FlowLabel getValue();
+    IPv6FlowLabel getMask();
+    MatchField<IPv6FlowLabel> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6FlowLabel> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6FlowLabel> {
+        OFOxmIpv6FlabelMasked build();
+        long getTypeLen();
+        IPv6FlowLabel getValue();
+        Builder setValue(IPv6FlowLabel value);
+        IPv6FlowLabel getMask();
+        Builder setMask(IPv6FlowLabel mask);
+        MatchField<IPv6FlowLabel> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6FlowLabel> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java
new file mode 100644
index 0000000..5365c2f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdSll extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    MacAddress getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmIpv6NdSll build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        MacAddress getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java
new file mode 100644
index 0000000..baf32e1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdSllMasked extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MacAddress getMask();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmIpv6NdSllMasked build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MacAddress getMask();
+        Builder setMask(MacAddress mask);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java
new file mode 100644
index 0000000..421f148
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTarget extends OFObject, OFOxm<IPv6Address> {
+    long getTypeLen();
+    IPv6Address getValue();
+    MatchField<IPv6Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6Address> getCanonical();
+    IPv6Address getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6Address> {
+        OFOxmIpv6NdTarget build();
+        long getTypeLen();
+        IPv6Address getValue();
+        Builder setValue(IPv6Address value);
+        MatchField<IPv6Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6Address> getCanonical();
+        IPv6Address getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java
new file mode 100644
index 0000000..807affe
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTargetMasked extends OFObject, OFOxm<IPv6Address> {
+    long getTypeLen();
+    IPv6Address getValue();
+    IPv6Address getMask();
+    MatchField<IPv6Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6Address> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6Address> {
+        OFOxmIpv6NdTargetMasked build();
+        long getTypeLen();
+        IPv6Address getValue();
+        Builder setValue(IPv6Address value);
+        IPv6Address getMask();
+        Builder setMask(IPv6Address mask);
+        MatchField<IPv6Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6Address> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java
new file mode 100644
index 0000000..ca9f1ad
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTll extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    MacAddress getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmIpv6NdTll build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        MacAddress getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java
new file mode 100644
index 0000000..1e1a6e6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTllMasked extends OFObject, OFOxm<MacAddress> {
+    long getTypeLen();
+    MacAddress getValue();
+    MacAddress getMask();
+    MatchField<MacAddress> getMatchField();
+    boolean isMasked();
+    OFOxm<MacAddress> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<MacAddress> {
+        OFOxmIpv6NdTllMasked build();
+        long getTypeLen();
+        MacAddress getValue();
+        Builder setValue(MacAddress value);
+        MacAddress getMask();
+        Builder setMask(MacAddress mask);
+        MatchField<MacAddress> getMatchField();
+        boolean isMasked();
+        OFOxm<MacAddress> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java
new file mode 100644
index 0000000..528c16c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6Src extends OFObject, OFOxm<IPv6Address> {
+    long getTypeLen();
+    IPv6Address getValue();
+    MatchField<IPv6Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6Address> getCanonical();
+    IPv6Address getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6Address> {
+        OFOxmIpv6Src build();
+        long getTypeLen();
+        IPv6Address getValue();
+        Builder setValue(IPv6Address value);
+        MatchField<IPv6Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6Address> getCanonical();
+        IPv6Address getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java
new file mode 100644
index 0000000..1fc4e20
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6SrcMasked extends OFObject, OFOxm<IPv6Address> {
+    long getTypeLen();
+    IPv6Address getValue();
+    IPv6Address getMask();
+    MatchField<IPv6Address> getMatchField();
+    boolean isMasked();
+    OFOxm<IPv6Address> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<IPv6Address> {
+        OFOxmIpv6SrcMasked build();
+        long getTypeLen();
+        IPv6Address getValue();
+        Builder setValue(IPv6Address value);
+        IPv6Address getMask();
+        Builder setMask(IPv6Address mask);
+        MatchField<IPv6Address> getMatchField();
+        boolean isMasked();
+        OFOxm<IPv6Address> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java
new file mode 100644
index 0000000..92964e6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMetadata extends OFObject, OFOxm<OFMetadata> {
+    long getTypeLen();
+    OFMetadata getValue();
+    MatchField<OFMetadata> getMatchField();
+    boolean isMasked();
+    OFOxm<OFMetadata> getCanonical();
+    OFMetadata getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFMetadata> {
+        OFOxmMetadata build();
+        long getTypeLen();
+        OFMetadata getValue();
+        Builder setValue(OFMetadata value);
+        MatchField<OFMetadata> getMatchField();
+        boolean isMasked();
+        OFOxm<OFMetadata> getCanonical();
+        OFMetadata getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java
new file mode 100644
index 0000000..58d0437
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMetadataMasked extends OFObject, OFOxm<OFMetadata> {
+    long getTypeLen();
+    OFMetadata getValue();
+    OFMetadata getMask();
+    MatchField<OFMetadata> getMatchField();
+    boolean isMasked();
+    OFOxm<OFMetadata> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFMetadata> {
+        OFOxmMetadataMasked build();
+        long getTypeLen();
+        OFMetadata getValue();
+        Builder setValue(OFMetadata value);
+        OFMetadata getMask();
+        Builder setMask(OFMetadata mask);
+        MatchField<OFMetadata> getMatchField();
+        boolean isMasked();
+        OFOxm<OFMetadata> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java
new file mode 100644
index 0000000..d64a878
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsLabel extends OFObject, OFOxm<U32> {
+    long getTypeLen();
+    U32 getValue();
+    MatchField<U32> getMatchField();
+    boolean isMasked();
+    OFOxm<U32> getCanonical();
+    U32 getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U32> {
+        OFOxmMplsLabel build();
+        long getTypeLen();
+        U32 getValue();
+        Builder setValue(U32 value);
+        MatchField<U32> getMatchField();
+        boolean isMasked();
+        OFOxm<U32> getCanonical();
+        U32 getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java
new file mode 100644
index 0000000..21d94f4
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsLabelMasked extends OFObject, OFOxm<U32> {
+    long getTypeLen();
+    U32 getValue();
+    U32 getMask();
+    MatchField<U32> getMatchField();
+    boolean isMasked();
+    OFOxm<U32> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U32> {
+        OFOxmMplsLabelMasked build();
+        long getTypeLen();
+        U32 getValue();
+        Builder setValue(U32 value);
+        U32 getMask();
+        Builder setMask(U32 mask);
+        MatchField<U32> getMatchField();
+        boolean isMasked();
+        OFOxm<U32> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java
new file mode 100644
index 0000000..e7cf2e5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsTc extends OFObject, OFOxm<U8> {
+    long getTypeLen();
+    U8 getValue();
+    MatchField<U8> getMatchField();
+    boolean isMasked();
+    OFOxm<U8> getCanonical();
+    U8 getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U8> {
+        OFOxmMplsTc build();
+        long getTypeLen();
+        U8 getValue();
+        Builder setValue(U8 value);
+        MatchField<U8> getMatchField();
+        boolean isMasked();
+        OFOxm<U8> getCanonical();
+        U8 getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java
new file mode 100644
index 0000000..150ba6c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsTcMasked extends OFObject, OFOxm<U8> {
+    long getTypeLen();
+    U8 getValue();
+    U8 getMask();
+    MatchField<U8> getMatchField();
+    boolean isMasked();
+    OFOxm<U8> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U8> {
+        OFOxmMplsTcMasked build();
+        long getTypeLen();
+        U8 getValue();
+        Builder setValue(U8 value);
+        U8 getMask();
+        Builder setMask(U8 mask);
+        MatchField<U8> getMatchField();
+        boolean isMasked();
+        OFOxm<U8> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java
new file mode 100644
index 0000000..16cf32d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpDst extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    TransportPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmSctpDst build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        TransportPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java
new file mode 100644
index 0000000..15df987
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpDstMasked extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    TransportPort getMask();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmSctpDstMasked build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        TransportPort getMask();
+        Builder setMask(TransportPort mask);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java
new file mode 100644
index 0000000..1953087
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpSrc extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    TransportPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmSctpSrc build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        TransportPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java
new file mode 100644
index 0000000..4454c3c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpSrcMasked extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    TransportPort getMask();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmSctpSrcMasked build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        TransportPort getMask();
+        Builder setMask(TransportPort mask);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java
new file mode 100644
index 0000000..9bbedc2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpDst extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    TransportPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmTcpDst build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        TransportPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java
new file mode 100644
index 0000000..798dab2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpDstMasked extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    TransportPort getMask();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmTcpDstMasked build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        TransportPort getMask();
+        Builder setMask(TransportPort mask);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java
new file mode 100644
index 0000000..b4aa20e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpSrc extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    TransportPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmTcpSrc build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        TransportPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java
new file mode 100644
index 0000000..4a39ded
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpSrcMasked extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    TransportPort getMask();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmTcpSrcMasked build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        TransportPort getMask();
+        Builder setMask(TransportPort mask);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java
new file mode 100644
index 0000000..63a7e7a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTunnelId extends OFObject, OFOxm<U64> {
+    long getTypeLen();
+    U64 getValue();
+    MatchField<U64> getMatchField();
+    boolean isMasked();
+    OFOxm<U64> getCanonical();
+    U64 getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U64> {
+        OFOxmTunnelId build();
+        long getTypeLen();
+        U64 getValue();
+        Builder setValue(U64 value);
+        MatchField<U64> getMatchField();
+        boolean isMasked();
+        OFOxm<U64> getCanonical();
+        U64 getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java
new file mode 100644
index 0000000..2f8b9b8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTunnelIdMasked extends OFObject, OFOxm<U64> {
+    long getTypeLen();
+    U64 getValue();
+    U64 getMask();
+    MatchField<U64> getMatchField();
+    boolean isMasked();
+    OFOxm<U64> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<U64> {
+        OFOxmTunnelIdMasked build();
+        long getTypeLen();
+        U64 getValue();
+        Builder setValue(U64 value);
+        U64 getMask();
+        Builder setMask(U64 mask);
+        MatchField<U64> getMatchField();
+        boolean isMasked();
+        OFOxm<U64> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java
new file mode 100644
index 0000000..097db29
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpDst extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    TransportPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmUdpDst build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        TransportPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java
new file mode 100644
index 0000000..37fea56
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpDstMasked extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    TransportPort getMask();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmUdpDstMasked build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        TransportPort getMask();
+        Builder setMask(TransportPort mask);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java
new file mode 100644
index 0000000..9f16f2d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpSrc extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    TransportPort getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmUdpSrc build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        TransportPort getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java
new file mode 100644
index 0000000..623b6b7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpSrcMasked extends OFObject, OFOxm<TransportPort> {
+    long getTypeLen();
+    TransportPort getValue();
+    TransportPort getMask();
+    MatchField<TransportPort> getMatchField();
+    boolean isMasked();
+    OFOxm<TransportPort> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<TransportPort> {
+        OFOxmUdpSrcMasked build();
+        long getTypeLen();
+        TransportPort getValue();
+        Builder setValue(TransportPort value);
+        TransportPort getMask();
+        Builder setMask(TransportPort mask);
+        MatchField<TransportPort> getMatchField();
+        boolean isMasked();
+        OFOxm<TransportPort> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java
new file mode 100644
index 0000000..858e6a0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanPcp extends OFObject, OFOxm<VlanPcp> {
+    long getTypeLen();
+    VlanPcp getValue();
+    MatchField<VlanPcp> getMatchField();
+    boolean isMasked();
+    OFOxm<VlanPcp> getCanonical();
+    VlanPcp getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<VlanPcp> {
+        OFOxmVlanPcp build();
+        long getTypeLen();
+        VlanPcp getValue();
+        Builder setValue(VlanPcp value);
+        MatchField<VlanPcp> getMatchField();
+        boolean isMasked();
+        OFOxm<VlanPcp> getCanonical();
+        VlanPcp getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java
new file mode 100644
index 0000000..62a34b2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanPcpMasked extends OFObject, OFOxm<VlanPcp> {
+    long getTypeLen();
+    VlanPcp getValue();
+    VlanPcp getMask();
+    MatchField<VlanPcp> getMatchField();
+    boolean isMasked();
+    OFOxm<VlanPcp> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<VlanPcp> {
+        OFOxmVlanPcpMasked build();
+        long getTypeLen();
+        VlanPcp getValue();
+        Builder setValue(VlanPcp value);
+        VlanPcp getMask();
+        Builder setMask(VlanPcp mask);
+        MatchField<VlanPcp> getMatchField();
+        boolean isMasked();
+        OFOxm<VlanPcp> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java
new file mode 100644
index 0000000..4b34b05
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanVid extends OFObject, OFOxm<OFVlanVidMatch> {
+    long getTypeLen();
+    OFVlanVidMatch getValue();
+    MatchField<OFVlanVidMatch> getMatchField();
+    boolean isMasked();
+    OFOxm<OFVlanVidMatch> getCanonical();
+    OFVlanVidMatch getMask();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFVlanVidMatch> {
+        OFOxmVlanVid build();
+        long getTypeLen();
+        OFVlanVidMatch getValue();
+        Builder setValue(OFVlanVidMatch value);
+        MatchField<OFVlanVidMatch> getMatchField();
+        boolean isMasked();
+        OFOxm<OFVlanVidMatch> getCanonical();
+        OFVlanVidMatch getMask();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java
new file mode 100644
index 0000000..36110a7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanVidMasked extends OFObject, OFOxm<OFVlanVidMatch> {
+    long getTypeLen();
+    OFVlanVidMatch getValue();
+    OFVlanVidMatch getMask();
+    MatchField<OFVlanVidMatch> getMatchField();
+    boolean isMasked();
+    OFOxm<OFVlanVidMatch> getCanonical();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFOxm.Builder<OFVlanVidMatch> {
+        OFOxmVlanVidMasked build();
+        long getTypeLen();
+        OFVlanVidMatch getValue();
+        Builder setValue(OFVlanVidMatch value);
+        OFVlanVidMatch getMask();
+        Builder setMask(OFVlanVidMatch mask);
+        MatchField<OFVlanVidMatch> getMatchField();
+        boolean isMasked();
+        OFOxm<OFVlanVidMatch> getCanonical();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java
new file mode 100644
index 0000000..9cc2bba
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java
@@ -0,0 +1,257 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFOxms {
+    // Subfactories
+
+    OFOxmArpOp.Builder buildArpOp() throws UnsupportedOperationException;
+    OFOxmArpOp arpOp(ArpOpcode value);
+    OFOxmArpOpMasked.Builder buildArpOpMasked() throws UnsupportedOperationException;
+    OFOxmArpOpMasked arpOpMasked(ArpOpcode value, ArpOpcode mask);
+    OFOxmArpSha.Builder buildArpSha() throws UnsupportedOperationException;
+    OFOxmArpSha arpSha(MacAddress value);
+    OFOxmArpShaMasked.Builder buildArpShaMasked() throws UnsupportedOperationException;
+    OFOxmArpShaMasked arpShaMasked(MacAddress value, MacAddress mask);
+    OFOxmArpSpa.Builder buildArpSpa() throws UnsupportedOperationException;
+    OFOxmArpSpa arpSpa(IPv4Address value);
+    OFOxmArpSpaMasked.Builder buildArpSpaMasked() throws UnsupportedOperationException;
+    OFOxmArpSpaMasked arpSpaMasked(IPv4Address value, IPv4Address mask);
+    OFOxmArpTha.Builder buildArpTha() throws UnsupportedOperationException;
+    OFOxmArpTha arpTha(MacAddress value);
+    OFOxmArpThaMasked.Builder buildArpThaMasked() throws UnsupportedOperationException;
+    OFOxmArpThaMasked arpThaMasked(MacAddress value, MacAddress mask);
+    OFOxmArpTpa.Builder buildArpTpa() throws UnsupportedOperationException;
+    OFOxmArpTpa arpTpa(IPv4Address value);
+    OFOxmArpTpaMasked.Builder buildArpTpaMasked() throws UnsupportedOperationException;
+    OFOxmArpTpaMasked arpTpaMasked(IPv4Address value, IPv4Address mask);
+    OFOxmBsnEgrPortGroupId.Builder buildBsnEgrPortGroupId() throws UnsupportedOperationException;
+    OFOxmBsnEgrPortGroupId bsnEgrPortGroupId(ClassId value);
+    OFOxmBsnEgrPortGroupIdMasked.Builder buildBsnEgrPortGroupIdMasked() throws UnsupportedOperationException;
+    OFOxmBsnEgrPortGroupIdMasked bsnEgrPortGroupIdMasked(ClassId value, ClassId mask);
+    OFOxmBsnGlobalVrfAllowed.Builder buildBsnGlobalVrfAllowed() throws UnsupportedOperationException;
+    OFOxmBsnGlobalVrfAllowed bsnGlobalVrfAllowed(OFBooleanValue value);
+    OFOxmBsnGlobalVrfAllowedMasked.Builder buildBsnGlobalVrfAllowedMasked() throws UnsupportedOperationException;
+    OFOxmBsnGlobalVrfAllowedMasked bsnGlobalVrfAllowedMasked(OFBooleanValue value, OFBooleanValue mask);
+    OFOxmBsnInPorts128.Builder buildBsnInPorts128() throws UnsupportedOperationException;
+    OFOxmBsnInPorts128 bsnInPorts128(OFBitMask128 value);
+    OFOxmBsnInPorts128Masked.Builder buildBsnInPorts128Masked() throws UnsupportedOperationException;
+    OFOxmBsnInPorts128Masked bsnInPorts128Masked(OFBitMask128 value, OFBitMask128 mask);
+    OFOxmBsnL3DstClassId.Builder buildBsnL3DstClassId() throws UnsupportedOperationException;
+    OFOxmBsnL3DstClassId bsnL3DstClassId(ClassId value);
+    OFOxmBsnL3DstClassIdMasked.Builder buildBsnL3DstClassIdMasked() throws UnsupportedOperationException;
+    OFOxmBsnL3DstClassIdMasked bsnL3DstClassIdMasked(ClassId value, ClassId mask);
+    OFOxmBsnL3InterfaceClassId.Builder buildBsnL3InterfaceClassId() throws UnsupportedOperationException;
+    OFOxmBsnL3InterfaceClassId bsnL3InterfaceClassId(ClassId value);
+    OFOxmBsnL3InterfaceClassIdMasked.Builder buildBsnL3InterfaceClassIdMasked() throws UnsupportedOperationException;
+    OFOxmBsnL3InterfaceClassIdMasked bsnL3InterfaceClassIdMasked(ClassId value, ClassId mask);
+    OFOxmBsnL3SrcClassId.Builder buildBsnL3SrcClassId() throws UnsupportedOperationException;
+    OFOxmBsnL3SrcClassId bsnL3SrcClassId(ClassId value);
+    OFOxmBsnL3SrcClassIdMasked.Builder buildBsnL3SrcClassIdMasked() throws UnsupportedOperationException;
+    OFOxmBsnL3SrcClassIdMasked bsnL3SrcClassIdMasked(ClassId value, ClassId mask);
+    OFOxmBsnLagId.Builder buildBsnLagId() throws UnsupportedOperationException;
+    OFOxmBsnLagId bsnLagId(LagId value);
+    OFOxmBsnLagIdMasked.Builder buildBsnLagIdMasked() throws UnsupportedOperationException;
+    OFOxmBsnLagIdMasked bsnLagIdMasked(LagId value, LagId mask);
+    OFOxmBsnTcpFlags.Builder buildBsnTcpFlags() throws UnsupportedOperationException;
+    OFOxmBsnTcpFlags bsnTcpFlags(U16 value);
+    OFOxmBsnTcpFlagsMasked.Builder buildBsnTcpFlagsMasked() throws UnsupportedOperationException;
+    OFOxmBsnTcpFlagsMasked bsnTcpFlagsMasked(U16 value, U16 mask);
+    OFOxmBsnUdf0.Builder buildBsnUdf0() throws UnsupportedOperationException;
+    OFOxmBsnUdf0 bsnUdf0(UDF value);
+    OFOxmBsnUdf0Masked.Builder buildBsnUdf0Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf0Masked bsnUdf0Masked(UDF value, UDF mask);
+    OFOxmBsnUdf1.Builder buildBsnUdf1() throws UnsupportedOperationException;
+    OFOxmBsnUdf1 bsnUdf1(UDF value);
+    OFOxmBsnUdf1Masked.Builder buildBsnUdf1Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf1Masked bsnUdf1Masked(UDF value, UDF mask);
+    OFOxmBsnUdf2.Builder buildBsnUdf2() throws UnsupportedOperationException;
+    OFOxmBsnUdf2 bsnUdf2(UDF value);
+    OFOxmBsnUdf2Masked.Builder buildBsnUdf2Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf2Masked bsnUdf2Masked(UDF value, UDF mask);
+    OFOxmBsnUdf3.Builder buildBsnUdf3() throws UnsupportedOperationException;
+    OFOxmBsnUdf3 bsnUdf3(UDF value);
+    OFOxmBsnUdf3Masked.Builder buildBsnUdf3Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf3Masked bsnUdf3Masked(UDF value, UDF mask);
+    OFOxmBsnUdf4.Builder buildBsnUdf4() throws UnsupportedOperationException;
+    OFOxmBsnUdf4 bsnUdf4(UDF value);
+    OFOxmBsnUdf4Masked.Builder buildBsnUdf4Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf4Masked bsnUdf4Masked(UDF value, UDF mask);
+    OFOxmBsnUdf5.Builder buildBsnUdf5() throws UnsupportedOperationException;
+    OFOxmBsnUdf5 bsnUdf5(UDF value);
+    OFOxmBsnUdf5Masked.Builder buildBsnUdf5Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf5Masked bsnUdf5Masked(UDF value, UDF mask);
+    OFOxmBsnUdf6.Builder buildBsnUdf6() throws UnsupportedOperationException;
+    OFOxmBsnUdf6 bsnUdf6(UDF value);
+    OFOxmBsnUdf6Masked.Builder buildBsnUdf6Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf6Masked bsnUdf6Masked(UDF value, UDF mask);
+    OFOxmBsnUdf7.Builder buildBsnUdf7() throws UnsupportedOperationException;
+    OFOxmBsnUdf7 bsnUdf7(UDF value);
+    OFOxmBsnUdf7Masked.Builder buildBsnUdf7Masked() throws UnsupportedOperationException;
+    OFOxmBsnUdf7Masked bsnUdf7Masked(UDF value, UDF mask);
+    OFOxmBsnVlanXlatePortGroupId.Builder buildBsnVlanXlatePortGroupId() throws UnsupportedOperationException;
+    OFOxmBsnVlanXlatePortGroupId bsnVlanXlatePortGroupId(ClassId value);
+    OFOxmBsnVlanXlatePortGroupIdMasked.Builder buildBsnVlanXlatePortGroupIdMasked() throws UnsupportedOperationException;
+    OFOxmBsnVlanXlatePortGroupIdMasked bsnVlanXlatePortGroupIdMasked(ClassId value, ClassId mask);
+    OFOxmBsnVrf.Builder buildBsnVrf() throws UnsupportedOperationException;
+    OFOxmBsnVrf bsnVrf(VRF value);
+    OFOxmBsnVrfMasked.Builder buildBsnVrfMasked() throws UnsupportedOperationException;
+    OFOxmBsnVrfMasked bsnVrfMasked(VRF value, VRF mask);
+    OFOxmEthDst.Builder buildEthDst() throws UnsupportedOperationException;
+    OFOxmEthDst ethDst(MacAddress value);
+    OFOxmEthDstMasked.Builder buildEthDstMasked() throws UnsupportedOperationException;
+    OFOxmEthDstMasked ethDstMasked(MacAddress value, MacAddress mask);
+    OFOxmEthSrc.Builder buildEthSrc() throws UnsupportedOperationException;
+    OFOxmEthSrc ethSrc(MacAddress value);
+    OFOxmEthSrcMasked.Builder buildEthSrcMasked() throws UnsupportedOperationException;
+    OFOxmEthSrcMasked ethSrcMasked(MacAddress value, MacAddress mask);
+    OFOxmEthType.Builder buildEthType() throws UnsupportedOperationException;
+    OFOxmEthType ethType(EthType value);
+    OFOxmEthTypeMasked.Builder buildEthTypeMasked() throws UnsupportedOperationException;
+    OFOxmEthTypeMasked ethTypeMasked(EthType value, EthType mask);
+    OFOxmIcmpv4Code.Builder buildIcmpv4Code() throws UnsupportedOperationException;
+    OFOxmIcmpv4Code icmpv4Code(ICMPv4Code value);
+    OFOxmIcmpv4CodeMasked.Builder buildIcmpv4CodeMasked() throws UnsupportedOperationException;
+    OFOxmIcmpv4CodeMasked icmpv4CodeMasked(ICMPv4Code value, ICMPv4Code mask);
+    OFOxmIcmpv4Type.Builder buildIcmpv4Type() throws UnsupportedOperationException;
+    OFOxmIcmpv4Type icmpv4Type(ICMPv4Type value);
+    OFOxmIcmpv4TypeMasked.Builder buildIcmpv4TypeMasked() throws UnsupportedOperationException;
+    OFOxmIcmpv4TypeMasked icmpv4TypeMasked(ICMPv4Type value, ICMPv4Type mask);
+    OFOxmIcmpv6Code.Builder buildIcmpv6Code() throws UnsupportedOperationException;
+    OFOxmIcmpv6Code icmpv6Code(U8 value);
+    OFOxmIcmpv6CodeMasked.Builder buildIcmpv6CodeMasked() throws UnsupportedOperationException;
+    OFOxmIcmpv6CodeMasked icmpv6CodeMasked(U8 value, U8 mask);
+    OFOxmIcmpv6Type.Builder buildIcmpv6Type() throws UnsupportedOperationException;
+    OFOxmIcmpv6Type icmpv6Type(U8 value);
+    OFOxmIcmpv6TypeMasked.Builder buildIcmpv6TypeMasked() throws UnsupportedOperationException;
+    OFOxmIcmpv6TypeMasked icmpv6TypeMasked(U8 value, U8 mask);
+    OFOxmInPhyPort.Builder buildInPhyPort() throws UnsupportedOperationException;
+    OFOxmInPhyPort inPhyPort(OFPort value);
+    OFOxmInPhyPortMasked.Builder buildInPhyPortMasked() throws UnsupportedOperationException;
+    OFOxmInPhyPortMasked inPhyPortMasked(OFPort value, OFPort mask);
+    OFOxmInPort.Builder buildInPort() throws UnsupportedOperationException;
+    OFOxmInPort inPort(OFPort value);
+    OFOxmInPortMasked.Builder buildInPortMasked() throws UnsupportedOperationException;
+    OFOxmInPortMasked inPortMasked(OFPort value, OFPort mask);
+    OFOxmIpDscp.Builder buildIpDscp() throws UnsupportedOperationException;
+    OFOxmIpDscp ipDscp(IpDscp value);
+    OFOxmIpDscpMasked.Builder buildIpDscpMasked() throws UnsupportedOperationException;
+    OFOxmIpDscpMasked ipDscpMasked(IpDscp value, IpDscp mask);
+    OFOxmIpEcn.Builder buildIpEcn() throws UnsupportedOperationException;
+    OFOxmIpEcn ipEcn(IpEcn value);
+    OFOxmIpEcnMasked.Builder buildIpEcnMasked() throws UnsupportedOperationException;
+    OFOxmIpEcnMasked ipEcnMasked(IpEcn value, IpEcn mask);
+    OFOxmIpProto.Builder buildIpProto() throws UnsupportedOperationException;
+    OFOxmIpProto ipProto(IpProtocol value);
+    OFOxmIpProtoMasked.Builder buildIpProtoMasked() throws UnsupportedOperationException;
+    OFOxmIpProtoMasked ipProtoMasked(IpProtocol value, IpProtocol mask);
+    OFOxmIpv4Dst.Builder buildIpv4Dst() throws UnsupportedOperationException;
+    OFOxmIpv4Dst ipv4Dst(IPv4Address value);
+    OFOxmIpv4DstMasked.Builder buildIpv4DstMasked() throws UnsupportedOperationException;
+    OFOxmIpv4DstMasked ipv4DstMasked(IPv4Address value, IPv4Address mask);
+    OFOxmIpv4Src.Builder buildIpv4Src() throws UnsupportedOperationException;
+    OFOxmIpv4Src ipv4Src(IPv4Address value);
+    OFOxmIpv4SrcMasked.Builder buildIpv4SrcMasked() throws UnsupportedOperationException;
+    OFOxmIpv4SrcMasked ipv4SrcMasked(IPv4Address value, IPv4Address mask);
+    OFOxmIpv6Dst.Builder buildIpv6Dst() throws UnsupportedOperationException;
+    OFOxmIpv6Dst ipv6Dst(IPv6Address value);
+    OFOxmIpv6DstMasked.Builder buildIpv6DstMasked() throws UnsupportedOperationException;
+    OFOxmIpv6DstMasked ipv6DstMasked(IPv6Address value, IPv6Address mask);
+    OFOxmIpv6Flabel.Builder buildIpv6Flabel() throws UnsupportedOperationException;
+    OFOxmIpv6Flabel ipv6Flabel(IPv6FlowLabel value);
+    OFOxmIpv6FlabelMasked.Builder buildIpv6FlabelMasked() throws UnsupportedOperationException;
+    OFOxmIpv6FlabelMasked ipv6FlabelMasked(IPv6FlowLabel value, IPv6FlowLabel mask);
+    OFOxmIpv6NdSll.Builder buildIpv6NdSll() throws UnsupportedOperationException;
+    OFOxmIpv6NdSll ipv6NdSll(MacAddress value);
+    OFOxmIpv6NdSllMasked.Builder buildIpv6NdSllMasked() throws UnsupportedOperationException;
+    OFOxmIpv6NdSllMasked ipv6NdSllMasked(MacAddress value, MacAddress mask);
+    OFOxmIpv6NdTarget.Builder buildIpv6NdTarget() throws UnsupportedOperationException;
+    OFOxmIpv6NdTarget ipv6NdTarget(IPv6Address value);
+    OFOxmIpv6NdTargetMasked.Builder buildIpv6NdTargetMasked() throws UnsupportedOperationException;
+    OFOxmIpv6NdTargetMasked ipv6NdTargetMasked(IPv6Address value, IPv6Address mask);
+    OFOxmIpv6NdTll.Builder buildIpv6NdTll() throws UnsupportedOperationException;
+    OFOxmIpv6NdTll ipv6NdTll(MacAddress value);
+    OFOxmIpv6NdTllMasked.Builder buildIpv6NdTllMasked() throws UnsupportedOperationException;
+    OFOxmIpv6NdTllMasked ipv6NdTllMasked(MacAddress value, MacAddress mask);
+    OFOxmIpv6Src.Builder buildIpv6Src() throws UnsupportedOperationException;
+    OFOxmIpv6Src ipv6Src(IPv6Address value);
+    OFOxmIpv6SrcMasked.Builder buildIpv6SrcMasked() throws UnsupportedOperationException;
+    OFOxmIpv6SrcMasked ipv6SrcMasked(IPv6Address value, IPv6Address mask);
+    OFOxmMetadata.Builder buildMetadata() throws UnsupportedOperationException;
+    OFOxmMetadata metadata(OFMetadata value);
+    OFOxmMetadataMasked.Builder buildMetadataMasked() throws UnsupportedOperationException;
+    OFOxmMetadataMasked metadataMasked(OFMetadata value, OFMetadata mask);
+    OFOxmMplsLabel.Builder buildMplsLabel() throws UnsupportedOperationException;
+    OFOxmMplsLabel mplsLabel(U32 value);
+    OFOxmMplsLabelMasked.Builder buildMplsLabelMasked() throws UnsupportedOperationException;
+    OFOxmMplsLabelMasked mplsLabelMasked(U32 value, U32 mask);
+    OFOxmMplsTc.Builder buildMplsTc() throws UnsupportedOperationException;
+    OFOxmMplsTc mplsTc(U8 value);
+    OFOxmMplsTcMasked.Builder buildMplsTcMasked() throws UnsupportedOperationException;
+    OFOxmMplsTcMasked mplsTcMasked(U8 value, U8 mask);
+    OFOxmSctpDst.Builder buildSctpDst() throws UnsupportedOperationException;
+    OFOxmSctpDst sctpDst(TransportPort value);
+    OFOxmSctpDstMasked.Builder buildSctpDstMasked() throws UnsupportedOperationException;
+    OFOxmSctpDstMasked sctpDstMasked(TransportPort value, TransportPort mask);
+    OFOxmSctpSrc.Builder buildSctpSrc() throws UnsupportedOperationException;
+    OFOxmSctpSrc sctpSrc(TransportPort value);
+    OFOxmSctpSrcMasked.Builder buildSctpSrcMasked() throws UnsupportedOperationException;
+    OFOxmSctpSrcMasked sctpSrcMasked(TransportPort value, TransportPort mask);
+    OFOxmTcpDst.Builder buildTcpDst() throws UnsupportedOperationException;
+    OFOxmTcpDst tcpDst(TransportPort value);
+    OFOxmTcpDstMasked.Builder buildTcpDstMasked() throws UnsupportedOperationException;
+    OFOxmTcpDstMasked tcpDstMasked(TransportPort value, TransportPort mask);
+    OFOxmTcpSrc.Builder buildTcpSrc() throws UnsupportedOperationException;
+    OFOxmTcpSrc tcpSrc(TransportPort value);
+    OFOxmTcpSrcMasked.Builder buildTcpSrcMasked() throws UnsupportedOperationException;
+    OFOxmTcpSrcMasked tcpSrcMasked(TransportPort value, TransportPort mask);
+    OFOxmUdpDst.Builder buildUdpDst() throws UnsupportedOperationException;
+    OFOxmUdpDst udpDst(TransportPort value);
+    OFOxmUdpDstMasked.Builder buildUdpDstMasked() throws UnsupportedOperationException;
+    OFOxmUdpDstMasked udpDstMasked(TransportPort value, TransportPort mask);
+    OFOxmUdpSrc.Builder buildUdpSrc() throws UnsupportedOperationException;
+    OFOxmUdpSrc udpSrc(TransportPort value);
+    OFOxmUdpSrcMasked.Builder buildUdpSrcMasked() throws UnsupportedOperationException;
+    OFOxmUdpSrcMasked udpSrcMasked(TransportPort value, TransportPort mask);
+    OFOxmVlanPcp.Builder buildVlanPcp() throws UnsupportedOperationException;
+    OFOxmVlanPcp vlanPcp(VlanPcp value);
+    OFOxmVlanPcpMasked.Builder buildVlanPcpMasked() throws UnsupportedOperationException;
+    OFOxmVlanPcpMasked vlanPcpMasked(VlanPcp value, VlanPcp mask);
+    OFOxmVlanVid.Builder buildVlanVid() throws UnsupportedOperationException;
+    OFOxmVlanVid vlanVid(OFVlanVidMatch value);
+    OFOxmVlanVidMasked.Builder buildVlanVidMasked() throws UnsupportedOperationException;
+    OFOxmVlanVidMasked vlanVidMasked(OFVlanVidMatch value, OFVlanVidMatch mask);
+    OFOxmTunnelId.Builder buildTunnelId() throws UnsupportedOperationException;
+    OFOxmTunnelId tunnelId(U64 value);
+    OFOxmTunnelIdMasked.Builder buildTunnelIdMasked() throws UnsupportedOperationException;
+    OFOxmTunnelIdMasked tunnelIdMasked(U64 value, U64 mask);
+
+    OFMessageReader<OFOxm<?>> getReader();
+    OFVersion getVersion();
+
+    public <F extends OFValueType<F>> OFOxm<F> fromValue(F value, MatchField<F> field);
+    public <F extends OFValueType<F>> OFOxm<F> fromValueAndMask(F value, F mask, MatchField<F> field);
+    public <F extends OFValueType<F>> OFOxm<F> fromMasked(Masked<F> masked, MatchField<F> field);
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java
new file mode 100644
index 0000000..d82da0a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueProp extends OFObject {
+    int getType();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder  {
+        OFQueueProp build();
+        int getType();
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java
new file mode 100644
index 0000000..50ed036
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueuePropExperimenter extends OFObject, OFQueueProp {
+    int getType();
+    long getExperimenter();
+    byte[] getData();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFQueueProp.Builder {
+        OFQueuePropExperimenter build();
+        int getType();
+        long getExperimenter();
+        byte[] getData();
+        Builder setData(byte[] data);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java
new file mode 100644
index 0000000..44f3c24
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueuePropMaxRate extends OFObject, OFQueueProp {
+    int getType();
+    int getRate();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFQueueProp.Builder {
+        OFQueuePropMaxRate build();
+        int getType();
+        int getRate();
+        Builder setRate(int rate);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java
new file mode 100644
index 0000000..e6941f7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueuePropMinRate extends OFObject, OFQueueProp {
+    int getType();
+    int getRate();
+    OFVersion getVersion();
+
+    void writeTo(ChannelBuffer channelBuffer);
+
+    Builder createBuilder();
+    public interface Builder extends OFQueueProp.Builder {
+        OFQueuePropMinRate build();
+        int getType();
+        int getRate();
+        Builder setRate(int rate);
+        OFVersion getVersion();
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java
new file mode 100644
index 0000000..ba85e85
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFQueueProps {
+    // Subfactories
+
+    OFQueuePropMinRate.Builder buildMinRate();
+    OFQueuePropMinRate minRate(int rate);
+    OFQueuePropMaxRate.Builder buildMaxRate() throws UnsupportedOperationException;
+    OFQueuePropMaxRate maxRate(int rate);
+
+    OFMessageReader<OFQueueProp> getReader();
+    OFVersion getVersion();
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java
new file mode 100644
index 0000000..3d3649b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java
@@ -0,0 +1,313 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionBsnChecksumVer10 implements OFActionBsnChecksum {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionBsnChecksumVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 28;
+
+        private final static U128 DEFAULT_CHECKSUM = U128.ZERO;
+
+    // OF message fields
+    private final U128 checksum;
+//
+    // Immutable default instance
+    final static OFActionBsnChecksumVer10 DEFAULT = new OFActionBsnChecksumVer10(
+        DEFAULT_CHECKSUM
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionBsnChecksumVer10(U128 checksum) {
+        this.checksum = checksum;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x4L;
+    }
+
+    @Override
+    public U128 getChecksum() {
+        return checksum;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionBsnChecksum.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionBsnChecksum.Builder {
+        final OFActionBsnChecksumVer10 parentMessage;
+
+        // OF message fields
+        private boolean checksumSet;
+        private U128 checksum;
+
+        BuilderWithParent(OFActionBsnChecksumVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x4L;
+    }
+
+    @Override
+    public U128 getChecksum() {
+        return checksum;
+    }
+
+    @Override
+    public OFActionBsnChecksum.Builder setChecksum(U128 checksum) {
+        this.checksum = checksum;
+        this.checksumSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionBsnChecksum build() {
+                U128 checksum = this.checksumSet ? this.checksum : parentMessage.checksum;
+                if(checksum == null)
+                    throw new NullPointerException("Property checksum must not be null");
+
+                //
+                return new OFActionBsnChecksumVer10(
+                    checksum
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionBsnChecksum.Builder {
+        // OF message fields
+        private boolean checksumSet;
+        private U128 checksum;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x4L;
+    }
+
+    @Override
+    public U128 getChecksum() {
+        return checksum;
+    }
+
+    @Override
+    public OFActionBsnChecksum.Builder setChecksum(U128 checksum) {
+        this.checksum = checksum;
+        this.checksumSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionBsnChecksum build() {
+            U128 checksum = this.checksumSet ? this.checksum : DEFAULT_CHECKSUM;
+            if(checksum == null)
+                throw new NullPointerException("Property checksum must not be null");
+
+
+            return new OFActionBsnChecksumVer10(
+                    checksum
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionBsnChecksum> {
+        @Override
+        public OFActionBsnChecksum readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 65535
+            short type = bb.readShort();
+            if(type != (short) 0xffff)
+                throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 28)
+                throw new OFParseError("Wrong length: Expected=28(28), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x4L
+            int subtype = bb.readInt();
+            if(subtype != 0x4)
+                throw new OFParseError("Wrong subtype: Expected=0x4L(0x4L), got="+subtype);
+            U128 checksum = U128.read16Bytes(bb);
+
+            OFActionBsnChecksumVer10 actionBsnChecksumVer10 = new OFActionBsnChecksumVer10(
+                    checksum
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionBsnChecksumVer10);
+            return actionBsnChecksumVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionBsnChecksumVer10Funnel FUNNEL = new OFActionBsnChecksumVer10Funnel();
+    static class OFActionBsnChecksumVer10Funnel implements Funnel<OFActionBsnChecksumVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionBsnChecksumVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 65535
+            sink.putShort((short) 0xffff);
+            // fixed value property length = 28
+            sink.putShort((short) 0x1c);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x4L
+            sink.putInt(0x4);
+            message.checksum.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionBsnChecksumVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionBsnChecksumVer10 message) {
+            // fixed value property type = 65535
+            bb.writeShort((short) 0xffff);
+            // fixed value property length = 28
+            bb.writeShort((short) 0x1c);
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x4L
+            bb.writeInt(0x4);
+            message.checksum.write16Bytes(bb);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionBsnChecksumVer10(");
+        b.append("checksum=").append(checksum);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionBsnChecksumVer10 other = (OFActionBsnChecksumVer10) obj;
+
+        if (checksum == null) {
+            if (other.checksum != null)
+                return false;
+        } else if (!checksum.equals(other.checksum))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((checksum == null) ? 0 : checksum.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java
new file mode 100644
index 0000000..374feb9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java
@@ -0,0 +1,412 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionBsnMirrorVer10 implements OFActionBsnMirror {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionBsnMirrorVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static OFPort DEFAULT_DEST_PORT = OFPort.ANY;
+        private final static long DEFAULT_VLAN_TAG = 0x0L;
+        private final static short DEFAULT_COPY_STAGE = (short) 0x0;
+
+    // OF message fields
+    private final OFPort destPort;
+    private final long vlanTag;
+    private final short copyStage;
+//
+    // Immutable default instance
+    final static OFActionBsnMirrorVer10 DEFAULT = new OFActionBsnMirrorVer10(
+        DEFAULT_DEST_PORT, DEFAULT_VLAN_TAG, DEFAULT_COPY_STAGE
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionBsnMirrorVer10(OFPort destPort, long vlanTag, short copyStage) {
+        this.destPort = destPort;
+        this.vlanTag = vlanTag;
+        this.copyStage = copyStage;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1L;
+    }
+
+    @Override
+    public OFPort getDestPort() {
+        return destPort;
+    }
+
+    @Override
+    public long getVlanTag() {
+        return vlanTag;
+    }
+
+    @Override
+    public short getCopyStage() {
+        return copyStage;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionBsnMirror.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionBsnMirror.Builder {
+        final OFActionBsnMirrorVer10 parentMessage;
+
+        // OF message fields
+        private boolean destPortSet;
+        private OFPort destPort;
+        private boolean vlanTagSet;
+        private long vlanTag;
+        private boolean copyStageSet;
+        private short copyStage;
+
+        BuilderWithParent(OFActionBsnMirrorVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1L;
+    }
+
+    @Override
+    public OFPort getDestPort() {
+        return destPort;
+    }
+
+    @Override
+    public OFActionBsnMirror.Builder setDestPort(OFPort destPort) {
+        this.destPort = destPort;
+        this.destPortSet = true;
+        return this;
+    }
+    @Override
+    public long getVlanTag() {
+        return vlanTag;
+    }
+
+    @Override
+    public OFActionBsnMirror.Builder setVlanTag(long vlanTag) {
+        this.vlanTag = vlanTag;
+        this.vlanTagSet = true;
+        return this;
+    }
+    @Override
+    public short getCopyStage() {
+        return copyStage;
+    }
+
+    @Override
+    public OFActionBsnMirror.Builder setCopyStage(short copyStage) {
+        this.copyStage = copyStage;
+        this.copyStageSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionBsnMirror build() {
+                OFPort destPort = this.destPortSet ? this.destPort : parentMessage.destPort;
+                if(destPort == null)
+                    throw new NullPointerException("Property destPort must not be null");
+                long vlanTag = this.vlanTagSet ? this.vlanTag : parentMessage.vlanTag;
+                short copyStage = this.copyStageSet ? this.copyStage : parentMessage.copyStage;
+
+                //
+                return new OFActionBsnMirrorVer10(
+                    destPort,
+                    vlanTag,
+                    copyStage
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionBsnMirror.Builder {
+        // OF message fields
+        private boolean destPortSet;
+        private OFPort destPort;
+        private boolean vlanTagSet;
+        private long vlanTag;
+        private boolean copyStageSet;
+        private short copyStage;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1L;
+    }
+
+    @Override
+    public OFPort getDestPort() {
+        return destPort;
+    }
+
+    @Override
+    public OFActionBsnMirror.Builder setDestPort(OFPort destPort) {
+        this.destPort = destPort;
+        this.destPortSet = true;
+        return this;
+    }
+    @Override
+    public long getVlanTag() {
+        return vlanTag;
+    }
+
+    @Override
+    public OFActionBsnMirror.Builder setVlanTag(long vlanTag) {
+        this.vlanTag = vlanTag;
+        this.vlanTagSet = true;
+        return this;
+    }
+    @Override
+    public short getCopyStage() {
+        return copyStage;
+    }
+
+    @Override
+    public OFActionBsnMirror.Builder setCopyStage(short copyStage) {
+        this.copyStage = copyStage;
+        this.copyStageSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionBsnMirror build() {
+            OFPort destPort = this.destPortSet ? this.destPort : DEFAULT_DEST_PORT;
+            if(destPort == null)
+                throw new NullPointerException("Property destPort must not be null");
+            long vlanTag = this.vlanTagSet ? this.vlanTag : DEFAULT_VLAN_TAG;
+            short copyStage = this.copyStageSet ? this.copyStage : DEFAULT_COPY_STAGE;
+
+
+            return new OFActionBsnMirrorVer10(
+                    destPort,
+                    vlanTag,
+                    copyStage
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionBsnMirror> {
+        @Override
+        public OFActionBsnMirror readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 65535
+            short type = bb.readShort();
+            if(type != (short) 0xffff)
+                throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x1L
+            int subtype = bb.readInt();
+            if(subtype != 0x1)
+                throw new OFParseError("Wrong subtype: Expected=0x1L(0x1L), got="+subtype);
+            OFPort destPort = OFPort.read2Bytes(bb);
+            long vlanTag = U32.f(bb.readInt());
+            short copyStage = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+
+            OFActionBsnMirrorVer10 actionBsnMirrorVer10 = new OFActionBsnMirrorVer10(
+                    destPort,
+                      vlanTag,
+                      copyStage
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionBsnMirrorVer10);
+            return actionBsnMirrorVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionBsnMirrorVer10Funnel FUNNEL = new OFActionBsnMirrorVer10Funnel();
+    static class OFActionBsnMirrorVer10Funnel implements Funnel<OFActionBsnMirrorVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionBsnMirrorVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 65535
+            sink.putShort((short) 0xffff);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x1L
+            sink.putInt(0x1);
+            message.destPort.putTo(sink);
+            sink.putLong(message.vlanTag);
+            sink.putShort(message.copyStage);
+            // skip pad (3 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionBsnMirrorVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionBsnMirrorVer10 message) {
+            // fixed value property type = 65535
+            bb.writeShort((short) 0xffff);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x1L
+            bb.writeInt(0x1);
+            message.destPort.write2Bytes(bb);
+            bb.writeInt(U32.t(message.vlanTag));
+            bb.writeByte(U8.t(message.copyStage));
+            // pad: 3 bytes
+            bb.writeZero(3);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionBsnMirrorVer10(");
+        b.append("destPort=").append(destPort);
+        b.append(", ");
+        b.append("vlanTag=").append(vlanTag);
+        b.append(", ");
+        b.append("copyStage=").append(copyStage);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionBsnMirrorVer10 other = (OFActionBsnMirrorVer10) obj;
+
+        if (destPort == null) {
+            if (other.destPort != null)
+                return false;
+        } else if (!destPort.equals(other.destPort))
+            return false;
+        if( vlanTag != other.vlanTag)
+            return false;
+        if( copyStage != other.copyStage)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((destPort == null) ? 0 : destPort.hashCode());
+        result = prime *  (int) (vlanTag ^ (vlanTag >>> 32));
+        result = prime * result + copyStage;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java
new file mode 100644
index 0000000..add313c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java
@@ -0,0 +1,306 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionBsnSetTunnelDstVer10 implements OFActionBsnSetTunnelDst {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionBsnSetTunnelDstVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static long DEFAULT_DST = 0x0L;
+
+    // OF message fields
+    private final long dst;
+//
+    // Immutable default instance
+    final static OFActionBsnSetTunnelDstVer10 DEFAULT = new OFActionBsnSetTunnelDstVer10(
+        DEFAULT_DST
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionBsnSetTunnelDstVer10(long dst) {
+        this.dst = dst;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x2L;
+    }
+
+    @Override
+    public long getDst() {
+        return dst;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionBsnSetTunnelDst.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionBsnSetTunnelDst.Builder {
+        final OFActionBsnSetTunnelDstVer10 parentMessage;
+
+        // OF message fields
+        private boolean dstSet;
+        private long dst;
+
+        BuilderWithParent(OFActionBsnSetTunnelDstVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x2L;
+    }
+
+    @Override
+    public long getDst() {
+        return dst;
+    }
+
+    @Override
+    public OFActionBsnSetTunnelDst.Builder setDst(long dst) {
+        this.dst = dst;
+        this.dstSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionBsnSetTunnelDst build() {
+                long dst = this.dstSet ? this.dst : parentMessage.dst;
+
+                //
+                return new OFActionBsnSetTunnelDstVer10(
+                    dst
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionBsnSetTunnelDst.Builder {
+        // OF message fields
+        private boolean dstSet;
+        private long dst;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x2L;
+    }
+
+    @Override
+    public long getDst() {
+        return dst;
+    }
+
+    @Override
+    public OFActionBsnSetTunnelDst.Builder setDst(long dst) {
+        this.dst = dst;
+        this.dstSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionBsnSetTunnelDst build() {
+            long dst = this.dstSet ? this.dst : DEFAULT_DST;
+
+
+            return new OFActionBsnSetTunnelDstVer10(
+                    dst
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionBsnSetTunnelDst> {
+        @Override
+        public OFActionBsnSetTunnelDst readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 65535
+            short type = bb.readShort();
+            if(type != (short) 0xffff)
+                throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x2L
+            int subtype = bb.readInt();
+            if(subtype != 0x2)
+                throw new OFParseError("Wrong subtype: Expected=0x2L(0x2L), got="+subtype);
+            long dst = U32.f(bb.readInt());
+
+            OFActionBsnSetTunnelDstVer10 actionBsnSetTunnelDstVer10 = new OFActionBsnSetTunnelDstVer10(
+                    dst
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionBsnSetTunnelDstVer10);
+            return actionBsnSetTunnelDstVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionBsnSetTunnelDstVer10Funnel FUNNEL = new OFActionBsnSetTunnelDstVer10Funnel();
+    static class OFActionBsnSetTunnelDstVer10Funnel implements Funnel<OFActionBsnSetTunnelDstVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionBsnSetTunnelDstVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 65535
+            sink.putShort((short) 0xffff);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x2L
+            sink.putInt(0x2);
+            sink.putLong(message.dst);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionBsnSetTunnelDstVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionBsnSetTunnelDstVer10 message) {
+            // fixed value property type = 65535
+            bb.writeShort((short) 0xffff);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x2L
+            bb.writeInt(0x2);
+            bb.writeInt(U32.t(message.dst));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionBsnSetTunnelDstVer10(");
+        b.append("dst=").append(dst);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionBsnSetTunnelDstVer10 other = (OFActionBsnSetTunnelDstVer10) obj;
+
+        if( dst != other.dst)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (dst ^ (dst >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java
new file mode 100644
index 0000000..14a7001
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java
@@ -0,0 +1,71 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+import java.util.Set;
+
+abstract class OFActionBsnVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 16;
+
+
+    public final static OFActionBsnVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFActionBsn> {
+        @Override
+        public OFActionBsn readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property type == 65535
+            short type = bb.readShort();
+            if(type != (short) 0xffff)
+                throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            int subtype = bb.readInt();
+            bb.readerIndex(start);
+            switch(subtype) {
+               case 0x4:
+                   // discriminator value 0x4L=0x4L for class OFActionBsnChecksumVer10
+                   return OFActionBsnChecksumVer10.READER.readFrom(bb);
+               case 0x1:
+                   // discriminator value 0x1L=0x1L for class OFActionBsnMirrorVer10
+                   return OFActionBsnMirrorVer10.READER.readFrom(bb);
+               case 0x2:
+                   // discriminator value 0x2L=0x2L for class OFActionBsnSetTunnelDstVer10
+                   return OFActionBsnSetTunnelDstVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator subtype of class OFActionBsnVer10: " + subtype);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java
new file mode 100644
index 0000000..650f3ba
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java
@@ -0,0 +1,319 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionEnqueueVer10 implements OFActionEnqueue {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionEnqueueVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static OFPort DEFAULT_PORT = OFPort.ANY;
+        private final static long DEFAULT_QUEUE_ID = 0x0L;
+
+    // OF message fields
+    private final OFPort port;
+    private final long queueId;
+//
+    // Immutable default instance
+    final static OFActionEnqueueVer10 DEFAULT = new OFActionEnqueueVer10(
+        DEFAULT_PORT, DEFAULT_QUEUE_ID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionEnqueueVer10(OFPort port, long queueId) {
+        this.port = port;
+        this.queueId = queueId;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.ENQUEUE;
+    }
+
+    @Override
+    public OFPort getPort() {
+        return port;
+    }
+
+    @Override
+    public long getQueueId() {
+        return queueId;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionEnqueue.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionEnqueue.Builder {
+        final OFActionEnqueueVer10 parentMessage;
+
+        // OF message fields
+        private boolean portSet;
+        private OFPort port;
+        private boolean queueIdSet;
+        private long queueId;
+
+        BuilderWithParent(OFActionEnqueueVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.ENQUEUE;
+    }
+
+    @Override
+    public OFPort getPort() {
+        return port;
+    }
+
+    @Override
+    public OFActionEnqueue.Builder setPort(OFPort port) {
+        this.port = port;
+        this.portSet = true;
+        return this;
+    }
+    @Override
+    public long getQueueId() {
+        return queueId;
+    }
+
+    @Override
+    public OFActionEnqueue.Builder setQueueId(long queueId) {
+        this.queueId = queueId;
+        this.queueIdSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionEnqueue build() {
+                OFPort port = this.portSet ? this.port : parentMessage.port;
+                if(port == null)
+                    throw new NullPointerException("Property port must not be null");
+                long queueId = this.queueIdSet ? this.queueId : parentMessage.queueId;
+
+                //
+                return new OFActionEnqueueVer10(
+                    port,
+                    queueId
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionEnqueue.Builder {
+        // OF message fields
+        private boolean portSet;
+        private OFPort port;
+        private boolean queueIdSet;
+        private long queueId;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.ENQUEUE;
+    }
+
+    @Override
+    public OFPort getPort() {
+        return port;
+    }
+
+    @Override
+    public OFActionEnqueue.Builder setPort(OFPort port) {
+        this.port = port;
+        this.portSet = true;
+        return this;
+    }
+    @Override
+    public long getQueueId() {
+        return queueId;
+    }
+
+    @Override
+    public OFActionEnqueue.Builder setQueueId(long queueId) {
+        this.queueId = queueId;
+        this.queueIdSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionEnqueue build() {
+            OFPort port = this.portSet ? this.port : DEFAULT_PORT;
+            if(port == null)
+                throw new NullPointerException("Property port must not be null");
+            long queueId = this.queueIdSet ? this.queueId : DEFAULT_QUEUE_ID;
+
+
+            return new OFActionEnqueueVer10(
+                    port,
+                    queueId
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionEnqueue> {
+        @Override
+        public OFActionEnqueue readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 11
+            short type = bb.readShort();
+            if(type != (short) 0xb)
+                throw new OFParseError("Wrong type: Expected=OFActionType.ENQUEUE(11), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            OFPort port = OFPort.read2Bytes(bb);
+            // pad: 6 bytes
+            bb.skipBytes(6);
+            long queueId = U32.f(bb.readInt());
+
+            OFActionEnqueueVer10 actionEnqueueVer10 = new OFActionEnqueueVer10(
+                    port,
+                      queueId
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionEnqueueVer10);
+            return actionEnqueueVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionEnqueueVer10Funnel FUNNEL = new OFActionEnqueueVer10Funnel();
+    static class OFActionEnqueueVer10Funnel implements Funnel<OFActionEnqueueVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionEnqueueVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 11
+            sink.putShort((short) 0xb);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            message.port.putTo(sink);
+            // skip pad (6 bytes)
+            sink.putLong(message.queueId);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionEnqueueVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionEnqueueVer10 message) {
+            // fixed value property type = 11
+            bb.writeShort((short) 0xb);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            message.port.write2Bytes(bb);
+            // pad: 6 bytes
+            bb.writeZero(6);
+            bb.writeInt(U32.t(message.queueId));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionEnqueueVer10(");
+        b.append("port=").append(port);
+        b.append(", ");
+        b.append("queueId=").append(queueId);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionEnqueueVer10 other = (OFActionEnqueueVer10) obj;
+
+        if (port == null) {
+            if (other.port != null)
+                return false;
+        } else if (!port.equals(other.port))
+            return false;
+        if( queueId != other.queueId)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((port == null) ? 0 : port.hashCode());
+        result = prime *  (int) (queueId ^ (queueId >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java
new file mode 100644
index 0000000..e0b1bf2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java
@@ -0,0 +1,63 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFActionExperimenterVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 8;
+
+
+    public final static OFActionExperimenterVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFActionExperimenter> {
+        @Override
+        public OFActionExperimenter readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property type == 65535
+            short type = bb.readShort();
+            if(type != (short) 0xffff)
+                throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            int experimenter = bb.readInt();
+            bb.readerIndex(start);
+            switch(experimenter) {
+               case 0x5c16c7:
+                   // discriminator value 0x5c16c7L=0x5c16c7L for class OFActionBsnVer10
+                   return OFActionBsnVer10.READER.readFrom(bb);
+               case 0x2320:
+                   // discriminator value 0x2320L=0x2320L for class OFActionNiciraVer10
+                   return OFActionNiciraVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator experimenter of class OFActionExperimenterVer10: " + experimenter);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java
new file mode 100644
index 0000000..cde6599
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java
@@ -0,0 +1,123 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+
+public class OFActionIdsVer10 implements OFActionIds {
+    public final static OFActionIdsVer10 INSTANCE = new OFActionIdsVer10();
+
+
+
+
+    public OFActionIdBsnChecksum bsnChecksum() {
+        throw new UnsupportedOperationException("OFActionIdBsnChecksum not supported in version 1.0");
+    }
+
+    public OFActionIdBsnMirror bsnMirror() {
+        throw new UnsupportedOperationException("OFActionIdBsnMirror not supported in version 1.0");
+    }
+
+    public OFActionIdBsnSetTunnelDst bsnSetTunnelDst() {
+        throw new UnsupportedOperationException("OFActionIdBsnSetTunnelDst not supported in version 1.0");
+    }
+
+    public OFActionIdCopyTtlIn copyTtlIn() {
+        throw new UnsupportedOperationException("OFActionIdCopyTtlIn not supported in version 1.0");
+    }
+
+    public OFActionIdCopyTtlOut copyTtlOut() {
+        throw new UnsupportedOperationException("OFActionIdCopyTtlOut not supported in version 1.0");
+    }
+
+    public OFActionIdDecMplsTtl decMplsTtl() {
+        throw new UnsupportedOperationException("OFActionIdDecMplsTtl not supported in version 1.0");
+    }
+
+    public OFActionIdDecNwTtl decNwTtl() {
+        throw new UnsupportedOperationException("OFActionIdDecNwTtl not supported in version 1.0");
+    }
+
+    public OFActionIdGroup group() {
+        throw new UnsupportedOperationException("OFActionIdGroup not supported in version 1.0");
+    }
+
+    public OFActionIdNiciraDecTtl niciraDecTtl() {
+        throw new UnsupportedOperationException("OFActionIdNiciraDecTtl not supported in version 1.0");
+    }
+
+    public OFActionIdOutput output() {
+        throw new UnsupportedOperationException("OFActionIdOutput not supported in version 1.0");
+    }
+
+    public OFActionIdPopMpls popMpls() {
+        throw new UnsupportedOperationException("OFActionIdPopMpls not supported in version 1.0");
+    }
+
+    public OFActionIdPopPbb popPbb() {
+        throw new UnsupportedOperationException("OFActionIdPopPbb not supported in version 1.0");
+    }
+
+    public OFActionIdPopVlan popVlan() {
+        throw new UnsupportedOperationException("OFActionIdPopVlan not supported in version 1.0");
+    }
+
+    public OFActionIdPushMpls pushMpls() {
+        throw new UnsupportedOperationException("OFActionIdPushMpls not supported in version 1.0");
+    }
+
+    public OFActionIdPushPbb pushPbb() {
+        throw new UnsupportedOperationException("OFActionIdPushPbb not supported in version 1.0");
+    }
+
+    public OFActionIdPushVlan pushVlan() {
+        throw new UnsupportedOperationException("OFActionIdPushVlan not supported in version 1.0");
+    }
+
+    public OFActionIdSetField setField() {
+        throw new UnsupportedOperationException("OFActionIdSetField not supported in version 1.0");
+    }
+
+    public OFActionIdSetMplsTtl setMplsTtl() {
+        throw new UnsupportedOperationException("OFActionIdSetMplsTtl not supported in version 1.0");
+    }
+
+    public OFActionIdSetNwTtl setNwTtl() {
+        throw new UnsupportedOperationException("OFActionIdSetNwTtl not supported in version 1.0");
+    }
+
+    public OFActionIdSetQueue setQueue() {
+        throw new UnsupportedOperationException("OFActionIdSetQueue not supported in version 1.0");
+    }
+
+    public OFMessageReader<OFActionId> getReader() {
+        throw new UnsupportedOperationException("Reader<OFActionId> not supported in version 1.0");
+    }
+
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_10;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java
new file mode 100644
index 0000000..c72dcc6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java
@@ -0,0 +1,192 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionNiciraDecTtlVer10 implements OFActionNiciraDecTtl {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionNiciraDecTtlVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+
+    // OF message fields
+//
+    // Immutable default instance
+    final static OFActionNiciraDecTtlVer10 DEFAULT = new OFActionNiciraDecTtlVer10(
+
+    );
+
+    final static OFActionNiciraDecTtlVer10 INSTANCE = new OFActionNiciraDecTtlVer10();
+    // private empty constructor - use shared instance!
+    private OFActionNiciraDecTtlVer10() {
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x2320L;
+    }
+
+    @Override
+    public int getSubtype() {
+        return 0x12;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    // no data members - do not support builder
+    public OFActionNiciraDecTtl.Builder createBuilder() {
+        throw new UnsupportedOperationException("OFActionNiciraDecTtlVer10 has no mutable properties -- builder unneeded");
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionNiciraDecTtl> {
+        @Override
+        public OFActionNiciraDecTtl readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 65535
+            short type = bb.readShort();
+            if(type != (short) 0xffff)
+                throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            // fixed value property experimenter == 0x2320L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x2320)
+                throw new OFParseError("Wrong experimenter: Expected=0x2320L(0x2320L), got="+experimenter);
+            // fixed value property subtype == 0x12
+            short subtype = bb.readShort();
+            if(subtype != (short) 0x12)
+                throw new OFParseError("Wrong subtype: Expected=0x12(0x12), got="+subtype);
+            // pad: 2 bytes
+            bb.skipBytes(2);
+            // pad: 4 bytes
+            bb.skipBytes(4);
+
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - returning shared instance={}", INSTANCE);
+            return INSTANCE;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionNiciraDecTtlVer10Funnel FUNNEL = new OFActionNiciraDecTtlVer10Funnel();
+    static class OFActionNiciraDecTtlVer10Funnel implements Funnel<OFActionNiciraDecTtlVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionNiciraDecTtlVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 65535
+            sink.putShort((short) 0xffff);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            // fixed value property experimenter = 0x2320L
+            sink.putInt(0x2320);
+            // fixed value property subtype = 0x12
+            sink.putShort((short) 0x12);
+            // skip pad (2 bytes)
+            // skip pad (4 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionNiciraDecTtlVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionNiciraDecTtlVer10 message) {
+            // fixed value property type = 65535
+            bb.writeShort((short) 0xffff);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            // fixed value property experimenter = 0x2320L
+            bb.writeInt(0x2320);
+            // fixed value property subtype = 0x12
+            bb.writeShort((short) 0x12);
+            // pad: 2 bytes
+            bb.writeZero(2);
+            // pad: 4 bytes
+            bb.writeZero(4);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionNiciraDecTtlVer10(");
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = 1;
+
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java
new file mode 100644
index 0000000..2023afa
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java
@@ -0,0 +1,64 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFActionNiciraVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 16;
+
+
+    public final static OFActionNiciraVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFActionNicira> {
+        @Override
+        public OFActionNicira readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property type == 65535
+            short type = bb.readShort();
+            if(type != (short) 0xffff)
+                throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            // fixed value property experimenter == 0x2320L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x2320)
+                throw new OFParseError("Wrong experimenter: Expected=0x2320L(0x2320L), got="+experimenter);
+            short subtype = bb.readShort();
+            bb.readerIndex(start);
+            switch(subtype) {
+               case (short) 0x12:
+                   // discriminator value 0x12=0x12 for class OFActionNiciraDecTtlVer10
+                   return OFActionNiciraDecTtlVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator subtype of class OFActionNiciraVer10: " + subtype);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java
new file mode 100644
index 0000000..e224bc8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionOutputVer10 implements OFActionOutput {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionOutputVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static OFPort DEFAULT_PORT = OFPort.ANY;
+        private final static int DEFAULT_MAX_LEN = 0x0;
+
+    // OF message fields
+    private final OFPort port;
+    private final int maxLen;
+//
+    // Immutable default instance
+    final static OFActionOutputVer10 DEFAULT = new OFActionOutputVer10(
+        DEFAULT_PORT, DEFAULT_MAX_LEN
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionOutputVer10(OFPort port, int maxLen) {
+        this.port = port;
+        this.maxLen = maxLen;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.OUTPUT;
+    }
+
+    @Override
+    public OFPort getPort() {
+        return port;
+    }
+
+    @Override
+    public int getMaxLen() {
+        return maxLen;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionOutput.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionOutput.Builder {
+        final OFActionOutputVer10 parentMessage;
+
+        // OF message fields
+        private boolean portSet;
+        private OFPort port;
+        private boolean maxLenSet;
+        private int maxLen;
+
+        BuilderWithParent(OFActionOutputVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.OUTPUT;
+    }
+
+    @Override
+    public OFPort getPort() {
+        return port;
+    }
+
+    @Override
+    public OFActionOutput.Builder setPort(OFPort port) {
+        this.port = port;
+        this.portSet = true;
+        return this;
+    }
+    @Override
+    public int getMaxLen() {
+        return maxLen;
+    }
+
+    @Override
+    public OFActionOutput.Builder setMaxLen(int maxLen) {
+        this.maxLen = maxLen;
+        this.maxLenSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionOutput build() {
+                OFPort port = this.portSet ? this.port : parentMessage.port;
+                if(port == null)
+                    throw new NullPointerException("Property port must not be null");
+                int maxLen = this.maxLenSet ? this.maxLen : parentMessage.maxLen;
+
+                //
+                return new OFActionOutputVer10(
+                    port,
+                    maxLen
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionOutput.Builder {
+        // OF message fields
+        private boolean portSet;
+        private OFPort port;
+        private boolean maxLenSet;
+        private int maxLen;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.OUTPUT;
+    }
+
+    @Override
+    public OFPort getPort() {
+        return port;
+    }
+
+    @Override
+    public OFActionOutput.Builder setPort(OFPort port) {
+        this.port = port;
+        this.portSet = true;
+        return this;
+    }
+    @Override
+    public int getMaxLen() {
+        return maxLen;
+    }
+
+    @Override
+    public OFActionOutput.Builder setMaxLen(int maxLen) {
+        this.maxLen = maxLen;
+        this.maxLenSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionOutput build() {
+            OFPort port = this.portSet ? this.port : DEFAULT_PORT;
+            if(port == null)
+                throw new NullPointerException("Property port must not be null");
+            int maxLen = this.maxLenSet ? this.maxLen : DEFAULT_MAX_LEN;
+
+
+            return new OFActionOutputVer10(
+                    port,
+                    maxLen
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionOutput> {
+        @Override
+        public OFActionOutput readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 0
+            short type = bb.readShort();
+            if(type != (short) 0x0)
+                throw new OFParseError("Wrong type: Expected=OFActionType.OUTPUT(0), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            OFPort port = OFPort.read2Bytes(bb);
+            int maxLen = U16.f(bb.readShort());
+
+            OFActionOutputVer10 actionOutputVer10 = new OFActionOutputVer10(
+                    port,
+                      maxLen
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionOutputVer10);
+            return actionOutputVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionOutputVer10Funnel FUNNEL = new OFActionOutputVer10Funnel();
+    static class OFActionOutputVer10Funnel implements Funnel<OFActionOutputVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionOutputVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 0
+            sink.putShort((short) 0x0);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            message.port.putTo(sink);
+            sink.putInt(message.maxLen);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionOutputVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionOutputVer10 message) {
+            // fixed value property type = 0
+            bb.writeShort((short) 0x0);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            message.port.write2Bytes(bb);
+            bb.writeShort(U16.t(message.maxLen));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionOutputVer10(");
+        b.append("port=").append(port);
+        b.append(", ");
+        b.append("maxLen=").append(maxLen);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionOutputVer10 other = (OFActionOutputVer10) obj;
+
+        if (port == null) {
+            if (other.port != null)
+                return false;
+        } else if (!port.equals(other.port))
+            return false;
+        if( maxLen != other.maxLen)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((port == null) ? 0 : port.hashCode());
+        result = prime * result + maxLen;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java
new file mode 100644
index 0000000..348da90
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetDlDstVer10 implements OFActionSetDlDst {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetDlDstVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static MacAddress DEFAULT_DL_ADDR = MacAddress.NONE;
+
+    // OF message fields
+    private final MacAddress dlAddr;
+//
+    // Immutable default instance
+    final static OFActionSetDlDstVer10 DEFAULT = new OFActionSetDlDstVer10(
+        DEFAULT_DL_ADDR
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetDlDstVer10(MacAddress dlAddr) {
+        this.dlAddr = dlAddr;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_DL_DST;
+    }
+
+    @Override
+    public MacAddress getDlAddr() {
+        return dlAddr;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetDlDst.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetDlDst.Builder {
+        final OFActionSetDlDstVer10 parentMessage;
+
+        // OF message fields
+        private boolean dlAddrSet;
+        private MacAddress dlAddr;
+
+        BuilderWithParent(OFActionSetDlDstVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_DL_DST;
+    }
+
+    @Override
+    public MacAddress getDlAddr() {
+        return dlAddr;
+    }
+
+    @Override
+    public OFActionSetDlDst.Builder setDlAddr(MacAddress dlAddr) {
+        this.dlAddr = dlAddr;
+        this.dlAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetDlDst build() {
+                MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : parentMessage.dlAddr;
+                if(dlAddr == null)
+                    throw new NullPointerException("Property dlAddr must not be null");
+
+                //
+                return new OFActionSetDlDstVer10(
+                    dlAddr
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetDlDst.Builder {
+        // OF message fields
+        private boolean dlAddrSet;
+        private MacAddress dlAddr;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_DL_DST;
+    }
+
+    @Override
+    public MacAddress getDlAddr() {
+        return dlAddr;
+    }
+
+    @Override
+    public OFActionSetDlDst.Builder setDlAddr(MacAddress dlAddr) {
+        this.dlAddr = dlAddr;
+        this.dlAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetDlDst build() {
+            MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : DEFAULT_DL_ADDR;
+            if(dlAddr == null)
+                throw new NullPointerException("Property dlAddr must not be null");
+
+
+            return new OFActionSetDlDstVer10(
+                    dlAddr
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetDlDst> {
+        @Override
+        public OFActionSetDlDst readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 5
+            short type = bb.readShort();
+            if(type != (short) 0x5)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_DL_DST(5), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            MacAddress dlAddr = MacAddress.read6Bytes(bb);
+            // pad: 6 bytes
+            bb.skipBytes(6);
+
+            OFActionSetDlDstVer10 actionSetDlDstVer10 = new OFActionSetDlDstVer10(
+                    dlAddr
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetDlDstVer10);
+            return actionSetDlDstVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetDlDstVer10Funnel FUNNEL = new OFActionSetDlDstVer10Funnel();
+    static class OFActionSetDlDstVer10Funnel implements Funnel<OFActionSetDlDstVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetDlDstVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 5
+            sink.putShort((short) 0x5);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            message.dlAddr.putTo(sink);
+            // skip pad (6 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetDlDstVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetDlDstVer10 message) {
+            // fixed value property type = 5
+            bb.writeShort((short) 0x5);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            message.dlAddr.write6Bytes(bb);
+            // pad: 6 bytes
+            bb.writeZero(6);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetDlDstVer10(");
+        b.append("dlAddr=").append(dlAddr);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetDlDstVer10 other = (OFActionSetDlDstVer10) obj;
+
+        if (dlAddr == null) {
+            if (other.dlAddr != null)
+                return false;
+        } else if (!dlAddr.equals(other.dlAddr))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((dlAddr == null) ? 0 : dlAddr.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java
new file mode 100644
index 0000000..cc88013
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetDlSrcVer10 implements OFActionSetDlSrc {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetDlSrcVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static MacAddress DEFAULT_DL_ADDR = MacAddress.NONE;
+
+    // OF message fields
+    private final MacAddress dlAddr;
+//
+    // Immutable default instance
+    final static OFActionSetDlSrcVer10 DEFAULT = new OFActionSetDlSrcVer10(
+        DEFAULT_DL_ADDR
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetDlSrcVer10(MacAddress dlAddr) {
+        this.dlAddr = dlAddr;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_DL_SRC;
+    }
+
+    @Override
+    public MacAddress getDlAddr() {
+        return dlAddr;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetDlSrc.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetDlSrc.Builder {
+        final OFActionSetDlSrcVer10 parentMessage;
+
+        // OF message fields
+        private boolean dlAddrSet;
+        private MacAddress dlAddr;
+
+        BuilderWithParent(OFActionSetDlSrcVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_DL_SRC;
+    }
+
+    @Override
+    public MacAddress getDlAddr() {
+        return dlAddr;
+    }
+
+    @Override
+    public OFActionSetDlSrc.Builder setDlAddr(MacAddress dlAddr) {
+        this.dlAddr = dlAddr;
+        this.dlAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetDlSrc build() {
+                MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : parentMessage.dlAddr;
+                if(dlAddr == null)
+                    throw new NullPointerException("Property dlAddr must not be null");
+
+                //
+                return new OFActionSetDlSrcVer10(
+                    dlAddr
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetDlSrc.Builder {
+        // OF message fields
+        private boolean dlAddrSet;
+        private MacAddress dlAddr;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_DL_SRC;
+    }
+
+    @Override
+    public MacAddress getDlAddr() {
+        return dlAddr;
+    }
+
+    @Override
+    public OFActionSetDlSrc.Builder setDlAddr(MacAddress dlAddr) {
+        this.dlAddr = dlAddr;
+        this.dlAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetDlSrc build() {
+            MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : DEFAULT_DL_ADDR;
+            if(dlAddr == null)
+                throw new NullPointerException("Property dlAddr must not be null");
+
+
+            return new OFActionSetDlSrcVer10(
+                    dlAddr
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetDlSrc> {
+        @Override
+        public OFActionSetDlSrc readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 4
+            short type = bb.readShort();
+            if(type != (short) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_DL_SRC(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            MacAddress dlAddr = MacAddress.read6Bytes(bb);
+            // pad: 6 bytes
+            bb.skipBytes(6);
+
+            OFActionSetDlSrcVer10 actionSetDlSrcVer10 = new OFActionSetDlSrcVer10(
+                    dlAddr
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetDlSrcVer10);
+            return actionSetDlSrcVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetDlSrcVer10Funnel FUNNEL = new OFActionSetDlSrcVer10Funnel();
+    static class OFActionSetDlSrcVer10Funnel implements Funnel<OFActionSetDlSrcVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetDlSrcVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 4
+            sink.putShort((short) 0x4);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            message.dlAddr.putTo(sink);
+            // skip pad (6 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetDlSrcVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetDlSrcVer10 message) {
+            // fixed value property type = 4
+            bb.writeShort((short) 0x4);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            message.dlAddr.write6Bytes(bb);
+            // pad: 6 bytes
+            bb.writeZero(6);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetDlSrcVer10(");
+        b.append("dlAddr=").append(dlAddr);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetDlSrcVer10 other = (OFActionSetDlSrcVer10) obj;
+
+        if (dlAddr == null) {
+            if (other.dlAddr != null)
+                return false;
+        } else if (!dlAddr.equals(other.dlAddr))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((dlAddr == null) ? 0 : dlAddr.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java
new file mode 100644
index 0000000..f7a4d27
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java
@@ -0,0 +1,267 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetNwDstVer10 implements OFActionSetNwDst {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetNwDstVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static IPv4Address DEFAULT_NW_ADDR = IPv4Address.NONE;
+
+    // OF message fields
+    private final IPv4Address nwAddr;
+//
+    // Immutable default instance
+    final static OFActionSetNwDstVer10 DEFAULT = new OFActionSetNwDstVer10(
+        DEFAULT_NW_ADDR
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetNwDstVer10(IPv4Address nwAddr) {
+        this.nwAddr = nwAddr;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_DST;
+    }
+
+    @Override
+    public IPv4Address getNwAddr() {
+        return nwAddr;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetNwDst.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetNwDst.Builder {
+        final OFActionSetNwDstVer10 parentMessage;
+
+        // OF message fields
+        private boolean nwAddrSet;
+        private IPv4Address nwAddr;
+
+        BuilderWithParent(OFActionSetNwDstVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_DST;
+    }
+
+    @Override
+    public IPv4Address getNwAddr() {
+        return nwAddr;
+    }
+
+    @Override
+    public OFActionSetNwDst.Builder setNwAddr(IPv4Address nwAddr) {
+        this.nwAddr = nwAddr;
+        this.nwAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetNwDst build() {
+                IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : parentMessage.nwAddr;
+                if(nwAddr == null)
+                    throw new NullPointerException("Property nwAddr must not be null");
+
+                //
+                return new OFActionSetNwDstVer10(
+                    nwAddr
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetNwDst.Builder {
+        // OF message fields
+        private boolean nwAddrSet;
+        private IPv4Address nwAddr;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_DST;
+    }
+
+    @Override
+    public IPv4Address getNwAddr() {
+        return nwAddr;
+    }
+
+    @Override
+    public OFActionSetNwDst.Builder setNwAddr(IPv4Address nwAddr) {
+        this.nwAddr = nwAddr;
+        this.nwAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetNwDst build() {
+            IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : DEFAULT_NW_ADDR;
+            if(nwAddr == null)
+                throw new NullPointerException("Property nwAddr must not be null");
+
+
+            return new OFActionSetNwDstVer10(
+                    nwAddr
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetNwDst> {
+        @Override
+        public OFActionSetNwDst readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 7
+            short type = bb.readShort();
+            if(type != (short) 0x7)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_NW_DST(7), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            IPv4Address nwAddr = IPv4Address.read4Bytes(bb);
+
+            OFActionSetNwDstVer10 actionSetNwDstVer10 = new OFActionSetNwDstVer10(
+                    nwAddr
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetNwDstVer10);
+            return actionSetNwDstVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetNwDstVer10Funnel FUNNEL = new OFActionSetNwDstVer10Funnel();
+    static class OFActionSetNwDstVer10Funnel implements Funnel<OFActionSetNwDstVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetNwDstVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 7
+            sink.putShort((short) 0x7);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            message.nwAddr.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetNwDstVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetNwDstVer10 message) {
+            // fixed value property type = 7
+            bb.writeShort((short) 0x7);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            message.nwAddr.write4Bytes(bb);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetNwDstVer10(");
+        b.append("nwAddr=").append(nwAddr);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetNwDstVer10 other = (OFActionSetNwDstVer10) obj;
+
+        if (nwAddr == null) {
+            if (other.nwAddr != null)
+                return false;
+        } else if (!nwAddr.equals(other.nwAddr))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((nwAddr == null) ? 0 : nwAddr.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java
new file mode 100644
index 0000000..4d30837
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java
@@ -0,0 +1,267 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetNwSrcVer10 implements OFActionSetNwSrc {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetNwSrcVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static IPv4Address DEFAULT_NW_ADDR = IPv4Address.NONE;
+
+    // OF message fields
+    private final IPv4Address nwAddr;
+//
+    // Immutable default instance
+    final static OFActionSetNwSrcVer10 DEFAULT = new OFActionSetNwSrcVer10(
+        DEFAULT_NW_ADDR
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetNwSrcVer10(IPv4Address nwAddr) {
+        this.nwAddr = nwAddr;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_SRC;
+    }
+
+    @Override
+    public IPv4Address getNwAddr() {
+        return nwAddr;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetNwSrc.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetNwSrc.Builder {
+        final OFActionSetNwSrcVer10 parentMessage;
+
+        // OF message fields
+        private boolean nwAddrSet;
+        private IPv4Address nwAddr;
+
+        BuilderWithParent(OFActionSetNwSrcVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_SRC;
+    }
+
+    @Override
+    public IPv4Address getNwAddr() {
+        return nwAddr;
+    }
+
+    @Override
+    public OFActionSetNwSrc.Builder setNwAddr(IPv4Address nwAddr) {
+        this.nwAddr = nwAddr;
+        this.nwAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetNwSrc build() {
+                IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : parentMessage.nwAddr;
+                if(nwAddr == null)
+                    throw new NullPointerException("Property nwAddr must not be null");
+
+                //
+                return new OFActionSetNwSrcVer10(
+                    nwAddr
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetNwSrc.Builder {
+        // OF message fields
+        private boolean nwAddrSet;
+        private IPv4Address nwAddr;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_SRC;
+    }
+
+    @Override
+    public IPv4Address getNwAddr() {
+        return nwAddr;
+    }
+
+    @Override
+    public OFActionSetNwSrc.Builder setNwAddr(IPv4Address nwAddr) {
+        this.nwAddr = nwAddr;
+        this.nwAddrSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetNwSrc build() {
+            IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : DEFAULT_NW_ADDR;
+            if(nwAddr == null)
+                throw new NullPointerException("Property nwAddr must not be null");
+
+
+            return new OFActionSetNwSrcVer10(
+                    nwAddr
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetNwSrc> {
+        @Override
+        public OFActionSetNwSrc readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 6
+            short type = bb.readShort();
+            if(type != (short) 0x6)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_NW_SRC(6), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            IPv4Address nwAddr = IPv4Address.read4Bytes(bb);
+
+            OFActionSetNwSrcVer10 actionSetNwSrcVer10 = new OFActionSetNwSrcVer10(
+                    nwAddr
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetNwSrcVer10);
+            return actionSetNwSrcVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetNwSrcVer10Funnel FUNNEL = new OFActionSetNwSrcVer10Funnel();
+    static class OFActionSetNwSrcVer10Funnel implements Funnel<OFActionSetNwSrcVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetNwSrcVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 6
+            sink.putShort((short) 0x6);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            message.nwAddr.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetNwSrcVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetNwSrcVer10 message) {
+            // fixed value property type = 6
+            bb.writeShort((short) 0x6);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            message.nwAddr.write4Bytes(bb);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetNwSrcVer10(");
+        b.append("nwAddr=").append(nwAddr);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetNwSrcVer10 other = (OFActionSetNwSrcVer10) obj;
+
+        if (nwAddr == null) {
+            if (other.nwAddr != null)
+                return false;
+        } else if (!nwAddr.equals(other.nwAddr))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((nwAddr == null) ? 0 : nwAddr.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java
new file mode 100644
index 0000000..43493bb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java
@@ -0,0 +1,265 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetNwTosVer10 implements OFActionSetNwTos {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetNwTosVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static short DEFAULT_NW_TOS = (short) 0x0;
+
+    // OF message fields
+    private final short nwTos;
+//
+    // Immutable default instance
+    final static OFActionSetNwTosVer10 DEFAULT = new OFActionSetNwTosVer10(
+        DEFAULT_NW_TOS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetNwTosVer10(short nwTos) {
+        this.nwTos = nwTos;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_TOS;
+    }
+
+    @Override
+    public short getNwTos() {
+        return nwTos;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetNwTos.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetNwTos.Builder {
+        final OFActionSetNwTosVer10 parentMessage;
+
+        // OF message fields
+        private boolean nwTosSet;
+        private short nwTos;
+
+        BuilderWithParent(OFActionSetNwTosVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_TOS;
+    }
+
+    @Override
+    public short getNwTos() {
+        return nwTos;
+    }
+
+    @Override
+    public OFActionSetNwTos.Builder setNwTos(short nwTos) {
+        this.nwTos = nwTos;
+        this.nwTosSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetNwTos build() {
+                short nwTos = this.nwTosSet ? this.nwTos : parentMessage.nwTos;
+
+                //
+                return new OFActionSetNwTosVer10(
+                    nwTos
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetNwTos.Builder {
+        // OF message fields
+        private boolean nwTosSet;
+        private short nwTos;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_NW_TOS;
+    }
+
+    @Override
+    public short getNwTos() {
+        return nwTos;
+    }
+
+    @Override
+    public OFActionSetNwTos.Builder setNwTos(short nwTos) {
+        this.nwTos = nwTos;
+        this.nwTosSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetNwTos build() {
+            short nwTos = this.nwTosSet ? this.nwTos : DEFAULT_NW_TOS;
+
+
+            return new OFActionSetNwTosVer10(
+                    nwTos
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetNwTos> {
+        @Override
+        public OFActionSetNwTos readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 8
+            short type = bb.readShort();
+            if(type != (short) 0x8)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_NW_TOS(8), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            short nwTos = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+
+            OFActionSetNwTosVer10 actionSetNwTosVer10 = new OFActionSetNwTosVer10(
+                    nwTos
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetNwTosVer10);
+            return actionSetNwTosVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetNwTosVer10Funnel FUNNEL = new OFActionSetNwTosVer10Funnel();
+    static class OFActionSetNwTosVer10Funnel implements Funnel<OFActionSetNwTosVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetNwTosVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 8
+            sink.putShort((short) 0x8);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            sink.putShort(message.nwTos);
+            // skip pad (3 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetNwTosVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetNwTosVer10 message) {
+            // fixed value property type = 8
+            bb.writeShort((short) 0x8);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            bb.writeByte(U8.t(message.nwTos));
+            // pad: 3 bytes
+            bb.writeZero(3);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetNwTosVer10(");
+        b.append("nwTos=").append(nwTos);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetNwTosVer10 other = (OFActionSetNwTosVer10) obj;
+
+        if( nwTos != other.nwTos)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + nwTos;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java
new file mode 100644
index 0000000..822c484
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetTpDstVer10 implements OFActionSetTpDst {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetTpDstVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static TransportPort DEFAULT_TP_PORT = TransportPort.NONE;
+
+    // OF message fields
+    private final TransportPort tpPort;
+//
+    // Immutable default instance
+    final static OFActionSetTpDstVer10 DEFAULT = new OFActionSetTpDstVer10(
+        DEFAULT_TP_PORT
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetTpDstVer10(TransportPort tpPort) {
+        this.tpPort = tpPort;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_TP_DST;
+    }
+
+    @Override
+    public TransportPort getTpPort() {
+        return tpPort;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetTpDst.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetTpDst.Builder {
+        final OFActionSetTpDstVer10 parentMessage;
+
+        // OF message fields
+        private boolean tpPortSet;
+        private TransportPort tpPort;
+
+        BuilderWithParent(OFActionSetTpDstVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_TP_DST;
+    }
+
+    @Override
+    public TransportPort getTpPort() {
+        return tpPort;
+    }
+
+    @Override
+    public OFActionSetTpDst.Builder setTpPort(TransportPort tpPort) {
+        this.tpPort = tpPort;
+        this.tpPortSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetTpDst build() {
+                TransportPort tpPort = this.tpPortSet ? this.tpPort : parentMessage.tpPort;
+                if(tpPort == null)
+                    throw new NullPointerException("Property tpPort must not be null");
+
+                //
+                return new OFActionSetTpDstVer10(
+                    tpPort
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetTpDst.Builder {
+        // OF message fields
+        private boolean tpPortSet;
+        private TransportPort tpPort;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_TP_DST;
+    }
+
+    @Override
+    public TransportPort getTpPort() {
+        return tpPort;
+    }
+
+    @Override
+    public OFActionSetTpDst.Builder setTpPort(TransportPort tpPort) {
+        this.tpPort = tpPort;
+        this.tpPortSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetTpDst build() {
+            TransportPort tpPort = this.tpPortSet ? this.tpPort : DEFAULT_TP_PORT;
+            if(tpPort == null)
+                throw new NullPointerException("Property tpPort must not be null");
+
+
+            return new OFActionSetTpDstVer10(
+                    tpPort
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetTpDst> {
+        @Override
+        public OFActionSetTpDst readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 10
+            short type = bb.readShort();
+            if(type != (short) 0xa)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_TP_DST(10), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            TransportPort tpPort = TransportPort.read2Bytes(bb);
+            // pad: 2 bytes
+            bb.skipBytes(2);
+
+            OFActionSetTpDstVer10 actionSetTpDstVer10 = new OFActionSetTpDstVer10(
+                    tpPort
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetTpDstVer10);
+            return actionSetTpDstVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetTpDstVer10Funnel FUNNEL = new OFActionSetTpDstVer10Funnel();
+    static class OFActionSetTpDstVer10Funnel implements Funnel<OFActionSetTpDstVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetTpDstVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 10
+            sink.putShort((short) 0xa);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            message.tpPort.putTo(sink);
+            // skip pad (2 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetTpDstVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetTpDstVer10 message) {
+            // fixed value property type = 10
+            bb.writeShort((short) 0xa);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            message.tpPort.write2Bytes(bb);
+            // pad: 2 bytes
+            bb.writeZero(2);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetTpDstVer10(");
+        b.append("tpPort=").append(tpPort);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetTpDstVer10 other = (OFActionSetTpDstVer10) obj;
+
+        if (tpPort == null) {
+            if (other.tpPort != null)
+                return false;
+        } else if (!tpPort.equals(other.tpPort))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((tpPort == null) ? 0 : tpPort.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java
new file mode 100644
index 0000000..d69dfb8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetTpSrcVer10 implements OFActionSetTpSrc {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetTpSrcVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static TransportPort DEFAULT_TP_PORT = TransportPort.NONE;
+
+    // OF message fields
+    private final TransportPort tpPort;
+//
+    // Immutable default instance
+    final static OFActionSetTpSrcVer10 DEFAULT = new OFActionSetTpSrcVer10(
+        DEFAULT_TP_PORT
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetTpSrcVer10(TransportPort tpPort) {
+        this.tpPort = tpPort;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_TP_SRC;
+    }
+
+    @Override
+    public TransportPort getTpPort() {
+        return tpPort;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetTpSrc.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetTpSrc.Builder {
+        final OFActionSetTpSrcVer10 parentMessage;
+
+        // OF message fields
+        private boolean tpPortSet;
+        private TransportPort tpPort;
+
+        BuilderWithParent(OFActionSetTpSrcVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_TP_SRC;
+    }
+
+    @Override
+    public TransportPort getTpPort() {
+        return tpPort;
+    }
+
+    @Override
+    public OFActionSetTpSrc.Builder setTpPort(TransportPort tpPort) {
+        this.tpPort = tpPort;
+        this.tpPortSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetTpSrc build() {
+                TransportPort tpPort = this.tpPortSet ? this.tpPort : parentMessage.tpPort;
+                if(tpPort == null)
+                    throw new NullPointerException("Property tpPort must not be null");
+
+                //
+                return new OFActionSetTpSrcVer10(
+                    tpPort
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetTpSrc.Builder {
+        // OF message fields
+        private boolean tpPortSet;
+        private TransportPort tpPort;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_TP_SRC;
+    }
+
+    @Override
+    public TransportPort getTpPort() {
+        return tpPort;
+    }
+
+    @Override
+    public OFActionSetTpSrc.Builder setTpPort(TransportPort tpPort) {
+        this.tpPort = tpPort;
+        this.tpPortSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetTpSrc build() {
+            TransportPort tpPort = this.tpPortSet ? this.tpPort : DEFAULT_TP_PORT;
+            if(tpPort == null)
+                throw new NullPointerException("Property tpPort must not be null");
+
+
+            return new OFActionSetTpSrcVer10(
+                    tpPort
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetTpSrc> {
+        @Override
+        public OFActionSetTpSrc readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 9
+            short type = bb.readShort();
+            if(type != (short) 0x9)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_TP_SRC(9), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            TransportPort tpPort = TransportPort.read2Bytes(bb);
+            // pad: 2 bytes
+            bb.skipBytes(2);
+
+            OFActionSetTpSrcVer10 actionSetTpSrcVer10 = new OFActionSetTpSrcVer10(
+                    tpPort
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetTpSrcVer10);
+            return actionSetTpSrcVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetTpSrcVer10Funnel FUNNEL = new OFActionSetTpSrcVer10Funnel();
+    static class OFActionSetTpSrcVer10Funnel implements Funnel<OFActionSetTpSrcVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetTpSrcVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 9
+            sink.putShort((short) 0x9);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            message.tpPort.putTo(sink);
+            // skip pad (2 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetTpSrcVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetTpSrcVer10 message) {
+            // fixed value property type = 9
+            bb.writeShort((short) 0x9);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            message.tpPort.write2Bytes(bb);
+            // pad: 2 bytes
+            bb.writeZero(2);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetTpSrcVer10(");
+        b.append("tpPort=").append(tpPort);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetTpSrcVer10 other = (OFActionSetTpSrcVer10) obj;
+
+        if (tpPort == null) {
+            if (other.tpPort != null)
+                return false;
+        } else if (!tpPort.equals(other.tpPort))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((tpPort == null) ? 0 : tpPort.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java
new file mode 100644
index 0000000..b4005e0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetVlanPcpVer10 implements OFActionSetVlanPcp {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetVlanPcpVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static VlanPcp DEFAULT_VLAN_PCP = VlanPcp.NONE;
+
+    // OF message fields
+    private final VlanPcp vlanPcp;
+//
+    // Immutable default instance
+    final static OFActionSetVlanPcpVer10 DEFAULT = new OFActionSetVlanPcpVer10(
+        DEFAULT_VLAN_PCP
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetVlanPcpVer10(VlanPcp vlanPcp) {
+        this.vlanPcp = vlanPcp;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_VLAN_PCP;
+    }
+
+    @Override
+    public VlanPcp getVlanPcp() {
+        return vlanPcp;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetVlanPcp.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetVlanPcp.Builder {
+        final OFActionSetVlanPcpVer10 parentMessage;
+
+        // OF message fields
+        private boolean vlanPcpSet;
+        private VlanPcp vlanPcp;
+
+        BuilderWithParent(OFActionSetVlanPcpVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_VLAN_PCP;
+    }
+
+    @Override
+    public VlanPcp getVlanPcp() {
+        return vlanPcp;
+    }
+
+    @Override
+    public OFActionSetVlanPcp.Builder setVlanPcp(VlanPcp vlanPcp) {
+        this.vlanPcp = vlanPcp;
+        this.vlanPcpSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetVlanPcp build() {
+                VlanPcp vlanPcp = this.vlanPcpSet ? this.vlanPcp : parentMessage.vlanPcp;
+                if(vlanPcp == null)
+                    throw new NullPointerException("Property vlanPcp must not be null");
+
+                //
+                return new OFActionSetVlanPcpVer10(
+                    vlanPcp
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetVlanPcp.Builder {
+        // OF message fields
+        private boolean vlanPcpSet;
+        private VlanPcp vlanPcp;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_VLAN_PCP;
+    }
+
+    @Override
+    public VlanPcp getVlanPcp() {
+        return vlanPcp;
+    }
+
+    @Override
+    public OFActionSetVlanPcp.Builder setVlanPcp(VlanPcp vlanPcp) {
+        this.vlanPcp = vlanPcp;
+        this.vlanPcpSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetVlanPcp build() {
+            VlanPcp vlanPcp = this.vlanPcpSet ? this.vlanPcp : DEFAULT_VLAN_PCP;
+            if(vlanPcp == null)
+                throw new NullPointerException("Property vlanPcp must not be null");
+
+
+            return new OFActionSetVlanPcpVer10(
+                    vlanPcp
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetVlanPcp> {
+        @Override
+        public OFActionSetVlanPcp readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 2
+            short type = bb.readShort();
+            if(type != (short) 0x2)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_VLAN_PCP(2), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            VlanPcp vlanPcp = VlanPcp.readByte(bb);
+            // pad: 3 bytes
+            bb.skipBytes(3);
+
+            OFActionSetVlanPcpVer10 actionSetVlanPcpVer10 = new OFActionSetVlanPcpVer10(
+                    vlanPcp
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetVlanPcpVer10);
+            return actionSetVlanPcpVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetVlanPcpVer10Funnel FUNNEL = new OFActionSetVlanPcpVer10Funnel();
+    static class OFActionSetVlanPcpVer10Funnel implements Funnel<OFActionSetVlanPcpVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetVlanPcpVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 2
+            sink.putShort((short) 0x2);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            message.vlanPcp.putTo(sink);
+            // skip pad (3 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetVlanPcpVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetVlanPcpVer10 message) {
+            // fixed value property type = 2
+            bb.writeShort((short) 0x2);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            message.vlanPcp.writeByte(bb);
+            // pad: 3 bytes
+            bb.writeZero(3);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetVlanPcpVer10(");
+        b.append("vlanPcp=").append(vlanPcp);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetVlanPcpVer10 other = (OFActionSetVlanPcpVer10) obj;
+
+        if (vlanPcp == null) {
+            if (other.vlanPcp != null)
+                return false;
+        } else if (!vlanPcp.equals(other.vlanPcp))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((vlanPcp == null) ? 0 : vlanPcp.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java
new file mode 100644
index 0000000..f63f283
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetVlanVidVer10 implements OFActionSetVlanVid {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionSetVlanVidVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static VlanVid DEFAULT_VLAN_VID = VlanVid.ZERO;
+
+    // OF message fields
+    private final VlanVid vlanVid;
+//
+    // Immutable default instance
+    final static OFActionSetVlanVidVer10 DEFAULT = new OFActionSetVlanVidVer10(
+        DEFAULT_VLAN_VID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFActionSetVlanVidVer10(VlanVid vlanVid) {
+        this.vlanVid = vlanVid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_VLAN_VID;
+    }
+
+    @Override
+    public VlanVid getVlanVid() {
+        return vlanVid;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFActionSetVlanVid.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFActionSetVlanVid.Builder {
+        final OFActionSetVlanVidVer10 parentMessage;
+
+        // OF message fields
+        private boolean vlanVidSet;
+        private VlanVid vlanVid;
+
+        BuilderWithParent(OFActionSetVlanVidVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_VLAN_VID;
+    }
+
+    @Override
+    public VlanVid getVlanVid() {
+        return vlanVid;
+    }
+
+    @Override
+    public OFActionSetVlanVid.Builder setVlanVid(VlanVid vlanVid) {
+        this.vlanVid = vlanVid;
+        this.vlanVidSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFActionSetVlanVid build() {
+                VlanVid vlanVid = this.vlanVidSet ? this.vlanVid : parentMessage.vlanVid;
+                if(vlanVid == null)
+                    throw new NullPointerException("Property vlanVid must not be null");
+
+                //
+                return new OFActionSetVlanVidVer10(
+                    vlanVid
+                );
+        }
+
+    }
+
+    static class Builder implements OFActionSetVlanVid.Builder {
+        // OF message fields
+        private boolean vlanVidSet;
+        private VlanVid vlanVid;
+
+    @Override
+    public OFActionType getType() {
+        return OFActionType.SET_VLAN_VID;
+    }
+
+    @Override
+    public VlanVid getVlanVid() {
+        return vlanVid;
+    }
+
+    @Override
+    public OFActionSetVlanVid.Builder setVlanVid(VlanVid vlanVid) {
+        this.vlanVid = vlanVid;
+        this.vlanVidSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFActionSetVlanVid build() {
+            VlanVid vlanVid = this.vlanVidSet ? this.vlanVid : DEFAULT_VLAN_VID;
+            if(vlanVid == null)
+                throw new NullPointerException("Property vlanVid must not be null");
+
+
+            return new OFActionSetVlanVidVer10(
+                    vlanVid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionSetVlanVid> {
+        @Override
+        public OFActionSetVlanVid readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 1
+            short type = bb.readShort();
+            if(type != (short) 0x1)
+                throw new OFParseError("Wrong type: Expected=OFActionType.SET_VLAN_VID(1), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            VlanVid vlanVid = VlanVid.read2Bytes(bb);
+            // pad: 2 bytes
+            bb.skipBytes(2);
+
+            OFActionSetVlanVidVer10 actionSetVlanVidVer10 = new OFActionSetVlanVidVer10(
+                    vlanVid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", actionSetVlanVidVer10);
+            return actionSetVlanVidVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionSetVlanVidVer10Funnel FUNNEL = new OFActionSetVlanVidVer10Funnel();
+    static class OFActionSetVlanVidVer10Funnel implements Funnel<OFActionSetVlanVidVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionSetVlanVidVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 1
+            sink.putShort((short) 0x1);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            message.vlanVid.putTo(sink);
+            // skip pad (2 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionSetVlanVidVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionSetVlanVidVer10 message) {
+            // fixed value property type = 1
+            bb.writeShort((short) 0x1);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            message.vlanVid.write2Bytes(bb);
+            // pad: 2 bytes
+            bb.writeZero(2);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionSetVlanVidVer10(");
+        b.append("vlanVid=").append(vlanVid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFActionSetVlanVidVer10 other = (OFActionSetVlanVidVer10) obj;
+
+        if (vlanVid == null) {
+            if (other.vlanVid != null)
+                return false;
+        } else if (!vlanVid.equals(other.vlanVid))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((vlanVid == null) ? 0 : vlanVid.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java
new file mode 100644
index 0000000..1314c1a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java
@@ -0,0 +1,161 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionStripVlanVer10 implements OFActionStripVlan {
+    private static final Logger logger = LoggerFactory.getLogger(OFActionStripVlanVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+
+    // OF message fields
+//
+    // Immutable default instance
+    final static OFActionStripVlanVer10 DEFAULT = new OFActionStripVlanVer10(
+
+    );
+
+    final static OFActionStripVlanVer10 INSTANCE = new OFActionStripVlanVer10();
+    // private empty constructor - use shared instance!
+    private OFActionStripVlanVer10() {
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFActionType getType() {
+        return OFActionType.STRIP_VLAN;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    // no data members - do not support builder
+    public OFActionStripVlan.Builder createBuilder() {
+        throw new UnsupportedOperationException("OFActionStripVlanVer10 has no mutable properties -- builder unneeded");
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFActionStripVlan> {
+        @Override
+        public OFActionStripVlan readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 3
+            short type = bb.readShort();
+            if(type != (short) 0x3)
+                throw new OFParseError("Wrong type: Expected=OFActionType.STRIP_VLAN(3), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            // pad: 4 bytes
+            bb.skipBytes(4);
+
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - returning shared instance={}", INSTANCE);
+            return INSTANCE;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFActionStripVlanVer10Funnel FUNNEL = new OFActionStripVlanVer10Funnel();
+    static class OFActionStripVlanVer10Funnel implements Funnel<OFActionStripVlanVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFActionStripVlanVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 3
+            sink.putShort((short) 0x3);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            // skip pad (4 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFActionStripVlanVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFActionStripVlanVer10 message) {
+            // fixed value property type = 3
+            bb.writeShort((short) 0x3);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            // pad: 4 bytes
+            bb.writeZero(4);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFActionStripVlanVer10(");
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = 1;
+
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java
new file mode 100644
index 0000000..e094760
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java
@@ -0,0 +1,129 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFActionType;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFActionTypeSerializerVer10 {
+
+    public final static short OUTPUT_VAL = (short) 0x0;
+    public final static short SET_VLAN_VID_VAL = (short) 0x1;
+    public final static short SET_VLAN_PCP_VAL = (short) 0x2;
+    public final static short STRIP_VLAN_VAL = (short) 0x3;
+    public final static short SET_DL_SRC_VAL = (short) 0x4;
+    public final static short SET_DL_DST_VAL = (short) 0x5;
+    public final static short SET_NW_SRC_VAL = (short) 0x6;
+    public final static short SET_NW_DST_VAL = (short) 0x7;
+    public final static short SET_NW_TOS_VAL = (short) 0x8;
+    public final static short SET_TP_SRC_VAL = (short) 0x9;
+    public final static short SET_TP_DST_VAL = (short) 0xa;
+    public final static short ENQUEUE_VAL = (short) 0xb;
+    public final static short EXPERIMENTER_VAL = (short) 0xffff;
+
+    public static OFActionType readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFActionType e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFActionType e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFActionType ofWireValue(short val) {
+        switch(val) {
+            case OUTPUT_VAL:
+                return OFActionType.OUTPUT;
+            case SET_VLAN_VID_VAL:
+                return OFActionType.SET_VLAN_VID;
+            case SET_VLAN_PCP_VAL:
+                return OFActionType.SET_VLAN_PCP;
+            case STRIP_VLAN_VAL:
+                return OFActionType.STRIP_VLAN;
+            case SET_DL_SRC_VAL:
+                return OFActionType.SET_DL_SRC;
+            case SET_DL_DST_VAL:
+                return OFActionType.SET_DL_DST;
+            case SET_NW_SRC_VAL:
+                return OFActionType.SET_NW_SRC;
+            case SET_NW_DST_VAL:
+                return OFActionType.SET_NW_DST;
+            case SET_NW_TOS_VAL:
+                return OFActionType.SET_NW_TOS;
+            case SET_TP_SRC_VAL:
+                return OFActionType.SET_TP_SRC;
+            case SET_TP_DST_VAL:
+                return OFActionType.SET_TP_DST;
+            case ENQUEUE_VAL:
+                return OFActionType.ENQUEUE;
+            case EXPERIMENTER_VAL:
+                return OFActionType.EXPERIMENTER;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFActionType e) {
+        switch(e) {
+            case OUTPUT:
+                return OUTPUT_VAL;
+            case SET_VLAN_VID:
+                return SET_VLAN_VID_VAL;
+            case SET_VLAN_PCP:
+                return SET_VLAN_PCP_VAL;
+            case STRIP_VLAN:
+                return STRIP_VLAN_VAL;
+            case SET_DL_SRC:
+                return SET_DL_SRC_VAL;
+            case SET_DL_DST:
+                return SET_DL_DST_VAL;
+            case SET_NW_SRC:
+                return SET_NW_SRC_VAL;
+            case SET_NW_DST:
+                return SET_NW_DST_VAL;
+            case SET_NW_TOS:
+                return SET_NW_TOS_VAL;
+            case SET_TP_SRC:
+                return SET_TP_SRC_VAL;
+            case SET_TP_DST:
+                return SET_TP_DST_VAL;
+            case ENQUEUE:
+                return ENQUEUE_VAL;
+            case EXPERIMENTER:
+                return EXPERIMENTER_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFActionType in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java
new file mode 100644
index 0000000..9917dcd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java
@@ -0,0 +1,90 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+import java.util.Set;
+
+abstract class OFActionVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 8;
+
+
+    public final static OFActionVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFAction> {
+        @Override
+        public OFAction readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            short type = bb.readShort();
+            bb.readerIndex(start);
+            switch(type) {
+               case (short) 0xffff:
+                   // discriminator value OFActionType.EXPERIMENTER=65535 for class OFActionExperimenterVer10
+                   return OFActionExperimenterVer10.READER.readFrom(bb);
+               case (short) 0xb:
+                   // discriminator value OFActionType.ENQUEUE=11 for class OFActionEnqueueVer10
+                   return OFActionEnqueueVer10.READER.readFrom(bb);
+               case (short) 0x0:
+                   // discriminator value OFActionType.OUTPUT=0 for class OFActionOutputVer10
+                   return OFActionOutputVer10.READER.readFrom(bb);
+               case (short) 0x5:
+                   // discriminator value OFActionType.SET_DL_DST=5 for class OFActionSetDlDstVer10
+                   return OFActionSetDlDstVer10.READER.readFrom(bb);
+               case (short) 0x4:
+                   // discriminator value OFActionType.SET_DL_SRC=4 for class OFActionSetDlSrcVer10
+                   return OFActionSetDlSrcVer10.READER.readFrom(bb);
+               case (short) 0x7:
+                   // discriminator value OFActionType.SET_NW_DST=7 for class OFActionSetNwDstVer10
+                   return OFActionSetNwDstVer10.READER.readFrom(bb);
+               case (short) 0x6:
+                   // discriminator value OFActionType.SET_NW_SRC=6 for class OFActionSetNwSrcVer10
+                   return OFActionSetNwSrcVer10.READER.readFrom(bb);
+               case (short) 0x8:
+                   // discriminator value OFActionType.SET_NW_TOS=8 for class OFActionSetNwTosVer10
+                   return OFActionSetNwTosVer10.READER.readFrom(bb);
+               case (short) 0xa:
+                   // discriminator value OFActionType.SET_TP_DST=10 for class OFActionSetTpDstVer10
+                   return OFActionSetTpDstVer10.READER.readFrom(bb);
+               case (short) 0x9:
+                   // discriminator value OFActionType.SET_TP_SRC=9 for class OFActionSetTpSrcVer10
+                   return OFActionSetTpSrcVer10.READER.readFrom(bb);
+               case (short) 0x2:
+                   // discriminator value OFActionType.SET_VLAN_PCP=2 for class OFActionSetVlanPcpVer10
+                   return OFActionSetVlanPcpVer10.READER.readFrom(bb);
+               case (short) 0x1:
+                   // discriminator value OFActionType.SET_VLAN_VID=1 for class OFActionSetVlanVidVer10
+                   return OFActionSetVlanVidVer10.READER.readFrom(bb);
+               case (short) 0x3:
+                   // discriminator value OFActionType.STRIP_VLAN=3 for class OFActionStripVlanVer10
+                   return OFActionStripVlanVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator type of class OFActionVer10: " + type);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java
new file mode 100644
index 0000000..7bb203b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java
@@ -0,0 +1,282 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+
+public class OFActionsVer10 implements OFActions {
+    public final static OFActionsVer10 INSTANCE = new OFActionsVer10();
+
+
+
+
+    public OFActionBsnChecksum.Builder buildBsnChecksum() {
+        return new OFActionBsnChecksumVer10.Builder();
+    }
+    public OFActionBsnChecksum bsnChecksum(U128 checksum) {
+        return new OFActionBsnChecksumVer10(
+                checksum
+                    );
+    }
+
+    public OFActionBsnMirror.Builder buildBsnMirror() {
+        return new OFActionBsnMirrorVer10.Builder();
+    }
+
+    public OFActionBsnSetTunnelDst.Builder buildBsnSetTunnelDst() {
+        return new OFActionBsnSetTunnelDstVer10.Builder();
+    }
+    public OFActionBsnSetTunnelDst bsnSetTunnelDst(long dst) {
+        return new OFActionBsnSetTunnelDstVer10(
+                dst
+                    );
+    }
+
+    public OFActionEnqueue.Builder buildEnqueue() {
+        return new OFActionEnqueueVer10.Builder();
+    }
+    public OFActionEnqueue enqueue(OFPort port, long queueId) {
+        return new OFActionEnqueueVer10(
+                port,
+                      queueId
+                    );
+    }
+
+    public OFActionNiciraDecTtl niciraDecTtl() {
+        return OFActionNiciraDecTtlVer10.INSTANCE;
+    }
+
+    public OFActionOutput.Builder buildOutput() {
+        return new OFActionOutputVer10.Builder();
+    }
+    public OFActionOutput output(OFPort port, int maxLen) {
+        return new OFActionOutputVer10(
+                port,
+                      maxLen
+                    );
+    }
+
+    public OFActionSetDlDst.Builder buildSetDlDst() {
+        return new OFActionSetDlDstVer10.Builder();
+    }
+    public OFActionSetDlDst setDlDst(MacAddress dlAddr) {
+        return new OFActionSetDlDstVer10(
+                dlAddr
+                    );
+    }
+
+    public OFActionSetDlSrc.Builder buildSetDlSrc() {
+        return new OFActionSetDlSrcVer10.Builder();
+    }
+    public OFActionSetDlSrc setDlSrc(MacAddress dlAddr) {
+        return new OFActionSetDlSrcVer10(
+                dlAddr
+                    );
+    }
+
+    public OFActionSetNwDst.Builder buildSetNwDst() {
+        return new OFActionSetNwDstVer10.Builder();
+    }
+    public OFActionSetNwDst setNwDst(IPv4Address nwAddr) {
+        return new OFActionSetNwDstVer10(
+                nwAddr
+                    );
+    }
+
+    public OFActionSetNwSrc.Builder buildSetNwSrc() {
+        return new OFActionSetNwSrcVer10.Builder();
+    }
+    public OFActionSetNwSrc setNwSrc(IPv4Address nwAddr) {
+        return new OFActionSetNwSrcVer10(
+                nwAddr
+                    );
+    }
+
+    public OFActionSetNwTos.Builder buildSetNwTos() {
+        return new OFActionSetNwTosVer10.Builder();
+    }
+    public OFActionSetNwTos setNwTos(short nwTos) {
+        return new OFActionSetNwTosVer10(
+                nwTos
+                    );
+    }
+
+    public OFActionSetTpDst.Builder buildSetTpDst() {
+        return new OFActionSetTpDstVer10.Builder();
+    }
+    public OFActionSetTpDst setTpDst(TransportPort tpPort) {
+        return new OFActionSetTpDstVer10(
+                tpPort
+                    );
+    }
+
+    public OFActionSetTpSrc.Builder buildSetTpSrc() {
+        return new OFActionSetTpSrcVer10.Builder();
+    }
+    public OFActionSetTpSrc setTpSrc(TransportPort tpPort) {
+        return new OFActionSetTpSrcVer10(
+                tpPort
+                    );
+    }
+
+    public OFActionSetVlanPcp.Builder buildSetVlanPcp() {
+        return new OFActionSetVlanPcpVer10.Builder();
+    }
+    public OFActionSetVlanPcp setVlanPcp(VlanPcp vlanPcp) {
+        return new OFActionSetVlanPcpVer10(
+                vlanPcp
+                    );
+    }
+
+    public OFActionSetVlanVid.Builder buildSetVlanVid() {
+        return new OFActionSetVlanVidVer10.Builder();
+    }
+    public OFActionSetVlanVid setVlanVid(VlanVid vlanVid) {
+        return new OFActionSetVlanVidVer10(
+                vlanVid
+                    );
+    }
+
+    public OFActionStripVlan stripVlan() {
+        return OFActionStripVlanVer10.INSTANCE;
+    }
+
+    public OFActionCopyTtlIn copyTtlIn() {
+        throw new UnsupportedOperationException("OFActionCopyTtlIn not supported in version 1.0");
+    }
+
+    public OFActionCopyTtlOut copyTtlOut() {
+        throw new UnsupportedOperationException("OFActionCopyTtlOut not supported in version 1.0");
+    }
+
+    public OFActionDecMplsTtl decMplsTtl() {
+        throw new UnsupportedOperationException("OFActionDecMplsTtl not supported in version 1.0");
+    }
+
+    public OFActionDecNwTtl decNwTtl() {
+        throw new UnsupportedOperationException("OFActionDecNwTtl not supported in version 1.0");
+    }
+
+    public OFActionGroup.Builder buildGroup() {
+        throw new UnsupportedOperationException("OFActionGroup not supported in version 1.0");
+    }
+    public OFActionGroup group(OFGroup group) {
+        throw new UnsupportedOperationException("OFActionGroup not supported in version 1.0");
+    }
+
+    public OFActionPopMpls.Builder buildPopMpls() {
+        throw new UnsupportedOperationException("OFActionPopMpls not supported in version 1.0");
+    }
+    public OFActionPopMpls popMpls(EthType ethertype) {
+        throw new UnsupportedOperationException("OFActionPopMpls not supported in version 1.0");
+    }
+
+    public OFActionPopVlan popVlan() {
+        throw new UnsupportedOperationException("OFActionPopVlan not supported in version 1.0");
+    }
+
+    public OFActionPushMpls.Builder buildPushMpls() {
+        throw new UnsupportedOperationException("OFActionPushMpls not supported in version 1.0");
+    }
+    public OFActionPushMpls pushMpls(EthType ethertype) {
+        throw new UnsupportedOperationException("OFActionPushMpls not supported in version 1.0");
+    }
+
+    public OFActionPushVlan.Builder buildPushVlan() {
+        throw new UnsupportedOperationException("OFActionPushVlan not supported in version 1.0");
+    }
+    public OFActionPushVlan pushVlan(EthType ethertype) {
+        throw new UnsupportedOperationException("OFActionPushVlan not supported in version 1.0");
+    }
+
+    public OFActionSetMplsLabel.Builder buildSetMplsLabel() {
+        throw new UnsupportedOperationException("OFActionSetMplsLabel not supported in version 1.0");
+    }
+    public OFActionSetMplsLabel setMplsLabel(long mplsLabel) {
+        throw new UnsupportedOperationException("OFActionSetMplsLabel not supported in version 1.0");
+    }
+
+    public OFActionSetMplsTc.Builder buildSetMplsTc() {
+        throw new UnsupportedOperationException("OFActionSetMplsTc not supported in version 1.0");
+    }
+    public OFActionSetMplsTc setMplsTc(short mplsTc) {
+        throw new UnsupportedOperationException("OFActionSetMplsTc not supported in version 1.0");
+    }
+
+    public OFActionSetMplsTtl.Builder buildSetMplsTtl() {
+        throw new UnsupportedOperationException("OFActionSetMplsTtl not supported in version 1.0");
+    }
+    public OFActionSetMplsTtl setMplsTtl(short mplsTtl) {
+        throw new UnsupportedOperationException("OFActionSetMplsTtl not supported in version 1.0");
+    }
+
+    public OFActionSetNwEcn.Builder buildSetNwEcn() {
+        throw new UnsupportedOperationException("OFActionSetNwEcn not supported in version 1.0");
+    }
+    public OFActionSetNwEcn setNwEcn(IpEcn nwEcn) {
+        throw new UnsupportedOperationException("OFActionSetNwEcn not supported in version 1.0");
+    }
+
+    public OFActionSetNwTtl.Builder buildSetNwTtl() {
+        throw new UnsupportedOperationException("OFActionSetNwTtl not supported in version 1.0");
+    }
+    public OFActionSetNwTtl setNwTtl(short nwTtl) {
+        throw new UnsupportedOperationException("OFActionSetNwTtl not supported in version 1.0");
+    }
+
+    public OFActionSetQueue.Builder buildSetQueue() {
+        throw new UnsupportedOperationException("OFActionSetQueue not supported in version 1.0");
+    }
+    public OFActionSetQueue setQueue(long queueId) {
+        throw new UnsupportedOperationException("OFActionSetQueue not supported in version 1.0");
+    }
+
+    public OFActionSetField.Builder buildSetField() {
+        throw new UnsupportedOperationException("OFActionSetField not supported in version 1.0");
+    }
+    public OFActionSetField setField(OFOxm<?> field) {
+        throw new UnsupportedOperationException("OFActionSetField not supported in version 1.0");
+    }
+
+    public OFActionPopPbb popPbb() {
+        throw new UnsupportedOperationException("OFActionPopPbb not supported in version 1.0");
+    }
+
+    public OFActionPushPbb.Builder buildPushPbb() {
+        throw new UnsupportedOperationException("OFActionPushPbb not supported in version 1.0");
+    }
+    public OFActionPushPbb pushPbb(EthType ethertype) {
+        throw new UnsupportedOperationException("OFActionPushPbb not supported in version 1.0");
+    }
+
+    public OFMessageReader<OFAction> getReader() {
+        return OFActionVer10.READER;
+    }
+
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_10;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java
new file mode 100644
index 0000000..a30e829
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java
@@ -0,0 +1,506 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFAggregateStatsReplyVer10 implements OFAggregateStatsReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFAggregateStatsReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 36;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Set<OFStatsReplyFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsReplyFlags>of();
+        private final static U64 DEFAULT_PACKET_COUNT = U64.ZERO;
+        private final static U64 DEFAULT_BYTE_COUNT = U64.ZERO;
+        private final static long DEFAULT_FLOW_COUNT = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final Set<OFStatsReplyFlags> flags;
+    private final U64 packetCount;
+    private final U64 byteCount;
+    private final long flowCount;
+//
+    // Immutable default instance
+    final static OFAggregateStatsReplyVer10 DEFAULT = new OFAggregateStatsReplyVer10(
+        DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_PACKET_COUNT, DEFAULT_BYTE_COUNT, DEFAULT_FLOW_COUNT
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFAggregateStatsReplyVer10(long xid, Set<OFStatsReplyFlags> flags, U64 packetCount, U64 byteCount, long flowCount) {
+        this.xid = xid;
+        this.flags = flags;
+        this.packetCount = packetCount;
+        this.byteCount = byteCount;
+        this.flowCount = flowCount;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.AGGREGATE;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public long getFlowCount() {
+        return flowCount;
+    }
+
+
+
+    public OFAggregateStatsReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFAggregateStatsReply.Builder {
+        final OFAggregateStatsReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsReplyFlags> flags;
+        private boolean packetCountSet;
+        private U64 packetCount;
+        private boolean byteCountSet;
+        private U64 byteCount;
+        private boolean flowCountSet;
+        private long flowCount;
+
+        BuilderWithParent(OFAggregateStatsReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.AGGREGATE;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setPacketCount(U64 packetCount) {
+        this.packetCount = packetCount;
+        this.packetCountSet = true;
+        return this;
+    }
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setByteCount(U64 byteCount) {
+        this.byteCount = byteCount;
+        this.byteCountSet = true;
+        return this;
+    }
+    @Override
+    public long getFlowCount() {
+        return flowCount;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setFlowCount(long flowCount) {
+        this.flowCount = flowCount;
+        this.flowCountSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFAggregateStatsReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                U64 packetCount = this.packetCountSet ? this.packetCount : parentMessage.packetCount;
+                if(packetCount == null)
+                    throw new NullPointerException("Property packetCount must not be null");
+                U64 byteCount = this.byteCountSet ? this.byteCount : parentMessage.byteCount;
+                if(byteCount == null)
+                    throw new NullPointerException("Property byteCount must not be null");
+                long flowCount = this.flowCountSet ? this.flowCount : parentMessage.flowCount;
+
+                //
+                return new OFAggregateStatsReplyVer10(
+                    xid,
+                    flags,
+                    packetCount,
+                    byteCount,
+                    flowCount
+                );
+        }
+
+    }
+
+    static class Builder implements OFAggregateStatsReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsReplyFlags> flags;
+        private boolean packetCountSet;
+        private U64 packetCount;
+        private boolean byteCountSet;
+        private U64 byteCount;
+        private boolean flowCountSet;
+        private long flowCount;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.AGGREGATE;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setPacketCount(U64 packetCount) {
+        this.packetCount = packetCount;
+        this.packetCountSet = true;
+        return this;
+    }
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setByteCount(U64 byteCount) {
+        this.byteCount = byteCount;
+        this.byteCountSet = true;
+        return this;
+    }
+    @Override
+    public long getFlowCount() {
+        return flowCount;
+    }
+
+    @Override
+    public OFAggregateStatsReply.Builder setFlowCount(long flowCount) {
+        this.flowCount = flowCount;
+        this.flowCountSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFAggregateStatsReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            U64 packetCount = this.packetCountSet ? this.packetCount : DEFAULT_PACKET_COUNT;
+            if(packetCount == null)
+                throw new NullPointerException("Property packetCount must not be null");
+            U64 byteCount = this.byteCountSet ? this.byteCount : DEFAULT_BYTE_COUNT;
+            if(byteCount == null)
+                throw new NullPointerException("Property byteCount must not be null");
+            long flowCount = this.flowCountSet ? this.flowCount : DEFAULT_FLOW_COUNT;
+
+
+            return new OFAggregateStatsReplyVer10(
+                    xid,
+                    flags,
+                    packetCount,
+                    byteCount,
+                    flowCount
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFAggregateStatsReply> {
+        @Override
+        public OFAggregateStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 17
+            byte type = bb.readByte();
+            if(type != (byte) 0x11)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(17), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 36)
+                throw new OFParseError("Wrong length: Expected=36(36), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property statsType == 2
+            short statsType = bb.readShort();
+            if(statsType != (short) 0x2)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.AGGREGATE(2), got="+statsType);
+            Set<OFStatsReplyFlags> flags = OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+            U64 packetCount = U64.ofRaw(bb.readLong());
+            U64 byteCount = U64.ofRaw(bb.readLong());
+            long flowCount = U32.f(bb.readInt());
+            // pad: 4 bytes
+            bb.skipBytes(4);
+
+            OFAggregateStatsReplyVer10 aggregateStatsReplyVer10 = new OFAggregateStatsReplyVer10(
+                    xid,
+                      flags,
+                      packetCount,
+                      byteCount,
+                      flowCount
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", aggregateStatsReplyVer10);
+            return aggregateStatsReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFAggregateStatsReplyVer10Funnel FUNNEL = new OFAggregateStatsReplyVer10Funnel();
+    static class OFAggregateStatsReplyVer10Funnel implements Funnel<OFAggregateStatsReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFAggregateStatsReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 17
+            sink.putByte((byte) 0x11);
+            // fixed value property length = 36
+            sink.putShort((short) 0x24);
+            sink.putLong(message.xid);
+            // fixed value property statsType = 2
+            sink.putShort((short) 0x2);
+            OFStatsReplyFlagsSerializerVer10.putTo(message.flags, sink);
+            message.packetCount.putTo(sink);
+            message.byteCount.putTo(sink);
+            sink.putLong(message.flowCount);
+            // skip pad (4 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFAggregateStatsReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFAggregateStatsReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 17
+            bb.writeByte((byte) 0x11);
+            // fixed value property length = 36
+            bb.writeShort((short) 0x24);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property statsType = 2
+            bb.writeShort((short) 0x2);
+            OFStatsReplyFlagsSerializerVer10.writeTo(bb, message.flags);
+            bb.writeLong(message.packetCount.getValue());
+            bb.writeLong(message.byteCount.getValue());
+            bb.writeInt(U32.t(message.flowCount));
+            // pad: 4 bytes
+            bb.writeZero(4);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFAggregateStatsReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("packetCount=").append(packetCount);
+        b.append(", ");
+        b.append("byteCount=").append(byteCount);
+        b.append(", ");
+        b.append("flowCount=").append(flowCount);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFAggregateStatsReplyVer10 other = (OFAggregateStatsReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (packetCount == null) {
+            if (other.packetCount != null)
+                return false;
+        } else if (!packetCount.equals(other.packetCount))
+            return false;
+        if (byteCount == null) {
+            if (other.byteCount != null)
+                return false;
+        } else if (!byteCount.equals(other.byteCount))
+            return false;
+        if( flowCount != other.flowCount)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((packetCount == null) ? 0 : packetCount.hashCode());
+        result = prime * result + ((byteCount == null) ? 0 : byteCount.hashCode());
+        result = prime *  (int) (flowCount ^ (flowCount >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java
new file mode 100644
index 0000000..4b36011
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java
@@ -0,0 +1,582 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFAggregateStatsRequestVer10 implements OFAggregateStatsRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFAggregateStatsRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 56;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Set<OFStatsRequestFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsRequestFlags>of();
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static TableId DEFAULT_TABLE_ID = TableId.ALL;
+        private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+
+    // OF message fields
+    private final long xid;
+    private final Set<OFStatsRequestFlags> flags;
+    private final Match match;
+    private final TableId tableId;
+    private final OFPort outPort;
+//
+    // Immutable default instance
+    final static OFAggregateStatsRequestVer10 DEFAULT = new OFAggregateStatsRequestVer10(
+        DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_MATCH, DEFAULT_TABLE_ID, DEFAULT_OUT_PORT
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFAggregateStatsRequestVer10(long xid, Set<OFStatsRequestFlags> flags, Match match, TableId tableId, OFPort outPort) {
+        this.xid = xid;
+        this.flags = flags;
+        this.match = match;
+        this.tableId = tableId;
+        this.outPort = outPort;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.AGGREGATE;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public U64 getCookie()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+
+
+    public OFAggregateStatsRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFAggregateStatsRequest.Builder {
+        final OFAggregateStatsRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsRequestFlags> flags;
+        private boolean matchSet;
+        private Match match;
+        private boolean tableIdSet;
+        private TableId tableId;
+        private boolean outPortSet;
+        private OFPort outPort;
+
+        BuilderWithParent(OFAggregateStatsRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.AGGREGATE;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setTableId(TableId tableId) {
+        this.tableId = tableId;
+        this.tableIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookie()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setCookie(U64 cookie) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFAggregateStatsRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                TableId tableId = this.tableIdSet ? this.tableId : parentMessage.tableId;
+                if(tableId == null)
+                    throw new NullPointerException("Property tableId must not be null");
+                OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+                if(outPort == null)
+                    throw new NullPointerException("Property outPort must not be null");
+
+                //
+                return new OFAggregateStatsRequestVer10(
+                    xid,
+                    flags,
+                    match,
+                    tableId,
+                    outPort
+                );
+        }
+
+    }
+
+    static class Builder implements OFAggregateStatsRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsRequestFlags> flags;
+        private boolean matchSet;
+        private Match match;
+        private boolean tableIdSet;
+        private TableId tableId;
+        private boolean outPortSet;
+        private OFPort outPort;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.AGGREGATE;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setTableId(TableId tableId) {
+        this.tableId = tableId;
+        this.tableIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookie()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setCookie(U64 cookie) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFAggregateStatsRequest.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFAggregateStatsRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            TableId tableId = this.tableIdSet ? this.tableId : DEFAULT_TABLE_ID;
+            if(tableId == null)
+                throw new NullPointerException("Property tableId must not be null");
+            OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+            if(outPort == null)
+                throw new NullPointerException("Property outPort must not be null");
+
+
+            return new OFAggregateStatsRequestVer10(
+                    xid,
+                    flags,
+                    match,
+                    tableId,
+                    outPort
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFAggregateStatsRequest> {
+        @Override
+        public OFAggregateStatsRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 16
+            byte type = bb.readByte();
+            if(type != (byte) 0x10)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REQUEST(16), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 56)
+                throw new OFParseError("Wrong length: Expected=56(56), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property statsType == 2
+            short statsType = bb.readShort();
+            if(statsType != (short) 0x2)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.AGGREGATE(2), got="+statsType);
+            Set<OFStatsRequestFlags> flags = OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            TableId tableId = TableId.readByte(bb);
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            OFPort outPort = OFPort.read2Bytes(bb);
+
+            OFAggregateStatsRequestVer10 aggregateStatsRequestVer10 = new OFAggregateStatsRequestVer10(
+                    xid,
+                      flags,
+                      match,
+                      tableId,
+                      outPort
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", aggregateStatsRequestVer10);
+            return aggregateStatsRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFAggregateStatsRequestVer10Funnel FUNNEL = new OFAggregateStatsRequestVer10Funnel();
+    static class OFAggregateStatsRequestVer10Funnel implements Funnel<OFAggregateStatsRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFAggregateStatsRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 16
+            sink.putByte((byte) 0x10);
+            // fixed value property length = 56
+            sink.putShort((short) 0x38);
+            sink.putLong(message.xid);
+            // fixed value property statsType = 2
+            sink.putShort((short) 0x2);
+            OFStatsRequestFlagsSerializerVer10.putTo(message.flags, sink);
+            message.match.putTo(sink);
+            message.tableId.putTo(sink);
+            // skip pad (1 bytes)
+            message.outPort.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFAggregateStatsRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFAggregateStatsRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 16
+            bb.writeByte((byte) 0x10);
+            // fixed value property length = 56
+            bb.writeShort((short) 0x38);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property statsType = 2
+            bb.writeShort((short) 0x2);
+            OFStatsRequestFlagsSerializerVer10.writeTo(bb, message.flags);
+            message.match.writeTo(bb);
+            message.tableId.writeByte(bb);
+            // pad: 1 bytes
+            bb.writeZero(1);
+            message.outPort.write2Bytes(bb);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFAggregateStatsRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("tableId=").append(tableId);
+        b.append(", ");
+        b.append("outPort=").append(outPort);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFAggregateStatsRequestVer10 other = (OFAggregateStatsRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (tableId == null) {
+            if (other.tableId != null)
+                return false;
+        } else if (!tableId.equals(other.tableId))
+            return false;
+        if (outPort == null) {
+            if (other.outPort != null)
+                return false;
+        } else if (!outPort.equals(other.outPort))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((tableId == null) ? 0 : tableId.hashCode());
+        result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java
new file mode 100644
index 0000000..b1f67c7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java
@@ -0,0 +1,109 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBadActionCode;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBadActionCodeSerializerVer10 {
+
+    public final static short BAD_TYPE_VAL = (short) 0x0;
+    public final static short BAD_LEN_VAL = (short) 0x1;
+    public final static short BAD_EXPERIMENTER_VAL = (short) 0x2;
+    public final static short BAD_EXPERIMENTER_TYPE_VAL = (short) 0x3;
+    public final static short BAD_OUT_PORT_VAL = (short) 0x4;
+    public final static short BAD_ARGUMENT_VAL = (short) 0x5;
+    public final static short EPERM_VAL = (short) 0x6;
+    public final static short TOO_MANY_VAL = (short) 0x7;
+    public final static short BAD_QUEUE_VAL = (short) 0x8;
+
+    public static OFBadActionCode readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFBadActionCode e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFBadActionCode e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFBadActionCode ofWireValue(short val) {
+        switch(val) {
+            case BAD_TYPE_VAL:
+                return OFBadActionCode.BAD_TYPE;
+            case BAD_LEN_VAL:
+                return OFBadActionCode.BAD_LEN;
+            case BAD_EXPERIMENTER_VAL:
+                return OFBadActionCode.BAD_EXPERIMENTER;
+            case BAD_EXPERIMENTER_TYPE_VAL:
+                return OFBadActionCode.BAD_EXPERIMENTER_TYPE;
+            case BAD_OUT_PORT_VAL:
+                return OFBadActionCode.BAD_OUT_PORT;
+            case BAD_ARGUMENT_VAL:
+                return OFBadActionCode.BAD_ARGUMENT;
+            case EPERM_VAL:
+                return OFBadActionCode.EPERM;
+            case TOO_MANY_VAL:
+                return OFBadActionCode.TOO_MANY;
+            case BAD_QUEUE_VAL:
+                return OFBadActionCode.BAD_QUEUE;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFBadActionCode in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFBadActionCode e) {
+        switch(e) {
+            case BAD_TYPE:
+                return BAD_TYPE_VAL;
+            case BAD_LEN:
+                return BAD_LEN_VAL;
+            case BAD_EXPERIMENTER:
+                return BAD_EXPERIMENTER_VAL;
+            case BAD_EXPERIMENTER_TYPE:
+                return BAD_EXPERIMENTER_TYPE_VAL;
+            case BAD_OUT_PORT:
+                return BAD_OUT_PORT_VAL;
+            case BAD_ARGUMENT:
+                return BAD_ARGUMENT_VAL;
+            case EPERM:
+                return EPERM_VAL;
+            case TOO_MANY:
+                return TOO_MANY_VAL;
+            case BAD_QUEUE:
+                return BAD_QUEUE_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFBadActionCode in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java
new file mode 100644
index 0000000..aae9003
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java
@@ -0,0 +1,400 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBadActionErrorMsgVer10 implements OFBadActionErrorMsg {
+    private static final Logger logger = LoggerFactory.getLogger(OFBadActionErrorMsgVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 12;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static OFErrorCauseData DEFAULT_DATA = OFErrorCauseData.NONE;
+
+    // OF message fields
+    private final long xid;
+    private final OFBadActionCode code;
+    private final OFErrorCauseData data;
+//
+
+    // package private constructor - used by readers, builders, and factory
+    OFBadActionErrorMsgVer10(long xid, OFBadActionCode code, OFErrorCauseData data) {
+        this.xid = xid;
+        this.code = code;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.BAD_ACTION;
+    }
+
+    @Override
+    public OFBadActionCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+
+
+    public OFBadActionErrorMsg.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBadActionErrorMsg.Builder {
+        final OFBadActionErrorMsgVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFBadActionCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+        BuilderWithParent(OFBadActionErrorMsgVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBadActionErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.BAD_ACTION;
+    }
+
+    @Override
+    public OFBadActionCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFBadActionErrorMsg.Builder setCode(OFBadActionCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFBadActionErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBadActionErrorMsg build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                OFBadActionCode code = this.codeSet ? this.code : parentMessage.code;
+                if(code == null)
+                    throw new NullPointerException("Property code must not be null");
+                OFErrorCauseData data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFBadActionErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFBadActionErrorMsg.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFBadActionCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBadActionErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.BAD_ACTION;
+    }
+
+    @Override
+    public OFBadActionCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFBadActionErrorMsg.Builder setCode(OFBadActionCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFBadActionErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBadActionErrorMsg build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            if(!this.codeSet)
+                throw new IllegalStateException("Property code doesn't have default value -- must be set");
+            if(code == null)
+                throw new NullPointerException("Property code must not be null");
+            OFErrorCauseData data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFBadActionErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBadActionErrorMsg> {
+        @Override
+        public OFBadActionErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 1
+            byte type = bb.readByte();
+            if(type != (byte) 0x1)
+                throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property errType == 2
+            short errType = bb.readShort();
+            if(errType != (short) 0x2)
+                throw new OFParseError("Wrong errType: Expected=OFErrorType.BAD_ACTION(2), got="+errType);
+            OFBadActionCode code = OFBadActionCodeSerializerVer10.readFrom(bb);
+            OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10);
+
+            OFBadActionErrorMsgVer10 badActionErrorMsgVer10 = new OFBadActionErrorMsgVer10(
+                    xid,
+                      code,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", badActionErrorMsgVer10);
+            return badActionErrorMsgVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBadActionErrorMsgVer10Funnel FUNNEL = new OFBadActionErrorMsgVer10Funnel();
+    static class OFBadActionErrorMsgVer10Funnel implements Funnel<OFBadActionErrorMsgVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBadActionErrorMsgVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 1
+            sink.putByte((byte) 0x1);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property errType = 2
+            sink.putShort((short) 0x2);
+            OFBadActionCodeSerializerVer10.putTo(message.code, sink);
+            message.data.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBadActionErrorMsgVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBadActionErrorMsgVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 1
+            bb.writeByte((byte) 0x1);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property errType = 2
+            bb.writeShort((short) 0x2);
+            OFBadActionCodeSerializerVer10.writeTo(bb, message.code);
+            message.data.writeTo(bb);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBadActionErrorMsgVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("code=").append(code);
+        b.append(", ");
+        b.append("data=").append(data);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBadActionErrorMsgVer10 other = (OFBadActionErrorMsgVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (code == null) {
+            if (other.code != null)
+                return false;
+        } else if (!code.equals(other.code))
+            return false;
+        if (data == null) {
+            if (other.data != null)
+                return false;
+        } else if (!data.equals(other.data))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((code == null) ? 0 : code.hashCode());
+        result = prime * result + ((data == null) ? 0 : data.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java
new file mode 100644
index 0000000..fc11c91
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java
@@ -0,0 +1,109 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBadRequestCode;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBadRequestCodeSerializerVer10 {
+
+    public final static short BAD_VERSION_VAL = (short) 0x0;
+    public final static short BAD_TYPE_VAL = (short) 0x1;
+    public final static short BAD_STAT_VAL = (short) 0x2;
+    public final static short BAD_EXPERIMENTER_VAL = (short) 0x3;
+    public final static short BAD_SUBTYPE_VAL = (short) 0x4;
+    public final static short EPERM_VAL = (short) 0x5;
+    public final static short BAD_LEN_VAL = (short) 0x6;
+    public final static short BUFFER_EMPTY_VAL = (short) 0x7;
+    public final static short BUFFER_UNKNOWN_VAL = (short) 0x8;
+
+    public static OFBadRequestCode readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFBadRequestCode e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFBadRequestCode e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFBadRequestCode ofWireValue(short val) {
+        switch(val) {
+            case BAD_VERSION_VAL:
+                return OFBadRequestCode.BAD_VERSION;
+            case BAD_TYPE_VAL:
+                return OFBadRequestCode.BAD_TYPE;
+            case BAD_STAT_VAL:
+                return OFBadRequestCode.BAD_STAT;
+            case BAD_EXPERIMENTER_VAL:
+                return OFBadRequestCode.BAD_EXPERIMENTER;
+            case BAD_SUBTYPE_VAL:
+                return OFBadRequestCode.BAD_SUBTYPE;
+            case EPERM_VAL:
+                return OFBadRequestCode.EPERM;
+            case BAD_LEN_VAL:
+                return OFBadRequestCode.BAD_LEN;
+            case BUFFER_EMPTY_VAL:
+                return OFBadRequestCode.BUFFER_EMPTY;
+            case BUFFER_UNKNOWN_VAL:
+                return OFBadRequestCode.BUFFER_UNKNOWN;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFBadRequestCode in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFBadRequestCode e) {
+        switch(e) {
+            case BAD_VERSION:
+                return BAD_VERSION_VAL;
+            case BAD_TYPE:
+                return BAD_TYPE_VAL;
+            case BAD_STAT:
+                return BAD_STAT_VAL;
+            case BAD_EXPERIMENTER:
+                return BAD_EXPERIMENTER_VAL;
+            case BAD_SUBTYPE:
+                return BAD_SUBTYPE_VAL;
+            case EPERM:
+                return EPERM_VAL;
+            case BAD_LEN:
+                return BAD_LEN_VAL;
+            case BUFFER_EMPTY:
+                return BUFFER_EMPTY_VAL;
+            case BUFFER_UNKNOWN:
+                return BUFFER_UNKNOWN_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFBadRequestCode in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java
new file mode 100644
index 0000000..3d0c19d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java
@@ -0,0 +1,400 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBadRequestErrorMsgVer10 implements OFBadRequestErrorMsg {
+    private static final Logger logger = LoggerFactory.getLogger(OFBadRequestErrorMsgVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 12;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static OFErrorCauseData DEFAULT_DATA = OFErrorCauseData.NONE;
+
+    // OF message fields
+    private final long xid;
+    private final OFBadRequestCode code;
+    private final OFErrorCauseData data;
+//
+
+    // package private constructor - used by readers, builders, and factory
+    OFBadRequestErrorMsgVer10(long xid, OFBadRequestCode code, OFErrorCauseData data) {
+        this.xid = xid;
+        this.code = code;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.BAD_REQUEST;
+    }
+
+    @Override
+    public OFBadRequestCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+
+
+    public OFBadRequestErrorMsg.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBadRequestErrorMsg.Builder {
+        final OFBadRequestErrorMsgVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFBadRequestCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+        BuilderWithParent(OFBadRequestErrorMsgVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBadRequestErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.BAD_REQUEST;
+    }
+
+    @Override
+    public OFBadRequestCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFBadRequestErrorMsg.Builder setCode(OFBadRequestCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFBadRequestErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBadRequestErrorMsg build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                OFBadRequestCode code = this.codeSet ? this.code : parentMessage.code;
+                if(code == null)
+                    throw new NullPointerException("Property code must not be null");
+                OFErrorCauseData data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFBadRequestErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFBadRequestErrorMsg.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFBadRequestCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBadRequestErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.BAD_REQUEST;
+    }
+
+    @Override
+    public OFBadRequestCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFBadRequestErrorMsg.Builder setCode(OFBadRequestCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFBadRequestErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBadRequestErrorMsg build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            if(!this.codeSet)
+                throw new IllegalStateException("Property code doesn't have default value -- must be set");
+            if(code == null)
+                throw new NullPointerException("Property code must not be null");
+            OFErrorCauseData data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFBadRequestErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBadRequestErrorMsg> {
+        @Override
+        public OFBadRequestErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 1
+            byte type = bb.readByte();
+            if(type != (byte) 0x1)
+                throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property errType == 1
+            short errType = bb.readShort();
+            if(errType != (short) 0x1)
+                throw new OFParseError("Wrong errType: Expected=OFErrorType.BAD_REQUEST(1), got="+errType);
+            OFBadRequestCode code = OFBadRequestCodeSerializerVer10.readFrom(bb);
+            OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10);
+
+            OFBadRequestErrorMsgVer10 badRequestErrorMsgVer10 = new OFBadRequestErrorMsgVer10(
+                    xid,
+                      code,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", badRequestErrorMsgVer10);
+            return badRequestErrorMsgVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBadRequestErrorMsgVer10Funnel FUNNEL = new OFBadRequestErrorMsgVer10Funnel();
+    static class OFBadRequestErrorMsgVer10Funnel implements Funnel<OFBadRequestErrorMsgVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBadRequestErrorMsgVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 1
+            sink.putByte((byte) 0x1);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property errType = 1
+            sink.putShort((short) 0x1);
+            OFBadRequestCodeSerializerVer10.putTo(message.code, sink);
+            message.data.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBadRequestErrorMsgVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBadRequestErrorMsgVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 1
+            bb.writeByte((byte) 0x1);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property errType = 1
+            bb.writeShort((short) 0x1);
+            OFBadRequestCodeSerializerVer10.writeTo(bb, message.code);
+            message.data.writeTo(bb);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBadRequestErrorMsgVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("code=").append(code);
+        b.append(", ");
+        b.append("data=").append(data);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBadRequestErrorMsgVer10 other = (OFBadRequestErrorMsgVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (code == null) {
+            if (other.code != null)
+                return false;
+        } else if (!code.equals(other.code))
+            return false;
+        if (data == null) {
+            if (other.data != null)
+                return false;
+        } else if (!data.equals(other.data))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((code == null) ? 0 : code.hashCode());
+        result = prime * result + ((data == null) ? 0 : data.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java
new file mode 100644
index 0000000..37e7356
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java
@@ -0,0 +1,268 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBarrierReplyVer10 implements OFBarrierReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBarrierReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFBarrierReplyVer10 DEFAULT = new OFBarrierReplyVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBarrierReplyVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.BARRIER_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+
+
+    public OFBarrierReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBarrierReply.Builder {
+        final OFBarrierReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFBarrierReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.BARRIER_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBarrierReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBarrierReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFBarrierReplyVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFBarrierReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.BARRIER_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBarrierReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBarrierReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFBarrierReplyVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBarrierReply> {
+        @Override
+        public OFBarrierReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 19
+            byte type = bb.readByte();
+            if(type != (byte) 0x13)
+                throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REPLY(19), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+
+            OFBarrierReplyVer10 barrierReplyVer10 = new OFBarrierReplyVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", barrierReplyVer10);
+            return barrierReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBarrierReplyVer10Funnel FUNNEL = new OFBarrierReplyVer10Funnel();
+    static class OFBarrierReplyVer10Funnel implements Funnel<OFBarrierReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBarrierReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 19
+            sink.putByte((byte) 0x13);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            sink.putLong(message.xid);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBarrierReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBarrierReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 19
+            bb.writeByte((byte) 0x13);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            bb.writeInt(U32.t(message.xid));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBarrierReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBarrierReplyVer10 other = (OFBarrierReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java
new file mode 100644
index 0000000..e2def34
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java
@@ -0,0 +1,268 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBarrierRequestVer10 implements OFBarrierRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBarrierRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFBarrierRequestVer10 DEFAULT = new OFBarrierRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBarrierRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.BARRIER_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+
+
+    public OFBarrierRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBarrierRequest.Builder {
+        final OFBarrierRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFBarrierRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.BARRIER_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBarrierRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBarrierRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFBarrierRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFBarrierRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.BARRIER_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBarrierRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBarrierRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFBarrierRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBarrierRequest> {
+        @Override
+        public OFBarrierRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 18
+            byte type = bb.readByte();
+            if(type != (byte) 0x12)
+                throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REQUEST(18), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+
+            OFBarrierRequestVer10 barrierRequestVer10 = new OFBarrierRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", barrierRequestVer10);
+            return barrierRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBarrierRequestVer10Funnel FUNNEL = new OFBarrierRequestVer10Funnel();
+    static class OFBarrierRequestVer10Funnel implements Funnel<OFBarrierRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBarrierRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 18
+            sink.putByte((byte) 0x12);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            sink.putLong(message.xid);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBarrierRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBarrierRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 18
+            bb.writeByte((byte) 0x12);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            bb.writeInt(U32.t(message.xid));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBarrierRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBarrierRequestVer10 other = (OFBarrierRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java
new file mode 100644
index 0000000..a1c1020
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwClearDataReplyVer10 implements OFBsnBwClearDataReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnBwClearDataReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long status;
+//
+    // Immutable default instance
+    final static OFBsnBwClearDataReplyVer10 DEFAULT = new OFBsnBwClearDataReplyVer10(
+        DEFAULT_XID, DEFAULT_STATUS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnBwClearDataReplyVer10(long xid, long status) {
+        this.xid = xid;
+        this.status = status;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x16L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+
+
+    public OFBsnBwClearDataReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnBwClearDataReply.Builder {
+        final OFBsnBwClearDataReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+        BuilderWithParent(OFBsnBwClearDataReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwClearDataReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x16L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnBwClearDataReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnBwClearDataReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long status = this.statusSet ? this.status : parentMessage.status;
+
+                //
+                return new OFBsnBwClearDataReplyVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnBwClearDataReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwClearDataReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x16L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnBwClearDataReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnBwClearDataReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+            return new OFBsnBwClearDataReplyVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnBwClearDataReply> {
+        @Override
+        public OFBsnBwClearDataReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x16L
+            int subtype = bb.readInt();
+            if(subtype != 0x16)
+                throw new OFParseError("Wrong subtype: Expected=0x16L(0x16L), got="+subtype);
+            long status = U32.f(bb.readInt());
+
+            OFBsnBwClearDataReplyVer10 bsnBwClearDataReplyVer10 = new OFBsnBwClearDataReplyVer10(
+                    xid,
+                      status
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnBwClearDataReplyVer10);
+            return bsnBwClearDataReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnBwClearDataReplyVer10Funnel FUNNEL = new OFBsnBwClearDataReplyVer10Funnel();
+    static class OFBsnBwClearDataReplyVer10Funnel implements Funnel<OFBsnBwClearDataReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnBwClearDataReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x16L
+            sink.putInt(0x16);
+            sink.putLong(message.status);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnBwClearDataReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnBwClearDataReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x16L
+            bb.writeInt(0x16);
+            bb.writeInt(U32.t(message.status));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnBwClearDataReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnBwClearDataReplyVer10 other = (OFBsnBwClearDataReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( status != other.status)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java
new file mode 100644
index 0000000..763b7d6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwClearDataRequestVer10 implements OFBsnBwClearDataRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnBwClearDataRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFBsnBwClearDataRequestVer10 DEFAULT = new OFBsnBwClearDataRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnBwClearDataRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x15L;
+    }
+
+
+
+    public OFBsnBwClearDataRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnBwClearDataRequest.Builder {
+        final OFBsnBwClearDataRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFBsnBwClearDataRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwClearDataRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x15L;
+    }
+
+
+
+        @Override
+        public OFBsnBwClearDataRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFBsnBwClearDataRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnBwClearDataRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwClearDataRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x15L;
+    }
+
+//
+        @Override
+        public OFBsnBwClearDataRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFBsnBwClearDataRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnBwClearDataRequest> {
+        @Override
+        public OFBsnBwClearDataRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x15L
+            int subtype = bb.readInt();
+            if(subtype != 0x15)
+                throw new OFParseError("Wrong subtype: Expected=0x15L(0x15L), got="+subtype);
+
+            OFBsnBwClearDataRequestVer10 bsnBwClearDataRequestVer10 = new OFBsnBwClearDataRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnBwClearDataRequestVer10);
+            return bsnBwClearDataRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnBwClearDataRequestVer10Funnel FUNNEL = new OFBsnBwClearDataRequestVer10Funnel();
+    static class OFBsnBwClearDataRequestVer10Funnel implements Funnel<OFBsnBwClearDataRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnBwClearDataRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x15L
+            sink.putInt(0x15);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnBwClearDataRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnBwClearDataRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x15L
+            bb.writeInt(0x15);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnBwClearDataRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnBwClearDataRequestVer10 other = (OFBsnBwClearDataRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java
new file mode 100644
index 0000000..fd16755
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableGetReplyVer10 implements OFBsnBwEnableGetReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableGetReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_ENABLED = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long enabled;
+//
+    // Immutable default instance
+    final static OFBsnBwEnableGetReplyVer10 DEFAULT = new OFBsnBwEnableGetReplyVer10(
+        DEFAULT_XID, DEFAULT_ENABLED
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnBwEnableGetReplyVer10(long xid, long enabled) {
+        this.xid = xid;
+        this.enabled = enabled;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x14L;
+    }
+
+    @Override
+    public long getEnabled() {
+        return enabled;
+    }
+
+
+
+    public OFBsnBwEnableGetReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnBwEnableGetReply.Builder {
+        final OFBsnBwEnableGetReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enabledSet;
+        private long enabled;
+
+        BuilderWithParent(OFBsnBwEnableGetReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableGetReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x14L;
+    }
+
+    @Override
+    public long getEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public OFBsnBwEnableGetReply.Builder setEnabled(long enabled) {
+        this.enabled = enabled;
+        this.enabledSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnBwEnableGetReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long enabled = this.enabledSet ? this.enabled : parentMessage.enabled;
+
+                //
+                return new OFBsnBwEnableGetReplyVer10(
+                    xid,
+                    enabled
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnBwEnableGetReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enabledSet;
+        private long enabled;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableGetReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x14L;
+    }
+
+    @Override
+    public long getEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public OFBsnBwEnableGetReply.Builder setEnabled(long enabled) {
+        this.enabled = enabled;
+        this.enabledSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnBwEnableGetReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long enabled = this.enabledSet ? this.enabled : DEFAULT_ENABLED;
+
+
+            return new OFBsnBwEnableGetReplyVer10(
+                    xid,
+                    enabled
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnBwEnableGetReply> {
+        @Override
+        public OFBsnBwEnableGetReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x14L
+            int subtype = bb.readInt();
+            if(subtype != 0x14)
+                throw new OFParseError("Wrong subtype: Expected=0x14L(0x14L), got="+subtype);
+            long enabled = U32.f(bb.readInt());
+
+            OFBsnBwEnableGetReplyVer10 bsnBwEnableGetReplyVer10 = new OFBsnBwEnableGetReplyVer10(
+                    xid,
+                      enabled
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnBwEnableGetReplyVer10);
+            return bsnBwEnableGetReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnBwEnableGetReplyVer10Funnel FUNNEL = new OFBsnBwEnableGetReplyVer10Funnel();
+    static class OFBsnBwEnableGetReplyVer10Funnel implements Funnel<OFBsnBwEnableGetReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnBwEnableGetReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x14L
+            sink.putInt(0x14);
+            sink.putLong(message.enabled);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnBwEnableGetReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnBwEnableGetReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x14L
+            bb.writeInt(0x14);
+            bb.writeInt(U32.t(message.enabled));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnBwEnableGetReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("enabled=").append(enabled);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnBwEnableGetReplyVer10 other = (OFBsnBwEnableGetReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( enabled != other.enabled)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (enabled ^ (enabled >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java
new file mode 100644
index 0000000..f8ad0a0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableGetRequestVer10 implements OFBsnBwEnableGetRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableGetRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFBsnBwEnableGetRequestVer10 DEFAULT = new OFBsnBwEnableGetRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnBwEnableGetRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x13L;
+    }
+
+
+
+    public OFBsnBwEnableGetRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnBwEnableGetRequest.Builder {
+        final OFBsnBwEnableGetRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFBsnBwEnableGetRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableGetRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x13L;
+    }
+
+
+
+        @Override
+        public OFBsnBwEnableGetRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFBsnBwEnableGetRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnBwEnableGetRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableGetRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x13L;
+    }
+
+//
+        @Override
+        public OFBsnBwEnableGetRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFBsnBwEnableGetRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnBwEnableGetRequest> {
+        @Override
+        public OFBsnBwEnableGetRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x13L
+            int subtype = bb.readInt();
+            if(subtype != 0x13)
+                throw new OFParseError("Wrong subtype: Expected=0x13L(0x13L), got="+subtype);
+
+            OFBsnBwEnableGetRequestVer10 bsnBwEnableGetRequestVer10 = new OFBsnBwEnableGetRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnBwEnableGetRequestVer10);
+            return bsnBwEnableGetRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnBwEnableGetRequestVer10Funnel FUNNEL = new OFBsnBwEnableGetRequestVer10Funnel();
+    static class OFBsnBwEnableGetRequestVer10Funnel implements Funnel<OFBsnBwEnableGetRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnBwEnableGetRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x13L
+            sink.putInt(0x13);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnBwEnableGetRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnBwEnableGetRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x13L
+            bb.writeInt(0x13);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnBwEnableGetRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnBwEnableGetRequestVer10 other = (OFBsnBwEnableGetRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java
new file mode 100644
index 0000000..4370e74
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java
@@ -0,0 +1,408 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableSetReplyVer10 implements OFBsnBwEnableSetReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableSetReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_ENABLE = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long enable;
+    private final long status;
+//
+    // Immutable default instance
+    final static OFBsnBwEnableSetReplyVer10 DEFAULT = new OFBsnBwEnableSetReplyVer10(
+        DEFAULT_XID, DEFAULT_ENABLE, DEFAULT_STATUS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnBwEnableSetReplyVer10(long xid, long enable, long status) {
+        this.xid = xid;
+        this.enable = enable;
+        this.status = status;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x17L;
+    }
+
+    @Override
+    public long getEnable() {
+        return enable;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+
+
+    public OFBsnBwEnableSetReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnBwEnableSetReply.Builder {
+        final OFBsnBwEnableSetReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enableSet;
+        private long enable;
+        private boolean statusSet;
+        private long status;
+
+        BuilderWithParent(OFBsnBwEnableSetReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableSetReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x17L;
+    }
+
+    @Override
+    public long getEnable() {
+        return enable;
+    }
+
+    @Override
+    public OFBsnBwEnableSetReply.Builder setEnable(long enable) {
+        this.enable = enable;
+        this.enableSet = true;
+        return this;
+    }
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnBwEnableSetReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnBwEnableSetReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long enable = this.enableSet ? this.enable : parentMessage.enable;
+                long status = this.statusSet ? this.status : parentMessage.status;
+
+                //
+                return new OFBsnBwEnableSetReplyVer10(
+                    xid,
+                    enable,
+                    status
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnBwEnableSetReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enableSet;
+        private long enable;
+        private boolean statusSet;
+        private long status;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableSetReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x17L;
+    }
+
+    @Override
+    public long getEnable() {
+        return enable;
+    }
+
+    @Override
+    public OFBsnBwEnableSetReply.Builder setEnable(long enable) {
+        this.enable = enable;
+        this.enableSet = true;
+        return this;
+    }
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnBwEnableSetReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnBwEnableSetReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long enable = this.enableSet ? this.enable : DEFAULT_ENABLE;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+            return new OFBsnBwEnableSetReplyVer10(
+                    xid,
+                    enable,
+                    status
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnBwEnableSetReply> {
+        @Override
+        public OFBsnBwEnableSetReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x17L
+            int subtype = bb.readInt();
+            if(subtype != 0x17)
+                throw new OFParseError("Wrong subtype: Expected=0x17L(0x17L), got="+subtype);
+            long enable = U32.f(bb.readInt());
+            long status = U32.f(bb.readInt());
+
+            OFBsnBwEnableSetReplyVer10 bsnBwEnableSetReplyVer10 = new OFBsnBwEnableSetReplyVer10(
+                    xid,
+                      enable,
+                      status
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnBwEnableSetReplyVer10);
+            return bsnBwEnableSetReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnBwEnableSetReplyVer10Funnel FUNNEL = new OFBsnBwEnableSetReplyVer10Funnel();
+    static class OFBsnBwEnableSetReplyVer10Funnel implements Funnel<OFBsnBwEnableSetReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnBwEnableSetReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x17L
+            sink.putInt(0x17);
+            sink.putLong(message.enable);
+            sink.putLong(message.status);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnBwEnableSetReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnBwEnableSetReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x17L
+            bb.writeInt(0x17);
+            bb.writeInt(U32.t(message.enable));
+            bb.writeInt(U32.t(message.status));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnBwEnableSetReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("enable=").append(enable);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnBwEnableSetReplyVer10 other = (OFBsnBwEnableSetReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( enable != other.enable)
+            return false;
+        if( status != other.status)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (enable ^ (enable >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java
new file mode 100644
index 0000000..5e765a0
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableSetRequestVer10 implements OFBsnBwEnableSetRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableSetRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_ENABLE = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long enable;
+//
+    // Immutable default instance
+    final static OFBsnBwEnableSetRequestVer10 DEFAULT = new OFBsnBwEnableSetRequestVer10(
+        DEFAULT_XID, DEFAULT_ENABLE
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnBwEnableSetRequestVer10(long xid, long enable) {
+        this.xid = xid;
+        this.enable = enable;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x12L;
+    }
+
+    @Override
+    public long getEnable() {
+        return enable;
+    }
+
+
+
+    public OFBsnBwEnableSetRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnBwEnableSetRequest.Builder {
+        final OFBsnBwEnableSetRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enableSet;
+        private long enable;
+
+        BuilderWithParent(OFBsnBwEnableSetRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableSetRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x12L;
+    }
+
+    @Override
+    public long getEnable() {
+        return enable;
+    }
+
+    @Override
+    public OFBsnBwEnableSetRequest.Builder setEnable(long enable) {
+        this.enable = enable;
+        this.enableSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnBwEnableSetRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long enable = this.enableSet ? this.enable : parentMessage.enable;
+
+                //
+                return new OFBsnBwEnableSetRequestVer10(
+                    xid,
+                    enable
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnBwEnableSetRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enableSet;
+        private long enable;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnBwEnableSetRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x12L;
+    }
+
+    @Override
+    public long getEnable() {
+        return enable;
+    }
+
+    @Override
+    public OFBsnBwEnableSetRequest.Builder setEnable(long enable) {
+        this.enable = enable;
+        this.enableSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnBwEnableSetRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long enable = this.enableSet ? this.enable : DEFAULT_ENABLE;
+
+
+            return new OFBsnBwEnableSetRequestVer10(
+                    xid,
+                    enable
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnBwEnableSetRequest> {
+        @Override
+        public OFBsnBwEnableSetRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x12L
+            int subtype = bb.readInt();
+            if(subtype != 0x12)
+                throw new OFParseError("Wrong subtype: Expected=0x12L(0x12L), got="+subtype);
+            long enable = U32.f(bb.readInt());
+
+            OFBsnBwEnableSetRequestVer10 bsnBwEnableSetRequestVer10 = new OFBsnBwEnableSetRequestVer10(
+                    xid,
+                      enable
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnBwEnableSetRequestVer10);
+            return bsnBwEnableSetRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnBwEnableSetRequestVer10Funnel FUNNEL = new OFBsnBwEnableSetRequestVer10Funnel();
+    static class OFBsnBwEnableSetRequestVer10Funnel implements Funnel<OFBsnBwEnableSetRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnBwEnableSetRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x12L
+            sink.putInt(0x12);
+            sink.putLong(message.enable);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnBwEnableSetRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnBwEnableSetRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x12L
+            bb.writeInt(0x12);
+            bb.writeInt(U32.t(message.enable));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnBwEnableSetRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("enable=").append(enable);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnBwEnableSetRequestVer10 other = (OFBsnBwEnableSetRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( enable != other.enable)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (enable ^ (enable >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java
new file mode 100644
index 0000000..e63c1f7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java
@@ -0,0 +1,375 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetInterfacesReplyVer10 implements OFBsnGetInterfacesReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetInterfacesReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 16;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static List<OFBsnInterface> DEFAULT_INTERFACES = ImmutableList.<OFBsnInterface>of();
+
+    // OF message fields
+    private final long xid;
+    private final List<OFBsnInterface> interfaces;
+//
+    // Immutable default instance
+    final static OFBsnGetInterfacesReplyVer10 DEFAULT = new OFBsnGetInterfacesReplyVer10(
+        DEFAULT_XID, DEFAULT_INTERFACES
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetInterfacesReplyVer10(long xid, List<OFBsnInterface> interfaces) {
+        this.xid = xid;
+        this.interfaces = interfaces;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xaL;
+    }
+
+    @Override
+    public List<OFBsnInterface> getInterfaces() {
+        return interfaces;
+    }
+
+
+
+    public OFBsnGetInterfacesReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetInterfacesReply.Builder {
+        final OFBsnGetInterfacesReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean interfacesSet;
+        private List<OFBsnInterface> interfaces;
+
+        BuilderWithParent(OFBsnGetInterfacesReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetInterfacesReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xaL;
+    }
+
+    @Override
+    public List<OFBsnInterface> getInterfaces() {
+        return interfaces;
+    }
+
+    @Override
+    public OFBsnGetInterfacesReply.Builder setInterfaces(List<OFBsnInterface> interfaces) {
+        this.interfaces = interfaces;
+        this.interfacesSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnGetInterfacesReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                List<OFBsnInterface> interfaces = this.interfacesSet ? this.interfaces : parentMessage.interfaces;
+                if(interfaces == null)
+                    throw new NullPointerException("Property interfaces must not be null");
+
+                //
+                return new OFBsnGetInterfacesReplyVer10(
+                    xid,
+                    interfaces
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetInterfacesReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean interfacesSet;
+        private List<OFBsnInterface> interfaces;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetInterfacesReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xaL;
+    }
+
+    @Override
+    public List<OFBsnInterface> getInterfaces() {
+        return interfaces;
+    }
+
+    @Override
+    public OFBsnGetInterfacesReply.Builder setInterfaces(List<OFBsnInterface> interfaces) {
+        this.interfaces = interfaces;
+        this.interfacesSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnGetInterfacesReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            List<OFBsnInterface> interfaces = this.interfacesSet ? this.interfaces : DEFAULT_INTERFACES;
+            if(interfaces == null)
+                throw new NullPointerException("Property interfaces must not be null");
+
+
+            return new OFBsnGetInterfacesReplyVer10(
+                    xid,
+                    interfaces
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetInterfacesReply> {
+        @Override
+        public OFBsnGetInterfacesReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0xaL
+            int subtype = bb.readInt();
+            if(subtype != 0xa)
+                throw new OFParseError("Wrong subtype: Expected=0xaL(0xaL), got="+subtype);
+            List<OFBsnInterface> interfaces = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFBsnInterfaceVer10.READER);
+
+            OFBsnGetInterfacesReplyVer10 bsnGetInterfacesReplyVer10 = new OFBsnGetInterfacesReplyVer10(
+                    xid,
+                      interfaces
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetInterfacesReplyVer10);
+            return bsnGetInterfacesReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetInterfacesReplyVer10Funnel FUNNEL = new OFBsnGetInterfacesReplyVer10Funnel();
+    static class OFBsnGetInterfacesReplyVer10Funnel implements Funnel<OFBsnGetInterfacesReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetInterfacesReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0xaL
+            sink.putInt(0xa);
+            FunnelUtils.putList(message.interfaces, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetInterfacesReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetInterfacesReplyVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0xaL
+            bb.writeInt(0xa);
+            ChannelUtils.writeList(bb, message.interfaces);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetInterfacesReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("interfaces=").append(interfaces);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetInterfacesReplyVer10 other = (OFBsnGetInterfacesReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (interfaces == null) {
+            if (other.interfaces != null)
+                return false;
+        } else if (!interfaces.equals(other.interfaces))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((interfaces == null) ? 0 : interfaces.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java
new file mode 100644
index 0000000..f5ddab5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetInterfacesRequestVer10 implements OFBsnGetInterfacesRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetInterfacesRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFBsnGetInterfacesRequestVer10 DEFAULT = new OFBsnGetInterfacesRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetInterfacesRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x9L;
+    }
+
+
+
+    public OFBsnGetInterfacesRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetInterfacesRequest.Builder {
+        final OFBsnGetInterfacesRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFBsnGetInterfacesRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetInterfacesRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x9L;
+    }
+
+
+
+        @Override
+        public OFBsnGetInterfacesRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFBsnGetInterfacesRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetInterfacesRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetInterfacesRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x9L;
+    }
+
+//
+        @Override
+        public OFBsnGetInterfacesRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFBsnGetInterfacesRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetInterfacesRequest> {
+        @Override
+        public OFBsnGetInterfacesRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x9L
+            int subtype = bb.readInt();
+            if(subtype != 0x9)
+                throw new OFParseError("Wrong subtype: Expected=0x9L(0x9L), got="+subtype);
+
+            OFBsnGetInterfacesRequestVer10 bsnGetInterfacesRequestVer10 = new OFBsnGetInterfacesRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetInterfacesRequestVer10);
+            return bsnGetInterfacesRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetInterfacesRequestVer10Funnel FUNNEL = new OFBsnGetInterfacesRequestVer10Funnel();
+    static class OFBsnGetInterfacesRequestVer10Funnel implements Funnel<OFBsnGetInterfacesRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetInterfacesRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x9L
+            sink.putInt(0x9);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetInterfacesRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetInterfacesRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x9L
+            bb.writeInt(0x9);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetInterfacesRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetInterfacesRequestVer10 other = (OFBsnGetInterfacesRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java
new file mode 100644
index 0000000..45fdba5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java
@@ -0,0 +1,413 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetIpMaskReplyVer10 implements OFBsnGetIpMaskReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetIpMaskReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_INDEX = (short) 0x0;
+        private final static long DEFAULT_MASK = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final short index;
+    private final long mask;
+//
+    // Immutable default instance
+    final static OFBsnGetIpMaskReplyVer10 DEFAULT = new OFBsnGetIpMaskReplyVer10(
+        DEFAULT_XID, DEFAULT_INDEX, DEFAULT_MASK
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetIpMaskReplyVer10(long xid, short index, long mask) {
+        this.xid = xid;
+        this.index = index;
+        this.mask = mask;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x2L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public long getMask() {
+        return mask;
+    }
+
+
+
+    public OFBsnGetIpMaskReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetIpMaskReply.Builder {
+        final OFBsnGetIpMaskReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean indexSet;
+        private short index;
+        private boolean maskSet;
+        private long mask;
+
+        BuilderWithParent(OFBsnGetIpMaskReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetIpMaskReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x2L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public OFBsnGetIpMaskReply.Builder setIndex(short index) {
+        this.index = index;
+        this.indexSet = true;
+        return this;
+    }
+    @Override
+    public long getMask() {
+        return mask;
+    }
+
+    @Override
+    public OFBsnGetIpMaskReply.Builder setMask(long mask) {
+        this.mask = mask;
+        this.maskSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnGetIpMaskReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short index = this.indexSet ? this.index : parentMessage.index;
+                long mask = this.maskSet ? this.mask : parentMessage.mask;
+
+                //
+                return new OFBsnGetIpMaskReplyVer10(
+                    xid,
+                    index,
+                    mask
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetIpMaskReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean indexSet;
+        private short index;
+        private boolean maskSet;
+        private long mask;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetIpMaskReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x2L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public OFBsnGetIpMaskReply.Builder setIndex(short index) {
+        this.index = index;
+        this.indexSet = true;
+        return this;
+    }
+    @Override
+    public long getMask() {
+        return mask;
+    }
+
+    @Override
+    public OFBsnGetIpMaskReply.Builder setMask(long mask) {
+        this.mask = mask;
+        this.maskSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnGetIpMaskReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short index = this.indexSet ? this.index : DEFAULT_INDEX;
+            long mask = this.maskSet ? this.mask : DEFAULT_MASK;
+
+
+            return new OFBsnGetIpMaskReplyVer10(
+                    xid,
+                    index,
+                    mask
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetIpMaskReply> {
+        @Override
+        public OFBsnGetIpMaskReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x2L
+            int subtype = bb.readInt();
+            if(subtype != 0x2)
+                throw new OFParseError("Wrong subtype: Expected=0x2L(0x2L), got="+subtype);
+            short index = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+            long mask = U32.f(bb.readInt());
+
+            OFBsnGetIpMaskReplyVer10 bsnGetIpMaskReplyVer10 = new OFBsnGetIpMaskReplyVer10(
+                    xid,
+                      index,
+                      mask
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetIpMaskReplyVer10);
+            return bsnGetIpMaskReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetIpMaskReplyVer10Funnel FUNNEL = new OFBsnGetIpMaskReplyVer10Funnel();
+    static class OFBsnGetIpMaskReplyVer10Funnel implements Funnel<OFBsnGetIpMaskReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetIpMaskReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x2L
+            sink.putInt(0x2);
+            sink.putShort(message.index);
+            // skip pad (3 bytes)
+            sink.putLong(message.mask);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetIpMaskReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetIpMaskReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x2L
+            bb.writeInt(0x2);
+            bb.writeByte(U8.t(message.index));
+            // pad: 3 bytes
+            bb.writeZero(3);
+            bb.writeInt(U32.t(message.mask));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetIpMaskReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("index=").append(index);
+        b.append(", ");
+        b.append("mask=").append(mask);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetIpMaskReplyVer10 other = (OFBsnGetIpMaskReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( index != other.index)
+            return false;
+        if( mask != other.mask)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + index;
+        result = prime *  (int) (mask ^ (mask >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java
new file mode 100644
index 0000000..f35f0dc
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetIpMaskRequestVer10 implements OFBsnGetIpMaskRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetIpMaskRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_INDEX = (short) 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final short index;
+//
+    // Immutable default instance
+    final static OFBsnGetIpMaskRequestVer10 DEFAULT = new OFBsnGetIpMaskRequestVer10(
+        DEFAULT_XID, DEFAULT_INDEX
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetIpMaskRequestVer10(long xid, short index) {
+        this.xid = xid;
+        this.index = index;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+
+
+    public OFBsnGetIpMaskRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetIpMaskRequest.Builder {
+        final OFBsnGetIpMaskRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean indexSet;
+        private short index;
+
+        BuilderWithParent(OFBsnGetIpMaskRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetIpMaskRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public OFBsnGetIpMaskRequest.Builder setIndex(short index) {
+        this.index = index;
+        this.indexSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnGetIpMaskRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short index = this.indexSet ? this.index : parentMessage.index;
+
+                //
+                return new OFBsnGetIpMaskRequestVer10(
+                    xid,
+                    index
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetIpMaskRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean indexSet;
+        private short index;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetIpMaskRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public OFBsnGetIpMaskRequest.Builder setIndex(short index) {
+        this.index = index;
+        this.indexSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnGetIpMaskRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short index = this.indexSet ? this.index : DEFAULT_INDEX;
+
+
+            return new OFBsnGetIpMaskRequestVer10(
+                    xid,
+                    index
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetIpMaskRequest> {
+        @Override
+        public OFBsnGetIpMaskRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x1L
+            int subtype = bb.readInt();
+            if(subtype != 0x1)
+                throw new OFParseError("Wrong subtype: Expected=0x1L(0x1L), got="+subtype);
+            short index = U8.f(bb.readByte());
+            // pad: 7 bytes
+            bb.skipBytes(7);
+
+            OFBsnGetIpMaskRequestVer10 bsnGetIpMaskRequestVer10 = new OFBsnGetIpMaskRequestVer10(
+                    xid,
+                      index
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetIpMaskRequestVer10);
+            return bsnGetIpMaskRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetIpMaskRequestVer10Funnel FUNNEL = new OFBsnGetIpMaskRequestVer10Funnel();
+    static class OFBsnGetIpMaskRequestVer10Funnel implements Funnel<OFBsnGetIpMaskRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetIpMaskRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x1L
+            sink.putInt(0x1);
+            sink.putShort(message.index);
+            // skip pad (7 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetIpMaskRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetIpMaskRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x1L
+            bb.writeInt(0x1);
+            bb.writeByte(U8.t(message.index));
+            // pad: 7 bytes
+            bb.writeZero(7);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetIpMaskRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("index=").append(index);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetIpMaskRequestVer10 other = (OFBsnGetIpMaskRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( index != other.index)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + index;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java
new file mode 100644
index 0000000..852182c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetL2TableReplyVer10 implements OFBsnGetL2TableReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetL2TableReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_L2_TABLE_ENABLE = (short) 0x0;
+        private final static int DEFAULT_L2_TABLE_PRIORITY = 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final short l2TableEnable;
+    private final int l2TablePriority;
+//
+    // Immutable default instance
+    final static OFBsnGetL2TableReplyVer10 DEFAULT = new OFBsnGetL2TableReplyVer10(
+        DEFAULT_XID, DEFAULT_L2_TABLE_ENABLE, DEFAULT_L2_TABLE_PRIORITY
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetL2TableReplyVer10(long xid, short l2TableEnable, int l2TablePriority) {
+        this.xid = xid;
+        this.l2TableEnable = l2TableEnable;
+        this.l2TablePriority = l2TablePriority;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xeL;
+    }
+
+    @Override
+    public short getL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+
+
+    public OFBsnGetL2TableReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetL2TableReply.Builder {
+        final OFBsnGetL2TableReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean l2TableEnableSet;
+        private short l2TableEnable;
+        private boolean l2TablePrioritySet;
+        private int l2TablePriority;
+
+        BuilderWithParent(OFBsnGetL2TableReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetL2TableReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xeL;
+    }
+
+    @Override
+    public short getL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public OFBsnGetL2TableReply.Builder setL2TableEnable(short l2TableEnable) {
+        this.l2TableEnable = l2TableEnable;
+        this.l2TableEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+    @Override
+    public OFBsnGetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+        this.l2TablePriority = l2TablePriority;
+        this.l2TablePrioritySet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnGetL2TableReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : parentMessage.l2TableEnable;
+                int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : parentMessage.l2TablePriority;
+
+                //
+                return new OFBsnGetL2TableReplyVer10(
+                    xid,
+                    l2TableEnable,
+                    l2TablePriority
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetL2TableReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean l2TableEnableSet;
+        private short l2TableEnable;
+        private boolean l2TablePrioritySet;
+        private int l2TablePriority;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetL2TableReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xeL;
+    }
+
+    @Override
+    public short getL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public OFBsnGetL2TableReply.Builder setL2TableEnable(short l2TableEnable) {
+        this.l2TableEnable = l2TableEnable;
+        this.l2TableEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+    @Override
+    public OFBsnGetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+        this.l2TablePriority = l2TablePriority;
+        this.l2TablePrioritySet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnGetL2TableReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : DEFAULT_L2_TABLE_ENABLE;
+            int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : DEFAULT_L2_TABLE_PRIORITY;
+
+
+            return new OFBsnGetL2TableReplyVer10(
+                    xid,
+                    l2TableEnable,
+                    l2TablePriority
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetL2TableReply> {
+        @Override
+        public OFBsnGetL2TableReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0xeL
+            int subtype = bb.readInt();
+            if(subtype != 0xe)
+                throw new OFParseError("Wrong subtype: Expected=0xeL(0xeL), got="+subtype);
+            short l2TableEnable = U8.f(bb.readByte());
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            int l2TablePriority = U16.f(bb.readShort());
+            // pad: 4 bytes
+            bb.skipBytes(4);
+
+            OFBsnGetL2TableReplyVer10 bsnGetL2TableReplyVer10 = new OFBsnGetL2TableReplyVer10(
+                    xid,
+                      l2TableEnable,
+                      l2TablePriority
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetL2TableReplyVer10);
+            return bsnGetL2TableReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetL2TableReplyVer10Funnel FUNNEL = new OFBsnGetL2TableReplyVer10Funnel();
+    static class OFBsnGetL2TableReplyVer10Funnel implements Funnel<OFBsnGetL2TableReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetL2TableReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0xeL
+            sink.putInt(0xe);
+            sink.putShort(message.l2TableEnable);
+            // skip pad (1 bytes)
+            sink.putInt(message.l2TablePriority);
+            // skip pad (4 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetL2TableReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetL2TableReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0xeL
+            bb.writeInt(0xe);
+            bb.writeByte(U8.t(message.l2TableEnable));
+            // pad: 1 bytes
+            bb.writeZero(1);
+            bb.writeShort(U16.t(message.l2TablePriority));
+            // pad: 4 bytes
+            bb.writeZero(4);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetL2TableReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("l2TableEnable=").append(l2TableEnable);
+        b.append(", ");
+        b.append("l2TablePriority=").append(l2TablePriority);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetL2TableReplyVer10 other = (OFBsnGetL2TableReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( l2TableEnable != other.l2TableEnable)
+            return false;
+        if( l2TablePriority != other.l2TablePriority)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + l2TableEnable;
+        result = prime * result + l2TablePriority;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java
new file mode 100644
index 0000000..8d432c1
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetL2TableRequestVer10 implements OFBsnGetL2TableRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetL2TableRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFBsnGetL2TableRequestVer10 DEFAULT = new OFBsnGetL2TableRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetL2TableRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xdL;
+    }
+
+
+
+    public OFBsnGetL2TableRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetL2TableRequest.Builder {
+        final OFBsnGetL2TableRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFBsnGetL2TableRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetL2TableRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xdL;
+    }
+
+
+
+        @Override
+        public OFBsnGetL2TableRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFBsnGetL2TableRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetL2TableRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetL2TableRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xdL;
+    }
+
+//
+        @Override
+        public OFBsnGetL2TableRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFBsnGetL2TableRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetL2TableRequest> {
+        @Override
+        public OFBsnGetL2TableRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0xdL
+            int subtype = bb.readInt();
+            if(subtype != 0xd)
+                throw new OFParseError("Wrong subtype: Expected=0xdL(0xdL), got="+subtype);
+
+            OFBsnGetL2TableRequestVer10 bsnGetL2TableRequestVer10 = new OFBsnGetL2TableRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetL2TableRequestVer10);
+            return bsnGetL2TableRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetL2TableRequestVer10Funnel FUNNEL = new OFBsnGetL2TableRequestVer10Funnel();
+    static class OFBsnGetL2TableRequestVer10Funnel implements Funnel<OFBsnGetL2TableRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetL2TableRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0xdL
+            sink.putInt(0xd);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetL2TableRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetL2TableRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0xdL
+            bb.writeInt(0xd);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetL2TableRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetL2TableRequestVer10 other = (OFBsnGetL2TableRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java
new file mode 100644
index 0000000..080b04f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetMirroringReplyVer10 implements OFBsnGetMirroringReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetMirroringReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_REPORT_MIRROR_PORTS = (short) 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final short reportMirrorPorts;
+//
+    // Immutable default instance
+    final static OFBsnGetMirroringReplyVer10 DEFAULT = new OFBsnGetMirroringReplyVer10(
+        DEFAULT_XID, DEFAULT_REPORT_MIRROR_PORTS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetMirroringReplyVer10(long xid, short reportMirrorPorts) {
+        this.xid = xid;
+        this.reportMirrorPorts = reportMirrorPorts;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x5L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+
+
+    public OFBsnGetMirroringReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetMirroringReply.Builder {
+        final OFBsnGetMirroringReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean reportMirrorPortsSet;
+        private short reportMirrorPorts;
+
+        BuilderWithParent(OFBsnGetMirroringReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetMirroringReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x5L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+    @Override
+    public OFBsnGetMirroringReply.Builder setReportMirrorPorts(short reportMirrorPorts) {
+        this.reportMirrorPorts = reportMirrorPorts;
+        this.reportMirrorPortsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnGetMirroringReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : parentMessage.reportMirrorPorts;
+
+                //
+                return new OFBsnGetMirroringReplyVer10(
+                    xid,
+                    reportMirrorPorts
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetMirroringReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean reportMirrorPortsSet;
+        private short reportMirrorPorts;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetMirroringReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x5L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+    @Override
+    public OFBsnGetMirroringReply.Builder setReportMirrorPorts(short reportMirrorPorts) {
+        this.reportMirrorPorts = reportMirrorPorts;
+        this.reportMirrorPortsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnGetMirroringReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : DEFAULT_REPORT_MIRROR_PORTS;
+
+
+            return new OFBsnGetMirroringReplyVer10(
+                    xid,
+                    reportMirrorPorts
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetMirroringReply> {
+        @Override
+        public OFBsnGetMirroringReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x5L
+            int subtype = bb.readInt();
+            if(subtype != 0x5)
+                throw new OFParseError("Wrong subtype: Expected=0x5L(0x5L), got="+subtype);
+            short reportMirrorPorts = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+
+            OFBsnGetMirroringReplyVer10 bsnGetMirroringReplyVer10 = new OFBsnGetMirroringReplyVer10(
+                    xid,
+                      reportMirrorPorts
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetMirroringReplyVer10);
+            return bsnGetMirroringReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetMirroringReplyVer10Funnel FUNNEL = new OFBsnGetMirroringReplyVer10Funnel();
+    static class OFBsnGetMirroringReplyVer10Funnel implements Funnel<OFBsnGetMirroringReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetMirroringReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x5L
+            sink.putInt(0x5);
+            sink.putShort(message.reportMirrorPorts);
+            // skip pad (3 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetMirroringReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetMirroringReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x5L
+            bb.writeInt(0x5);
+            bb.writeByte(U8.t(message.reportMirrorPorts));
+            // pad: 3 bytes
+            bb.writeZero(3);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetMirroringReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("reportMirrorPorts=").append(reportMirrorPorts);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetMirroringReplyVer10 other = (OFBsnGetMirroringReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( reportMirrorPorts != other.reportMirrorPorts)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + reportMirrorPorts;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java
new file mode 100644
index 0000000..e4422dd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetMirroringRequestVer10 implements OFBsnGetMirroringRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnGetMirroringRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_REPORT_MIRROR_PORTS = (short) 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final short reportMirrorPorts;
+//
+    // Immutable default instance
+    final static OFBsnGetMirroringRequestVer10 DEFAULT = new OFBsnGetMirroringRequestVer10(
+        DEFAULT_XID, DEFAULT_REPORT_MIRROR_PORTS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnGetMirroringRequestVer10(long xid, short reportMirrorPorts) {
+        this.xid = xid;
+        this.reportMirrorPorts = reportMirrorPorts;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x4L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+
+
+    public OFBsnGetMirroringRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnGetMirroringRequest.Builder {
+        final OFBsnGetMirroringRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean reportMirrorPortsSet;
+        private short reportMirrorPorts;
+
+        BuilderWithParent(OFBsnGetMirroringRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetMirroringRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x4L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+    @Override
+    public OFBsnGetMirroringRequest.Builder setReportMirrorPorts(short reportMirrorPorts) {
+        this.reportMirrorPorts = reportMirrorPorts;
+        this.reportMirrorPortsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnGetMirroringRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : parentMessage.reportMirrorPorts;
+
+                //
+                return new OFBsnGetMirroringRequestVer10(
+                    xid,
+                    reportMirrorPorts
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnGetMirroringRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean reportMirrorPortsSet;
+        private short reportMirrorPorts;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnGetMirroringRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x4L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+    @Override
+    public OFBsnGetMirroringRequest.Builder setReportMirrorPorts(short reportMirrorPorts) {
+        this.reportMirrorPorts = reportMirrorPorts;
+        this.reportMirrorPortsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnGetMirroringRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : DEFAULT_REPORT_MIRROR_PORTS;
+
+
+            return new OFBsnGetMirroringRequestVer10(
+                    xid,
+                    reportMirrorPorts
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnGetMirroringRequest> {
+        @Override
+        public OFBsnGetMirroringRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x4L
+            int subtype = bb.readInt();
+            if(subtype != 0x4)
+                throw new OFParseError("Wrong subtype: Expected=0x4L(0x4L), got="+subtype);
+            short reportMirrorPorts = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+
+            OFBsnGetMirroringRequestVer10 bsnGetMirroringRequestVer10 = new OFBsnGetMirroringRequestVer10(
+                    xid,
+                      reportMirrorPorts
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnGetMirroringRequestVer10);
+            return bsnGetMirroringRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnGetMirroringRequestVer10Funnel FUNNEL = new OFBsnGetMirroringRequestVer10Funnel();
+    static class OFBsnGetMirroringRequestVer10Funnel implements Funnel<OFBsnGetMirroringRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnGetMirroringRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x4L
+            sink.putInt(0x4);
+            sink.putShort(message.reportMirrorPorts);
+            // skip pad (3 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnGetMirroringRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnGetMirroringRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x4L
+            bb.writeInt(0x4);
+            bb.writeByte(U8.t(message.reportMirrorPorts));
+            // pad: 3 bytes
+            bb.writeZero(3);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnGetMirroringRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("reportMirrorPorts=").append(reportMirrorPorts);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnGetMirroringRequestVer10 other = (OFBsnGetMirroringRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( reportMirrorPorts != other.reportMirrorPorts)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + reportMirrorPorts;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java
new file mode 100644
index 0000000..e2d6efe
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java
@@ -0,0 +1,169 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+import java.util.Set;
+
+abstract class OFBsnHeaderVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 16;
+
+
+    public final static OFBsnHeaderVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFBsnHeader> {
+        @Override
+        public OFBsnHeader readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            int subtype = bb.readInt();
+            bb.readerIndex(start);
+            switch(subtype) {
+               case 0x16:
+                   // discriminator value 0x16L=0x16L for class OFBsnBwClearDataReplyVer10
+                   return OFBsnBwClearDataReplyVer10.READER.readFrom(bb);
+               case 0x15:
+                   // discriminator value 0x15L=0x15L for class OFBsnBwClearDataRequestVer10
+                   return OFBsnBwClearDataRequestVer10.READER.readFrom(bb);
+               case 0x14:
+                   // discriminator value 0x14L=0x14L for class OFBsnBwEnableGetReplyVer10
+                   return OFBsnBwEnableGetReplyVer10.READER.readFrom(bb);
+               case 0x13:
+                   // discriminator value 0x13L=0x13L for class OFBsnBwEnableGetRequestVer10
+                   return OFBsnBwEnableGetRequestVer10.READER.readFrom(bb);
+               case 0x17:
+                   // discriminator value 0x17L=0x17L for class OFBsnBwEnableSetReplyVer10
+                   return OFBsnBwEnableSetReplyVer10.READER.readFrom(bb);
+               case 0x12:
+                   // discriminator value 0x12L=0x12L for class OFBsnBwEnableSetRequestVer10
+                   return OFBsnBwEnableSetRequestVer10.READER.readFrom(bb);
+               case 0xa:
+                   // discriminator value 0xaL=0xaL for class OFBsnGetInterfacesReplyVer10
+                   return OFBsnGetInterfacesReplyVer10.READER.readFrom(bb);
+               case 0x9:
+                   // discriminator value 0x9L=0x9L for class OFBsnGetInterfacesRequestVer10
+                   return OFBsnGetInterfacesRequestVer10.READER.readFrom(bb);
+               case 0x2:
+                   // discriminator value 0x2L=0x2L for class OFBsnGetIpMaskReplyVer10
+                   return OFBsnGetIpMaskReplyVer10.READER.readFrom(bb);
+               case 0x1:
+                   // discriminator value 0x1L=0x1L for class OFBsnGetIpMaskRequestVer10
+                   return OFBsnGetIpMaskRequestVer10.READER.readFrom(bb);
+               case 0xe:
+                   // discriminator value 0xeL=0xeL for class OFBsnGetL2TableReplyVer10
+                   return OFBsnGetL2TableReplyVer10.READER.readFrom(bb);
+               case 0xd:
+                   // discriminator value 0xdL=0xdL for class OFBsnGetL2TableRequestVer10
+                   return OFBsnGetL2TableRequestVer10.READER.readFrom(bb);
+               case 0x5:
+                   // discriminator value 0x5L=0x5L for class OFBsnGetMirroringReplyVer10
+                   return OFBsnGetMirroringReplyVer10.READER.readFrom(bb);
+               case 0x4:
+                   // discriminator value 0x4L=0x4L for class OFBsnGetMirroringRequestVer10
+                   return OFBsnGetMirroringRequestVer10.READER.readFrom(bb);
+               case 0x1c:
+                   // discriminator value 0x1cL=0x1cL for class OFBsnHybridGetReplyVer10
+                   return OFBsnHybridGetReplyVer10.READER.readFrom(bb);
+               case 0x1b:
+                   // discriminator value 0x1bL=0x1bL for class OFBsnHybridGetRequestVer10
+                   return OFBsnHybridGetRequestVer10.READER.readFrom(bb);
+               case 0x22:
+                   // discriminator value 0x22L=0x22L for class OFBsnPduRxReplyVer10
+                   return OFBsnPduRxReplyVer10.READER.readFrom(bb);
+               case 0x21:
+                   // discriminator value 0x21L=0x21L for class OFBsnPduRxRequestVer10
+                   return OFBsnPduRxRequestVer10.READER.readFrom(bb);
+               case 0x23:
+                   // discriminator value 0x23L=0x23L for class OFBsnPduRxTimeoutVer10
+                   return OFBsnPduRxTimeoutVer10.READER.readFrom(bb);
+               case 0x20:
+                   // discriminator value 0x20L=0x20L for class OFBsnPduTxReplyVer10
+                   return OFBsnPduTxReplyVer10.READER.readFrom(bb);
+               case 0x1f:
+                   // discriminator value 0x1fL=0x1fL for class OFBsnPduTxRequestVer10
+                   return OFBsnPduTxRequestVer10.READER.readFrom(bb);
+               case 0x0:
+                   // discriminator value 0x0L=0x0L for class OFBsnSetIpMaskVer10
+                   return OFBsnSetIpMaskVer10.READER.readFrom(bb);
+               case 0x18:
+                   // discriminator value 0x18L=0x18L for class OFBsnSetL2TableReplyVer10
+                   return OFBsnSetL2TableReplyVer10.READER.readFrom(bb);
+               case 0xc:
+                   // discriminator value 0xcL=0xcL for class OFBsnSetL2TableRequestVer10
+                   return OFBsnSetL2TableRequestVer10.READER.readFrom(bb);
+               case 0x3:
+                   // discriminator value 0x3L=0x3L for class OFBsnSetMirroringVer10
+                   return OFBsnSetMirroringVer10.READER.readFrom(bb);
+               case 0x19:
+                   // discriminator value 0x19L=0x19L for class OFBsnSetPktinSuppressionReplyVer10
+                   return OFBsnSetPktinSuppressionReplyVer10.READER.readFrom(bb);
+               case 0xb:
+                   // discriminator value 0xbL=0xbL for class OFBsnSetPktinSuppressionRequestVer10
+                   return OFBsnSetPktinSuppressionRequestVer10.READER.readFrom(bb);
+               case 0x6:
+                   // discriminator value 0x6L=0x6L for class OFBsnShellCommandVer10
+                   return OFBsnShellCommandVer10.READER.readFrom(bb);
+               case 0x7:
+                   // discriminator value 0x7L=0x7L for class OFBsnShellOutputVer10
+                   return OFBsnShellOutputVer10.READER.readFrom(bb);
+               case 0x8:
+                   // discriminator value 0x8L=0x8L for class OFBsnShellStatusVer10
+                   return OFBsnShellStatusVer10.READER.readFrom(bb);
+               case 0x10:
+                   // discriminator value 0x10L=0x10L for class OFBsnVirtualPortCreateReplyVer10
+                   return OFBsnVirtualPortCreateReplyVer10.READER.readFrom(bb);
+               case 0xf:
+                   // discriminator value 0xfL=0xfL for class OFBsnVirtualPortCreateRequestVer10
+                   return OFBsnVirtualPortCreateRequestVer10.READER.readFrom(bb);
+               case 0x1a:
+                   // discriminator value 0x1aL=0x1aL for class OFBsnVirtualPortRemoveReplyVer10
+                   return OFBsnVirtualPortRemoveReplyVer10.READER.readFrom(bb);
+               case 0x11:
+                   // discriminator value 0x11L=0x11L for class OFBsnVirtualPortRemoveRequestVer10
+                   return OFBsnVirtualPortRemoveRequestVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator subtype of class OFBsnHeaderVer10: " + subtype);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java
new file mode 100644
index 0000000..afe00bd
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnHybridGetReplyVer10 implements OFBsnHybridGetReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnHybridGetReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_HYBRID_ENABLE = (short) 0x0;
+        private final static int DEFAULT_HYBRID_VERSION = 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final short hybridEnable;
+    private final int hybridVersion;
+//
+    // Immutable default instance
+    final static OFBsnHybridGetReplyVer10 DEFAULT = new OFBsnHybridGetReplyVer10(
+        DEFAULT_XID, DEFAULT_HYBRID_ENABLE, DEFAULT_HYBRID_VERSION
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnHybridGetReplyVer10(long xid, short hybridEnable, int hybridVersion) {
+        this.xid = xid;
+        this.hybridEnable = hybridEnable;
+        this.hybridVersion = hybridVersion;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1cL;
+    }
+
+    @Override
+    public short getHybridEnable() {
+        return hybridEnable;
+    }
+
+    @Override
+    public int getHybridVersion() {
+        return hybridVersion;
+    }
+
+
+
+    public OFBsnHybridGetReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnHybridGetReply.Builder {
+        final OFBsnHybridGetReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean hybridEnableSet;
+        private short hybridEnable;
+        private boolean hybridVersionSet;
+        private int hybridVersion;
+
+        BuilderWithParent(OFBsnHybridGetReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnHybridGetReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1cL;
+    }
+
+    @Override
+    public short getHybridEnable() {
+        return hybridEnable;
+    }
+
+    @Override
+    public OFBsnHybridGetReply.Builder setHybridEnable(short hybridEnable) {
+        this.hybridEnable = hybridEnable;
+        this.hybridEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getHybridVersion() {
+        return hybridVersion;
+    }
+
+    @Override
+    public OFBsnHybridGetReply.Builder setHybridVersion(int hybridVersion) {
+        this.hybridVersion = hybridVersion;
+        this.hybridVersionSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnHybridGetReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short hybridEnable = this.hybridEnableSet ? this.hybridEnable : parentMessage.hybridEnable;
+                int hybridVersion = this.hybridVersionSet ? this.hybridVersion : parentMessage.hybridVersion;
+
+                //
+                return new OFBsnHybridGetReplyVer10(
+                    xid,
+                    hybridEnable,
+                    hybridVersion
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnHybridGetReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean hybridEnableSet;
+        private short hybridEnable;
+        private boolean hybridVersionSet;
+        private int hybridVersion;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnHybridGetReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1cL;
+    }
+
+    @Override
+    public short getHybridEnable() {
+        return hybridEnable;
+    }
+
+    @Override
+    public OFBsnHybridGetReply.Builder setHybridEnable(short hybridEnable) {
+        this.hybridEnable = hybridEnable;
+        this.hybridEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getHybridVersion() {
+        return hybridVersion;
+    }
+
+    @Override
+    public OFBsnHybridGetReply.Builder setHybridVersion(int hybridVersion) {
+        this.hybridVersion = hybridVersion;
+        this.hybridVersionSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnHybridGetReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short hybridEnable = this.hybridEnableSet ? this.hybridEnable : DEFAULT_HYBRID_ENABLE;
+            int hybridVersion = this.hybridVersionSet ? this.hybridVersion : DEFAULT_HYBRID_VERSION;
+
+
+            return new OFBsnHybridGetReplyVer10(
+                    xid,
+                    hybridEnable,
+                    hybridVersion
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnHybridGetReply> {
+        @Override
+        public OFBsnHybridGetReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x1cL
+            int subtype = bb.readInt();
+            if(subtype != 0x1c)
+                throw new OFParseError("Wrong subtype: Expected=0x1cL(0x1cL), got="+subtype);
+            short hybridEnable = U8.f(bb.readByte());
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            int hybridVersion = U16.f(bb.readShort());
+            // pad: 4 bytes
+            bb.skipBytes(4);
+
+            OFBsnHybridGetReplyVer10 bsnHybridGetReplyVer10 = new OFBsnHybridGetReplyVer10(
+                    xid,
+                      hybridEnable,
+                      hybridVersion
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnHybridGetReplyVer10);
+            return bsnHybridGetReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnHybridGetReplyVer10Funnel FUNNEL = new OFBsnHybridGetReplyVer10Funnel();
+    static class OFBsnHybridGetReplyVer10Funnel implements Funnel<OFBsnHybridGetReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnHybridGetReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x1cL
+            sink.putInt(0x1c);
+            sink.putShort(message.hybridEnable);
+            // skip pad (1 bytes)
+            sink.putInt(message.hybridVersion);
+            // skip pad (4 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnHybridGetReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnHybridGetReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x1cL
+            bb.writeInt(0x1c);
+            bb.writeByte(U8.t(message.hybridEnable));
+            // pad: 1 bytes
+            bb.writeZero(1);
+            bb.writeShort(U16.t(message.hybridVersion));
+            // pad: 4 bytes
+            bb.writeZero(4);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnHybridGetReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("hybridEnable=").append(hybridEnable);
+        b.append(", ");
+        b.append("hybridVersion=").append(hybridVersion);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnHybridGetReplyVer10 other = (OFBsnHybridGetReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( hybridEnable != other.hybridEnable)
+            return false;
+        if( hybridVersion != other.hybridVersion)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + hybridEnable;
+        result = prime * result + hybridVersion;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java
new file mode 100644
index 0000000..3282c8d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnHybridGetRequestVer10 implements OFBsnHybridGetRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnHybridGetRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 16;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFBsnHybridGetRequestVer10 DEFAULT = new OFBsnHybridGetRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnHybridGetRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1bL;
+    }
+
+
+
+    public OFBsnHybridGetRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnHybridGetRequest.Builder {
+        final OFBsnHybridGetRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFBsnHybridGetRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnHybridGetRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1bL;
+    }
+
+
+
+        @Override
+        public OFBsnHybridGetRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFBsnHybridGetRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnHybridGetRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnHybridGetRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1bL;
+    }
+
+//
+        @Override
+        public OFBsnHybridGetRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFBsnHybridGetRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnHybridGetRequest> {
+        @Override
+        public OFBsnHybridGetRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 16)
+                throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x1bL
+            int subtype = bb.readInt();
+            if(subtype != 0x1b)
+                throw new OFParseError("Wrong subtype: Expected=0x1bL(0x1bL), got="+subtype);
+
+            OFBsnHybridGetRequestVer10 bsnHybridGetRequestVer10 = new OFBsnHybridGetRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnHybridGetRequestVer10);
+            return bsnHybridGetRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnHybridGetRequestVer10Funnel FUNNEL = new OFBsnHybridGetRequestVer10Funnel();
+    static class OFBsnHybridGetRequestVer10Funnel implements Funnel<OFBsnHybridGetRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnHybridGetRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 16
+            sink.putShort((short) 0x10);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x1bL
+            sink.putInt(0x1b);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnHybridGetRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnHybridGetRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 16
+            bb.writeShort((short) 0x10);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x1bL
+            bb.writeInt(0x1b);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnHybridGetRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnHybridGetRequestVer10 other = (OFBsnHybridGetRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java
new file mode 100644
index 0000000..19db624
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java
@@ -0,0 +1,396 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnInterfaceVer10 implements OFBsnInterface {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnInterfaceVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 32;
+
+        private final static MacAddress DEFAULT_HW_ADDR = MacAddress.NONE;
+        private final static String DEFAULT_NAME = "";
+        private final static IPv4Address DEFAULT_IPV4_ADDR = IPv4Address.NONE;
+        private final static IPv4Address DEFAULT_IPV4_NETMASK = IPv4Address.NONE;
+
+    // OF message fields
+    private final MacAddress hwAddr;
+    private final String name;
+    private final IPv4Address ipv4Addr;
+    private final IPv4Address ipv4Netmask;
+//
+    // Immutable default instance
+    final static OFBsnInterfaceVer10 DEFAULT = new OFBsnInterfaceVer10(
+        DEFAULT_HW_ADDR, DEFAULT_NAME, DEFAULT_IPV4_ADDR, DEFAULT_IPV4_NETMASK
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnInterfaceVer10(MacAddress hwAddr, String name, IPv4Address ipv4Addr, IPv4Address ipv4Netmask) {
+        this.hwAddr = hwAddr;
+        this.name = name;
+        this.ipv4Addr = ipv4Addr;
+        this.ipv4Netmask = ipv4Netmask;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public MacAddress getHwAddr() {
+        return hwAddr;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public IPv4Address getIpv4Addr() {
+        return ipv4Addr;
+    }
+
+    @Override
+    public IPv4Address getIpv4Netmask() {
+        return ipv4Netmask;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFBsnInterface.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnInterface.Builder {
+        final OFBsnInterfaceVer10 parentMessage;
+
+        // OF message fields
+        private boolean hwAddrSet;
+        private MacAddress hwAddr;
+        private boolean nameSet;
+        private String name;
+        private boolean ipv4AddrSet;
+        private IPv4Address ipv4Addr;
+        private boolean ipv4NetmaskSet;
+        private IPv4Address ipv4Netmask;
+
+        BuilderWithParent(OFBsnInterfaceVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public MacAddress getHwAddr() {
+        return hwAddr;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setHwAddr(MacAddress hwAddr) {
+        this.hwAddr = hwAddr;
+        this.hwAddrSet = true;
+        return this;
+    }
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setName(String name) {
+        this.name = name;
+        this.nameSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getIpv4Addr() {
+        return ipv4Addr;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setIpv4Addr(IPv4Address ipv4Addr) {
+        this.ipv4Addr = ipv4Addr;
+        this.ipv4AddrSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getIpv4Netmask() {
+        return ipv4Netmask;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setIpv4Netmask(IPv4Address ipv4Netmask) {
+        this.ipv4Netmask = ipv4Netmask;
+        this.ipv4NetmaskSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFBsnInterface build() {
+                MacAddress hwAddr = this.hwAddrSet ? this.hwAddr : parentMessage.hwAddr;
+                if(hwAddr == null)
+                    throw new NullPointerException("Property hwAddr must not be null");
+                String name = this.nameSet ? this.name : parentMessage.name;
+                if(name == null)
+                    throw new NullPointerException("Property name must not be null");
+                IPv4Address ipv4Addr = this.ipv4AddrSet ? this.ipv4Addr : parentMessage.ipv4Addr;
+                if(ipv4Addr == null)
+                    throw new NullPointerException("Property ipv4Addr must not be null");
+                IPv4Address ipv4Netmask = this.ipv4NetmaskSet ? this.ipv4Netmask : parentMessage.ipv4Netmask;
+                if(ipv4Netmask == null)
+                    throw new NullPointerException("Property ipv4Netmask must not be null");
+
+                //
+                return new OFBsnInterfaceVer10(
+                    hwAddr,
+                    name,
+                    ipv4Addr,
+                    ipv4Netmask
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnInterface.Builder {
+        // OF message fields
+        private boolean hwAddrSet;
+        private MacAddress hwAddr;
+        private boolean nameSet;
+        private String name;
+        private boolean ipv4AddrSet;
+        private IPv4Address ipv4Addr;
+        private boolean ipv4NetmaskSet;
+        private IPv4Address ipv4Netmask;
+
+    @Override
+    public MacAddress getHwAddr() {
+        return hwAddr;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setHwAddr(MacAddress hwAddr) {
+        this.hwAddr = hwAddr;
+        this.hwAddrSet = true;
+        return this;
+    }
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setName(String name) {
+        this.name = name;
+        this.nameSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getIpv4Addr() {
+        return ipv4Addr;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setIpv4Addr(IPv4Address ipv4Addr) {
+        this.ipv4Addr = ipv4Addr;
+        this.ipv4AddrSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getIpv4Netmask() {
+        return ipv4Netmask;
+    }
+
+    @Override
+    public OFBsnInterface.Builder setIpv4Netmask(IPv4Address ipv4Netmask) {
+        this.ipv4Netmask = ipv4Netmask;
+        this.ipv4NetmaskSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFBsnInterface build() {
+            MacAddress hwAddr = this.hwAddrSet ? this.hwAddr : DEFAULT_HW_ADDR;
+            if(hwAddr == null)
+                throw new NullPointerException("Property hwAddr must not be null");
+            String name = this.nameSet ? this.name : DEFAULT_NAME;
+            if(name == null)
+                throw new NullPointerException("Property name must not be null");
+            IPv4Address ipv4Addr = this.ipv4AddrSet ? this.ipv4Addr : DEFAULT_IPV4_ADDR;
+            if(ipv4Addr == null)
+                throw new NullPointerException("Property ipv4Addr must not be null");
+            IPv4Address ipv4Netmask = this.ipv4NetmaskSet ? this.ipv4Netmask : DEFAULT_IPV4_NETMASK;
+            if(ipv4Netmask == null)
+                throw new NullPointerException("Property ipv4Netmask must not be null");
+
+
+            return new OFBsnInterfaceVer10(
+                    hwAddr,
+                    name,
+                    ipv4Addr,
+                    ipv4Netmask
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnInterface> {
+        @Override
+        public OFBsnInterface readFrom(ChannelBuffer bb) throws OFParseError {
+            MacAddress hwAddr = MacAddress.read6Bytes(bb);
+            // pad: 2 bytes
+            bb.skipBytes(2);
+            String name = ChannelUtils.readFixedLengthString(bb, 16);
+            IPv4Address ipv4Addr = IPv4Address.read4Bytes(bb);
+            IPv4Address ipv4Netmask = IPv4Address.read4Bytes(bb);
+
+            OFBsnInterfaceVer10 bsnInterfaceVer10 = new OFBsnInterfaceVer10(
+                    hwAddr,
+                      name,
+                      ipv4Addr,
+                      ipv4Netmask
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnInterfaceVer10);
+            return bsnInterfaceVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnInterfaceVer10Funnel FUNNEL = new OFBsnInterfaceVer10Funnel();
+    static class OFBsnInterfaceVer10Funnel implements Funnel<OFBsnInterfaceVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnInterfaceVer10 message, PrimitiveSink sink) {
+            message.hwAddr.putTo(sink);
+            // skip pad (2 bytes)
+            sink.putUnencodedChars(message.name);
+            message.ipv4Addr.putTo(sink);
+            message.ipv4Netmask.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnInterfaceVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnInterfaceVer10 message) {
+            message.hwAddr.write6Bytes(bb);
+            // pad: 2 bytes
+            bb.writeZero(2);
+            ChannelUtils.writeFixedLengthString(bb, message.name, 16);
+            message.ipv4Addr.write4Bytes(bb);
+            message.ipv4Netmask.write4Bytes(bb);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnInterfaceVer10(");
+        b.append("hwAddr=").append(hwAddr);
+        b.append(", ");
+        b.append("name=").append(name);
+        b.append(", ");
+        b.append("ipv4Addr=").append(ipv4Addr);
+        b.append(", ");
+        b.append("ipv4Netmask=").append(ipv4Netmask);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnInterfaceVer10 other = (OFBsnInterfaceVer10) obj;
+
+        if (hwAddr == null) {
+            if (other.hwAddr != null)
+                return false;
+        } else if (!hwAddr.equals(other.hwAddr))
+            return false;
+        if (name == null) {
+            if (other.name != null)
+                return false;
+        } else if (!name.equals(other.name))
+            return false;
+        if (ipv4Addr == null) {
+            if (other.ipv4Addr != null)
+                return false;
+        } else if (!ipv4Addr.equals(other.ipv4Addr))
+            return false;
+        if (ipv4Netmask == null) {
+            if (other.ipv4Netmask != null)
+                return false;
+        } else if (!ipv4Netmask.equals(other.ipv4Netmask))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((hwAddr == null) ? 0 : hwAddr.hashCode());
+        result = prime * result + ((name == null) ? 0 : name.hashCode());
+        result = prime * result + ((ipv4Addr == null) ? 0 : ipv4Addr.hashCode());
+        result = prime * result + ((ipv4Netmask == null) ? 0 : ipv4Netmask.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java
new file mode 100644
index 0000000..9d16d85
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java
@@ -0,0 +1,462 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnPduRxReplyVer10 implements OFBsnPduRxReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnPduRxReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 23;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+        private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+        private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final long status;
+    private final OFPort portNo;
+    private final short slotNum;
+//
+    // Immutable default instance
+    final static OFBsnPduRxReplyVer10 DEFAULT = new OFBsnPduRxReplyVer10(
+        DEFAULT_XID, DEFAULT_STATUS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnPduRxReplyVer10(long xid, long status, OFPort portNo, short slotNum) {
+        this.xid = xid;
+        this.status = status;
+        this.portNo = portNo;
+        this.slotNum = slotNum;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x22L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+
+
+    public OFBsnPduRxReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnPduRxReply.Builder {
+        final OFBsnPduRxReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+
+        BuilderWithParent(OFBsnPduRxReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x22L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnPduRxReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long status = this.statusSet ? this.status : parentMessage.status;
+                OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+                if(portNo == null)
+                    throw new NullPointerException("Property portNo must not be null");
+                short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+
+                //
+                return new OFBsnPduRxReplyVer10(
+                    xid,
+                    status,
+                    portNo,
+                    slotNum
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnPduRxReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x22L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduRxReply.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnPduRxReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+            OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+            if(portNo == null)
+                throw new NullPointerException("Property portNo must not be null");
+            short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+
+
+            return new OFBsnPduRxReplyVer10(
+                    xid,
+                    status,
+                    portNo,
+                    slotNum
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnPduRxReply> {
+        @Override
+        public OFBsnPduRxReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 23)
+                throw new OFParseError("Wrong length: Expected=23(23), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x22L
+            int subtype = bb.readInt();
+            if(subtype != 0x22)
+                throw new OFParseError("Wrong subtype: Expected=0x22L(0x22L), got="+subtype);
+            long status = U32.f(bb.readInt());
+            OFPort portNo = OFPort.read2Bytes(bb);
+            short slotNum = U8.f(bb.readByte());
+
+            OFBsnPduRxReplyVer10 bsnPduRxReplyVer10 = new OFBsnPduRxReplyVer10(
+                    xid,
+                      status,
+                      portNo,
+                      slotNum
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnPduRxReplyVer10);
+            return bsnPduRxReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnPduRxReplyVer10Funnel FUNNEL = new OFBsnPduRxReplyVer10Funnel();
+    static class OFBsnPduRxReplyVer10Funnel implements Funnel<OFBsnPduRxReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnPduRxReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 23
+            sink.putShort((short) 0x17);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x22L
+            sink.putInt(0x22);
+            sink.putLong(message.status);
+            message.portNo.putTo(sink);
+            sink.putShort(message.slotNum);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnPduRxReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnPduRxReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 23
+            bb.writeShort((short) 0x17);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x22L
+            bb.writeInt(0x22);
+            bb.writeInt(U32.t(message.status));
+            message.portNo.write2Bytes(bb);
+            bb.writeByte(U8.t(message.slotNum));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnPduRxReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(", ");
+        b.append("portNo=").append(portNo);
+        b.append(", ");
+        b.append("slotNum=").append(slotNum);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnPduRxReplyVer10 other = (OFBsnPduRxReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( status != other.status)
+            return false;
+        if (portNo == null) {
+            if (other.portNo != null)
+                return false;
+        } else if (!portNo.equals(other.portNo))
+            return false;
+        if( slotNum != other.slotNum)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+        result = prime * result + slotNum;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java
new file mode 100644
index 0000000..5f6a942
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java
@@ -0,0 +1,524 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnPduRxRequestVer10 implements OFBsnPduRxRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnPduRxRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 26;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_TIMEOUT_MS = 0x0L;
+        private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+        private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+        private final static byte[] DEFAULT_DATA = new byte[0];
+
+    // OF message fields
+    private final long xid;
+    private final long timeoutMs;
+    private final OFPort portNo;
+    private final short slotNum;
+    private final byte[] data;
+//
+    // Immutable default instance
+    final static OFBsnPduRxRequestVer10 DEFAULT = new OFBsnPduRxRequestVer10(
+        DEFAULT_XID, DEFAULT_TIMEOUT_MS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM, DEFAULT_DATA
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnPduRxRequestVer10(long xid, long timeoutMs, OFPort portNo, short slotNum, byte[] data) {
+        this.xid = xid;
+        this.timeoutMs = timeoutMs;
+        this.portNo = portNo;
+        this.slotNum = slotNum;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x21L;
+    }
+
+    @Override
+    public long getTimeoutMs() {
+        return timeoutMs;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+
+
+    public OFBsnPduRxRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnPduRxRequest.Builder {
+        final OFBsnPduRxRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean timeoutMsSet;
+        private long timeoutMs;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+        private boolean dataSet;
+        private byte[] data;
+
+        BuilderWithParent(OFBsnPduRxRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x21L;
+    }
+
+    @Override
+    public long getTimeoutMs() {
+        return timeoutMs;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setTimeoutMs(long timeoutMs) {
+        this.timeoutMs = timeoutMs;
+        this.timeoutMsSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnPduRxRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long timeoutMs = this.timeoutMsSet ? this.timeoutMs : parentMessage.timeoutMs;
+                OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+                if(portNo == null)
+                    throw new NullPointerException("Property portNo must not be null");
+                short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+                byte[] data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFBsnPduRxRequestVer10(
+                    xid,
+                    timeoutMs,
+                    portNo,
+                    slotNum,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnPduRxRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean timeoutMsSet;
+        private long timeoutMs;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+        private boolean dataSet;
+        private byte[] data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x21L;
+    }
+
+    @Override
+    public long getTimeoutMs() {
+        return timeoutMs;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setTimeoutMs(long timeoutMs) {
+        this.timeoutMs = timeoutMs;
+        this.timeoutMsSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnPduRxRequest.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnPduRxRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long timeoutMs = this.timeoutMsSet ? this.timeoutMs : DEFAULT_TIMEOUT_MS;
+            OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+            if(portNo == null)
+                throw new NullPointerException("Property portNo must not be null");
+            short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+            byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFBsnPduRxRequestVer10(
+                    xid,
+                    timeoutMs,
+                    portNo,
+                    slotNum,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnPduRxRequest> {
+        @Override
+        public OFBsnPduRxRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x21L
+            int subtype = bb.readInt();
+            if(subtype != 0x21)
+                throw new OFParseError("Wrong subtype: Expected=0x21L(0x21L), got="+subtype);
+            long timeoutMs = U32.f(bb.readInt());
+            OFPort portNo = OFPort.read2Bytes(bb);
+            short slotNum = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+            byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+            OFBsnPduRxRequestVer10 bsnPduRxRequestVer10 = new OFBsnPduRxRequestVer10(
+                    xid,
+                      timeoutMs,
+                      portNo,
+                      slotNum,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnPduRxRequestVer10);
+            return bsnPduRxRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnPduRxRequestVer10Funnel FUNNEL = new OFBsnPduRxRequestVer10Funnel();
+    static class OFBsnPduRxRequestVer10Funnel implements Funnel<OFBsnPduRxRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnPduRxRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x21L
+            sink.putInt(0x21);
+            sink.putLong(message.timeoutMs);
+            message.portNo.putTo(sink);
+            sink.putShort(message.slotNum);
+            // skip pad (3 bytes)
+            sink.putBytes(message.data);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnPduRxRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnPduRxRequestVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x21L
+            bb.writeInt(0x21);
+            bb.writeInt(U32.t(message.timeoutMs));
+            message.portNo.write2Bytes(bb);
+            bb.writeByte(U8.t(message.slotNum));
+            // pad: 3 bytes
+            bb.writeZero(3);
+            bb.writeBytes(message.data);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnPduRxRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("timeoutMs=").append(timeoutMs);
+        b.append(", ");
+        b.append("portNo=").append(portNo);
+        b.append(", ");
+        b.append("slotNum=").append(slotNum);
+        b.append(", ");
+        b.append("data=").append(Arrays.toString(data));
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnPduRxRequestVer10 other = (OFBsnPduRxRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( timeoutMs != other.timeoutMs)
+            return false;
+        if (portNo == null) {
+            if (other.portNo != null)
+                return false;
+        } else if (!portNo.equals(other.portNo))
+            return false;
+        if( slotNum != other.slotNum)
+            return false;
+        if (!Arrays.equals(data, other.data))
+                return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (timeoutMs ^ (timeoutMs >>> 32));
+        result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+        result = prime * result + slotNum;
+        result = prime * result + Arrays.hashCode(data);
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java
new file mode 100644
index 0000000..129b62a
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java
@@ -0,0 +1,415 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnPduRxTimeoutVer10 implements OFBsnPduRxTimeout {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnPduRxTimeoutVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 19;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+        private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final OFPort portNo;
+    private final short slotNum;
+//
+    // Immutable default instance
+    final static OFBsnPduRxTimeoutVer10 DEFAULT = new OFBsnPduRxTimeoutVer10(
+        DEFAULT_XID, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnPduRxTimeoutVer10(long xid, OFPort portNo, short slotNum) {
+        this.xid = xid;
+        this.portNo = portNo;
+        this.slotNum = slotNum;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x23L;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+
+
+    public OFBsnPduRxTimeout.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnPduRxTimeout.Builder {
+        final OFBsnPduRxTimeoutVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+
+        BuilderWithParent(OFBsnPduRxTimeoutVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduRxTimeout.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x23L;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduRxTimeout.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduRxTimeout.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnPduRxTimeout build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+                if(portNo == null)
+                    throw new NullPointerException("Property portNo must not be null");
+                short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+
+                //
+                return new OFBsnPduRxTimeoutVer10(
+                    xid,
+                    portNo,
+                    slotNum
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnPduRxTimeout.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduRxTimeout.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x23L;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduRxTimeout.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduRxTimeout.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnPduRxTimeout build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+            if(portNo == null)
+                throw new NullPointerException("Property portNo must not be null");
+            short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+
+
+            return new OFBsnPduRxTimeoutVer10(
+                    xid,
+                    portNo,
+                    slotNum
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnPduRxTimeout> {
+        @Override
+        public OFBsnPduRxTimeout readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 19)
+                throw new OFParseError("Wrong length: Expected=19(19), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x23L
+            int subtype = bb.readInt();
+            if(subtype != 0x23)
+                throw new OFParseError("Wrong subtype: Expected=0x23L(0x23L), got="+subtype);
+            OFPort portNo = OFPort.read2Bytes(bb);
+            short slotNum = U8.f(bb.readByte());
+
+            OFBsnPduRxTimeoutVer10 bsnPduRxTimeoutVer10 = new OFBsnPduRxTimeoutVer10(
+                    xid,
+                      portNo,
+                      slotNum
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnPduRxTimeoutVer10);
+            return bsnPduRxTimeoutVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnPduRxTimeoutVer10Funnel FUNNEL = new OFBsnPduRxTimeoutVer10Funnel();
+    static class OFBsnPduRxTimeoutVer10Funnel implements Funnel<OFBsnPduRxTimeoutVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnPduRxTimeoutVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 19
+            sink.putShort((short) 0x13);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x23L
+            sink.putInt(0x23);
+            message.portNo.putTo(sink);
+            sink.putShort(message.slotNum);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnPduRxTimeoutVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnPduRxTimeoutVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 19
+            bb.writeShort((short) 0x13);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x23L
+            bb.writeInt(0x23);
+            message.portNo.write2Bytes(bb);
+            bb.writeByte(U8.t(message.slotNum));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnPduRxTimeoutVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("portNo=").append(portNo);
+        b.append(", ");
+        b.append("slotNum=").append(slotNum);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnPduRxTimeoutVer10 other = (OFBsnPduRxTimeoutVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (portNo == null) {
+            if (other.portNo != null)
+                return false;
+        } else if (!portNo.equals(other.portNo))
+            return false;
+        if( slotNum != other.slotNum)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+        result = prime * result + slotNum;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java
new file mode 100644
index 0000000..3faf113
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnPduSlotNumT;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBsnPduSlotNumTSerializerVer10 {
+
+    public final static byte PDU_SLOT_NUM_ANY_VAL = (byte) 0xff;
+
+    public static OFBsnPduSlotNumT readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readByte());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFBsnPduSlotNumT e) {
+        bb.writeByte(toWireValue(e));
+    }
+
+    public static void putTo(OFBsnPduSlotNumT e, PrimitiveSink sink) {
+        sink.putByte(toWireValue(e));
+    }
+
+    public static OFBsnPduSlotNumT ofWireValue(byte val) {
+        switch(val) {
+            case PDU_SLOT_NUM_ANY_VAL:
+                return OFBsnPduSlotNumT.PDU_SLOT_NUM_ANY;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFBsnPduSlotNumT in version 1.0: " + val);
+        }
+    }
+
+
+    public static byte toWireValue(OFBsnPduSlotNumT e) {
+        switch(e) {
+            case PDU_SLOT_NUM_ANY:
+                return PDU_SLOT_NUM_ANY_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFBsnPduSlotNumT in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java
new file mode 100644
index 0000000..5bbf0da
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java
@@ -0,0 +1,462 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnPduTxReplyVer10 implements OFBsnPduTxReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnPduTxReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 23;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+        private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+        private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final long status;
+    private final OFPort portNo;
+    private final short slotNum;
+//
+    // Immutable default instance
+    final static OFBsnPduTxReplyVer10 DEFAULT = new OFBsnPduTxReplyVer10(
+        DEFAULT_XID, DEFAULT_STATUS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnPduTxReplyVer10(long xid, long status, OFPort portNo, short slotNum) {
+        this.xid = xid;
+        this.status = status;
+        this.portNo = portNo;
+        this.slotNum = slotNum;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x20L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+
+
+    public OFBsnPduTxReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnPduTxReply.Builder {
+        final OFBsnPduTxReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+
+        BuilderWithParent(OFBsnPduTxReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x20L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnPduTxReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long status = this.statusSet ? this.status : parentMessage.status;
+                OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+                if(portNo == null)
+                    throw new NullPointerException("Property portNo must not be null");
+                short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+
+                //
+                return new OFBsnPduTxReplyVer10(
+                    xid,
+                    status,
+                    portNo,
+                    slotNum
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnPduTxReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x20L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduTxReply.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnPduTxReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+            OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+            if(portNo == null)
+                throw new NullPointerException("Property portNo must not be null");
+            short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+
+
+            return new OFBsnPduTxReplyVer10(
+                    xid,
+                    status,
+                    portNo,
+                    slotNum
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnPduTxReply> {
+        @Override
+        public OFBsnPduTxReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 23)
+                throw new OFParseError("Wrong length: Expected=23(23), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x20L
+            int subtype = bb.readInt();
+            if(subtype != 0x20)
+                throw new OFParseError("Wrong subtype: Expected=0x20L(0x20L), got="+subtype);
+            long status = U32.f(bb.readInt());
+            OFPort portNo = OFPort.read2Bytes(bb);
+            short slotNum = U8.f(bb.readByte());
+
+            OFBsnPduTxReplyVer10 bsnPduTxReplyVer10 = new OFBsnPduTxReplyVer10(
+                    xid,
+                      status,
+                      portNo,
+                      slotNum
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnPduTxReplyVer10);
+            return bsnPduTxReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnPduTxReplyVer10Funnel FUNNEL = new OFBsnPduTxReplyVer10Funnel();
+    static class OFBsnPduTxReplyVer10Funnel implements Funnel<OFBsnPduTxReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnPduTxReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 23
+            sink.putShort((short) 0x17);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x20L
+            sink.putInt(0x20);
+            sink.putLong(message.status);
+            message.portNo.putTo(sink);
+            sink.putShort(message.slotNum);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnPduTxReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnPduTxReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 23
+            bb.writeShort((short) 0x17);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x20L
+            bb.writeInt(0x20);
+            bb.writeInt(U32.t(message.status));
+            message.portNo.write2Bytes(bb);
+            bb.writeByte(U8.t(message.slotNum));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnPduTxReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(", ");
+        b.append("portNo=").append(portNo);
+        b.append(", ");
+        b.append("slotNum=").append(slotNum);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnPduTxReplyVer10 other = (OFBsnPduTxReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( status != other.status)
+            return false;
+        if (portNo == null) {
+            if (other.portNo != null)
+                return false;
+        } else if (!portNo.equals(other.portNo))
+            return false;
+        if( slotNum != other.slotNum)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+        result = prime * result + slotNum;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java
new file mode 100644
index 0000000..2f85edb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java
@@ -0,0 +1,524 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnPduTxRequestVer10 implements OFBsnPduTxRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnPduTxRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 26;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_TX_INTERVAL_MS = 0x0L;
+        private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+        private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+        private final static byte[] DEFAULT_DATA = new byte[0];
+
+    // OF message fields
+    private final long xid;
+    private final long txIntervalMs;
+    private final OFPort portNo;
+    private final short slotNum;
+    private final byte[] data;
+//
+    // Immutable default instance
+    final static OFBsnPduTxRequestVer10 DEFAULT = new OFBsnPduTxRequestVer10(
+        DEFAULT_XID, DEFAULT_TX_INTERVAL_MS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM, DEFAULT_DATA
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnPduTxRequestVer10(long xid, long txIntervalMs, OFPort portNo, short slotNum, byte[] data) {
+        this.xid = xid;
+        this.txIntervalMs = txIntervalMs;
+        this.portNo = portNo;
+        this.slotNum = slotNum;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1fL;
+    }
+
+    @Override
+    public long getTxIntervalMs() {
+        return txIntervalMs;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+
+
+    public OFBsnPduTxRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnPduTxRequest.Builder {
+        final OFBsnPduTxRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean txIntervalMsSet;
+        private long txIntervalMs;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+        private boolean dataSet;
+        private byte[] data;
+
+        BuilderWithParent(OFBsnPduTxRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1fL;
+    }
+
+    @Override
+    public long getTxIntervalMs() {
+        return txIntervalMs;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setTxIntervalMs(long txIntervalMs) {
+        this.txIntervalMs = txIntervalMs;
+        this.txIntervalMsSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnPduTxRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long txIntervalMs = this.txIntervalMsSet ? this.txIntervalMs : parentMessage.txIntervalMs;
+                OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+                if(portNo == null)
+                    throw new NullPointerException("Property portNo must not be null");
+                short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+                byte[] data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFBsnPduTxRequestVer10(
+                    xid,
+                    txIntervalMs,
+                    portNo,
+                    slotNum,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnPduTxRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean txIntervalMsSet;
+        private long txIntervalMs;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean slotNumSet;
+        private short slotNum;
+        private boolean dataSet;
+        private byte[] data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1fL;
+    }
+
+    @Override
+    public long getTxIntervalMs() {
+        return txIntervalMs;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setTxIntervalMs(long txIntervalMs) {
+        this.txIntervalMs = txIntervalMs;
+        this.txIntervalMsSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public short getSlotNum() {
+        return slotNum;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setSlotNum(short slotNum) {
+        this.slotNum = slotNum;
+        this.slotNumSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnPduTxRequest.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnPduTxRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long txIntervalMs = this.txIntervalMsSet ? this.txIntervalMs : DEFAULT_TX_INTERVAL_MS;
+            OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+            if(portNo == null)
+                throw new NullPointerException("Property portNo must not be null");
+            short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+            byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFBsnPduTxRequestVer10(
+                    xid,
+                    txIntervalMs,
+                    portNo,
+                    slotNum,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnPduTxRequest> {
+        @Override
+        public OFBsnPduTxRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x1fL
+            int subtype = bb.readInt();
+            if(subtype != 0x1f)
+                throw new OFParseError("Wrong subtype: Expected=0x1fL(0x1fL), got="+subtype);
+            long txIntervalMs = U32.f(bb.readInt());
+            OFPort portNo = OFPort.read2Bytes(bb);
+            short slotNum = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+            byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+            OFBsnPduTxRequestVer10 bsnPduTxRequestVer10 = new OFBsnPduTxRequestVer10(
+                    xid,
+                      txIntervalMs,
+                      portNo,
+                      slotNum,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnPduTxRequestVer10);
+            return bsnPduTxRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnPduTxRequestVer10Funnel FUNNEL = new OFBsnPduTxRequestVer10Funnel();
+    static class OFBsnPduTxRequestVer10Funnel implements Funnel<OFBsnPduTxRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnPduTxRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x1fL
+            sink.putInt(0x1f);
+            sink.putLong(message.txIntervalMs);
+            message.portNo.putTo(sink);
+            sink.putShort(message.slotNum);
+            // skip pad (3 bytes)
+            sink.putBytes(message.data);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnPduTxRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnPduTxRequestVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x1fL
+            bb.writeInt(0x1f);
+            bb.writeInt(U32.t(message.txIntervalMs));
+            message.portNo.write2Bytes(bb);
+            bb.writeByte(U8.t(message.slotNum));
+            // pad: 3 bytes
+            bb.writeZero(3);
+            bb.writeBytes(message.data);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnPduTxRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("txIntervalMs=").append(txIntervalMs);
+        b.append(", ");
+        b.append("portNo=").append(portNo);
+        b.append(", ");
+        b.append("slotNum=").append(slotNum);
+        b.append(", ");
+        b.append("data=").append(Arrays.toString(data));
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnPduTxRequestVer10 other = (OFBsnPduTxRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( txIntervalMs != other.txIntervalMs)
+            return false;
+        if (portNo == null) {
+            if (other.portNo != null)
+                return false;
+        } else if (!portNo.equals(other.portNo))
+            return false;
+        if( slotNum != other.slotNum)
+            return false;
+        if (!Arrays.equals(data, other.data))
+                return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (txIntervalMs ^ (txIntervalMs >>> 32));
+        result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+        result = prime * result + slotNum;
+        result = prime * result + Arrays.hashCode(data);
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java
new file mode 100644
index 0000000..46ccc66
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java
@@ -0,0 +1,413 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetIpMaskVer10 implements OFBsnSetIpMask {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnSetIpMaskVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_INDEX = (short) 0x0;
+        private final static long DEFAULT_MASK = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final short index;
+    private final long mask;
+//
+    // Immutable default instance
+    final static OFBsnSetIpMaskVer10 DEFAULT = new OFBsnSetIpMaskVer10(
+        DEFAULT_XID, DEFAULT_INDEX, DEFAULT_MASK
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnSetIpMaskVer10(long xid, short index, long mask) {
+        this.xid = xid;
+        this.index = index;
+        this.mask = mask;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x0L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public long getMask() {
+        return mask;
+    }
+
+
+
+    public OFBsnSetIpMask.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnSetIpMask.Builder {
+        final OFBsnSetIpMaskVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean indexSet;
+        private short index;
+        private boolean maskSet;
+        private long mask;
+
+        BuilderWithParent(OFBsnSetIpMaskVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetIpMask.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x0L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public OFBsnSetIpMask.Builder setIndex(short index) {
+        this.index = index;
+        this.indexSet = true;
+        return this;
+    }
+    @Override
+    public long getMask() {
+        return mask;
+    }
+
+    @Override
+    public OFBsnSetIpMask.Builder setMask(long mask) {
+        this.mask = mask;
+        this.maskSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnSetIpMask build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short index = this.indexSet ? this.index : parentMessage.index;
+                long mask = this.maskSet ? this.mask : parentMessage.mask;
+
+                //
+                return new OFBsnSetIpMaskVer10(
+                    xid,
+                    index,
+                    mask
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnSetIpMask.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean indexSet;
+        private short index;
+        private boolean maskSet;
+        private long mask;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetIpMask.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x0L;
+    }
+
+    @Override
+    public short getIndex() {
+        return index;
+    }
+
+    @Override
+    public OFBsnSetIpMask.Builder setIndex(short index) {
+        this.index = index;
+        this.indexSet = true;
+        return this;
+    }
+    @Override
+    public long getMask() {
+        return mask;
+    }
+
+    @Override
+    public OFBsnSetIpMask.Builder setMask(long mask) {
+        this.mask = mask;
+        this.maskSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnSetIpMask build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short index = this.indexSet ? this.index : DEFAULT_INDEX;
+            long mask = this.maskSet ? this.mask : DEFAULT_MASK;
+
+
+            return new OFBsnSetIpMaskVer10(
+                    xid,
+                    index,
+                    mask
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnSetIpMask> {
+        @Override
+        public OFBsnSetIpMask readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x0L
+            int subtype = bb.readInt();
+            if(subtype != 0x0)
+                throw new OFParseError("Wrong subtype: Expected=0x0L(0x0L), got="+subtype);
+            short index = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+            long mask = U32.f(bb.readInt());
+
+            OFBsnSetIpMaskVer10 bsnSetIpMaskVer10 = new OFBsnSetIpMaskVer10(
+                    xid,
+                      index,
+                      mask
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnSetIpMaskVer10);
+            return bsnSetIpMaskVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnSetIpMaskVer10Funnel FUNNEL = new OFBsnSetIpMaskVer10Funnel();
+    static class OFBsnSetIpMaskVer10Funnel implements Funnel<OFBsnSetIpMaskVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnSetIpMaskVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x0L
+            sink.putInt(0x0);
+            sink.putShort(message.index);
+            // skip pad (3 bytes)
+            sink.putLong(message.mask);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnSetIpMaskVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnSetIpMaskVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x0L
+            bb.writeInt(0x0);
+            bb.writeByte(U8.t(message.index));
+            // pad: 3 bytes
+            bb.writeZero(3);
+            bb.writeInt(U32.t(message.mask));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnSetIpMaskVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("index=").append(index);
+        b.append(", ");
+        b.append("mask=").append(mask);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnSetIpMaskVer10 other = (OFBsnSetIpMaskVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( index != other.index)
+            return false;
+        if( mask != other.mask)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + index;
+        result = prime *  (int) (mask ^ (mask >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java
new file mode 100644
index 0000000..2f93768
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java
@@ -0,0 +1,460 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetL2TableReplyVer10 implements OFBsnSetL2TableReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnSetL2TableReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static boolean DEFAULT_L2_TABLE_ENABLE = false;
+        private final static int DEFAULT_L2_TABLE_PRIORITY = 0x0;
+        private final static long DEFAULT_STATUS = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final boolean l2TableEnable;
+    private final int l2TablePriority;
+    private final long status;
+//
+    // Immutable default instance
+    final static OFBsnSetL2TableReplyVer10 DEFAULT = new OFBsnSetL2TableReplyVer10(
+        DEFAULT_XID, DEFAULT_L2_TABLE_ENABLE, DEFAULT_L2_TABLE_PRIORITY, DEFAULT_STATUS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnSetL2TableReplyVer10(long xid, boolean l2TableEnable, int l2TablePriority, long status) {
+        this.xid = xid;
+        this.l2TableEnable = l2TableEnable;
+        this.l2TablePriority = l2TablePriority;
+        this.status = status;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x18L;
+    }
+
+    @Override
+    public boolean isL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+
+
+    public OFBsnSetL2TableReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnSetL2TableReply.Builder {
+        final OFBsnSetL2TableReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean l2TableEnableSet;
+        private boolean l2TableEnable;
+        private boolean l2TablePrioritySet;
+        private int l2TablePriority;
+        private boolean statusSet;
+        private long status;
+
+        BuilderWithParent(OFBsnSetL2TableReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x18L;
+    }
+
+    @Override
+    public boolean isL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setL2TableEnable(boolean l2TableEnable) {
+        this.l2TableEnable = l2TableEnable;
+        this.l2TableEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+        this.l2TablePriority = l2TablePriority;
+        this.l2TablePrioritySet = true;
+        return this;
+    }
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnSetL2TableReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : parentMessage.l2TableEnable;
+                int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : parentMessage.l2TablePriority;
+                long status = this.statusSet ? this.status : parentMessage.status;
+
+                //
+                return new OFBsnSetL2TableReplyVer10(
+                    xid,
+                    l2TableEnable,
+                    l2TablePriority,
+                    status
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnSetL2TableReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean l2TableEnableSet;
+        private boolean l2TableEnable;
+        private boolean l2TablePrioritySet;
+        private int l2TablePriority;
+        private boolean statusSet;
+        private long status;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x18L;
+    }
+
+    @Override
+    public boolean isL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setL2TableEnable(boolean l2TableEnable) {
+        this.l2TableEnable = l2TableEnable;
+        this.l2TableEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+        this.l2TablePriority = l2TablePriority;
+        this.l2TablePrioritySet = true;
+        return this;
+    }
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnSetL2TableReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnSetL2TableReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : DEFAULT_L2_TABLE_ENABLE;
+            int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : DEFAULT_L2_TABLE_PRIORITY;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+            return new OFBsnSetL2TableReplyVer10(
+                    xid,
+                    l2TableEnable,
+                    l2TablePriority,
+                    status
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnSetL2TableReply> {
+        @Override
+        public OFBsnSetL2TableReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x18L
+            int subtype = bb.readInt();
+            if(subtype != 0x18)
+                throw new OFParseError("Wrong subtype: Expected=0x18L(0x18L), got="+subtype);
+            boolean l2TableEnable = (bb.readByte() != 0);
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            int l2TablePriority = U16.f(bb.readShort());
+            long status = U32.f(bb.readInt());
+
+            OFBsnSetL2TableReplyVer10 bsnSetL2TableReplyVer10 = new OFBsnSetL2TableReplyVer10(
+                    xid,
+                      l2TableEnable,
+                      l2TablePriority,
+                      status
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnSetL2TableReplyVer10);
+            return bsnSetL2TableReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnSetL2TableReplyVer10Funnel FUNNEL = new OFBsnSetL2TableReplyVer10Funnel();
+    static class OFBsnSetL2TableReplyVer10Funnel implements Funnel<OFBsnSetL2TableReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnSetL2TableReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x18L
+            sink.putInt(0x18);
+            sink.putBoolean(message.l2TableEnable);
+            // skip pad (1 bytes)
+            sink.putInt(message.l2TablePriority);
+            sink.putLong(message.status);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnSetL2TableReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnSetL2TableReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x18L
+            bb.writeInt(0x18);
+            bb.writeByte(message.l2TableEnable ? 1 : 0);
+            // pad: 1 bytes
+            bb.writeZero(1);
+            bb.writeShort(U16.t(message.l2TablePriority));
+            bb.writeInt(U32.t(message.status));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnSetL2TableReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("l2TableEnable=").append(l2TableEnable);
+        b.append(", ");
+        b.append("l2TablePriority=").append(l2TablePriority);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnSetL2TableReplyVer10 other = (OFBsnSetL2TableReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( l2TableEnable != other.l2TableEnable)
+            return false;
+        if( l2TablePriority != other.l2TablePriority)
+            return false;
+        if( status != other.status)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + (l2TableEnable ? 1231 : 1237);
+        result = prime * result + l2TablePriority;
+        result = prime *  (int) (status ^ (status >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java
new file mode 100644
index 0000000..dbc6dea
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetL2TableRequestVer10 implements OFBsnSetL2TableRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnSetL2TableRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static boolean DEFAULT_L2_TABLE_ENABLE = false;
+        private final static int DEFAULT_L2_TABLE_PRIORITY = 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final boolean l2TableEnable;
+    private final int l2TablePriority;
+//
+    // Immutable default instance
+    final static OFBsnSetL2TableRequestVer10 DEFAULT = new OFBsnSetL2TableRequestVer10(
+        DEFAULT_XID, DEFAULT_L2_TABLE_ENABLE, DEFAULT_L2_TABLE_PRIORITY
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnSetL2TableRequestVer10(long xid, boolean l2TableEnable, int l2TablePriority) {
+        this.xid = xid;
+        this.l2TableEnable = l2TableEnable;
+        this.l2TablePriority = l2TablePriority;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xcL;
+    }
+
+    @Override
+    public boolean isL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+
+
+    public OFBsnSetL2TableRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnSetL2TableRequest.Builder {
+        final OFBsnSetL2TableRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean l2TableEnableSet;
+        private boolean l2TableEnable;
+        private boolean l2TablePrioritySet;
+        private int l2TablePriority;
+
+        BuilderWithParent(OFBsnSetL2TableRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetL2TableRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xcL;
+    }
+
+    @Override
+    public boolean isL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public OFBsnSetL2TableRequest.Builder setL2TableEnable(boolean l2TableEnable) {
+        this.l2TableEnable = l2TableEnable;
+        this.l2TableEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+    @Override
+    public OFBsnSetL2TableRequest.Builder setL2TablePriority(int l2TablePriority) {
+        this.l2TablePriority = l2TablePriority;
+        this.l2TablePrioritySet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnSetL2TableRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : parentMessage.l2TableEnable;
+                int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : parentMessage.l2TablePriority;
+
+                //
+                return new OFBsnSetL2TableRequestVer10(
+                    xid,
+                    l2TableEnable,
+                    l2TablePriority
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnSetL2TableRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean l2TableEnableSet;
+        private boolean l2TableEnable;
+        private boolean l2TablePrioritySet;
+        private int l2TablePriority;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetL2TableRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xcL;
+    }
+
+    @Override
+    public boolean isL2TableEnable() {
+        return l2TableEnable;
+    }
+
+    @Override
+    public OFBsnSetL2TableRequest.Builder setL2TableEnable(boolean l2TableEnable) {
+        this.l2TableEnable = l2TableEnable;
+        this.l2TableEnableSet = true;
+        return this;
+    }
+    @Override
+    public int getL2TablePriority() {
+        return l2TablePriority;
+    }
+
+    @Override
+    public OFBsnSetL2TableRequest.Builder setL2TablePriority(int l2TablePriority) {
+        this.l2TablePriority = l2TablePriority;
+        this.l2TablePrioritySet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnSetL2TableRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : DEFAULT_L2_TABLE_ENABLE;
+            int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : DEFAULT_L2_TABLE_PRIORITY;
+
+
+            return new OFBsnSetL2TableRequestVer10(
+                    xid,
+                    l2TableEnable,
+                    l2TablePriority
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnSetL2TableRequest> {
+        @Override
+        public OFBsnSetL2TableRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0xcL
+            int subtype = bb.readInt();
+            if(subtype != 0xc)
+                throw new OFParseError("Wrong subtype: Expected=0xcL(0xcL), got="+subtype);
+            boolean l2TableEnable = (bb.readByte() != 0);
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            int l2TablePriority = U16.f(bb.readShort());
+            // pad: 4 bytes
+            bb.skipBytes(4);
+
+            OFBsnSetL2TableRequestVer10 bsnSetL2TableRequestVer10 = new OFBsnSetL2TableRequestVer10(
+                    xid,
+                      l2TableEnable,
+                      l2TablePriority
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnSetL2TableRequestVer10);
+            return bsnSetL2TableRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnSetL2TableRequestVer10Funnel FUNNEL = new OFBsnSetL2TableRequestVer10Funnel();
+    static class OFBsnSetL2TableRequestVer10Funnel implements Funnel<OFBsnSetL2TableRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnSetL2TableRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0xcL
+            sink.putInt(0xc);
+            sink.putBoolean(message.l2TableEnable);
+            // skip pad (1 bytes)
+            sink.putInt(message.l2TablePriority);
+            // skip pad (4 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnSetL2TableRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnSetL2TableRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0xcL
+            bb.writeInt(0xc);
+            bb.writeByte(message.l2TableEnable ? 1 : 0);
+            // pad: 1 bytes
+            bb.writeZero(1);
+            bb.writeShort(U16.t(message.l2TablePriority));
+            // pad: 4 bytes
+            bb.writeZero(4);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnSetL2TableRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("l2TableEnable=").append(l2TableEnable);
+        b.append(", ");
+        b.append("l2TablePriority=").append(l2TablePriority);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnSetL2TableRequestVer10 other = (OFBsnSetL2TableRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( l2TableEnable != other.l2TableEnable)
+            return false;
+        if( l2TablePriority != other.l2TablePriority)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + (l2TableEnable ? 1231 : 1237);
+        result = prime * result + l2TablePriority;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java
new file mode 100644
index 0000000..cb71dd5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetMirroringVer10 implements OFBsnSetMirroring {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnSetMirroringVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static short DEFAULT_REPORT_MIRROR_PORTS = (short) 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final short reportMirrorPorts;
+//
+    // Immutable default instance
+    final static OFBsnSetMirroringVer10 DEFAULT = new OFBsnSetMirroringVer10(
+        DEFAULT_XID, DEFAULT_REPORT_MIRROR_PORTS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnSetMirroringVer10(long xid, short reportMirrorPorts) {
+        this.xid = xid;
+        this.reportMirrorPorts = reportMirrorPorts;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x3L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+
+
+    public OFBsnSetMirroring.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnSetMirroring.Builder {
+        final OFBsnSetMirroringVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean reportMirrorPortsSet;
+        private short reportMirrorPorts;
+
+        BuilderWithParent(OFBsnSetMirroringVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetMirroring.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x3L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+    @Override
+    public OFBsnSetMirroring.Builder setReportMirrorPorts(short reportMirrorPorts) {
+        this.reportMirrorPorts = reportMirrorPorts;
+        this.reportMirrorPortsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnSetMirroring build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : parentMessage.reportMirrorPorts;
+
+                //
+                return new OFBsnSetMirroringVer10(
+                    xid,
+                    reportMirrorPorts
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnSetMirroring.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean reportMirrorPortsSet;
+        private short reportMirrorPorts;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetMirroring.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x3L;
+    }
+
+    @Override
+    public short getReportMirrorPorts() {
+        return reportMirrorPorts;
+    }
+
+    @Override
+    public OFBsnSetMirroring.Builder setReportMirrorPorts(short reportMirrorPorts) {
+        this.reportMirrorPorts = reportMirrorPorts;
+        this.reportMirrorPortsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnSetMirroring build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : DEFAULT_REPORT_MIRROR_PORTS;
+
+
+            return new OFBsnSetMirroringVer10(
+                    xid,
+                    reportMirrorPorts
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnSetMirroring> {
+        @Override
+        public OFBsnSetMirroring readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x3L
+            int subtype = bb.readInt();
+            if(subtype != 0x3)
+                throw new OFParseError("Wrong subtype: Expected=0x3L(0x3L), got="+subtype);
+            short reportMirrorPorts = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+
+            OFBsnSetMirroringVer10 bsnSetMirroringVer10 = new OFBsnSetMirroringVer10(
+                    xid,
+                      reportMirrorPorts
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnSetMirroringVer10);
+            return bsnSetMirroringVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnSetMirroringVer10Funnel FUNNEL = new OFBsnSetMirroringVer10Funnel();
+    static class OFBsnSetMirroringVer10Funnel implements Funnel<OFBsnSetMirroringVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnSetMirroringVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x3L
+            sink.putInt(0x3);
+            sink.putShort(message.reportMirrorPorts);
+            // skip pad (3 bytes)
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnSetMirroringVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnSetMirroringVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x3L
+            bb.writeInt(0x3);
+            bb.writeByte(U8.t(message.reportMirrorPorts));
+            // pad: 3 bytes
+            bb.writeZero(3);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnSetMirroringVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("reportMirrorPorts=").append(reportMirrorPorts);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnSetMirroringVer10 other = (OFBsnSetMirroringVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( reportMirrorPorts != other.reportMirrorPorts)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + reportMirrorPorts;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java
new file mode 100644
index 0000000..7791761
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetPktinSuppressionReplyVer10 implements OFBsnSetPktinSuppressionReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnSetPktinSuppressionReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long status;
+//
+    // Immutable default instance
+    final static OFBsnSetPktinSuppressionReplyVer10 DEFAULT = new OFBsnSetPktinSuppressionReplyVer10(
+        DEFAULT_XID, DEFAULT_STATUS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnSetPktinSuppressionReplyVer10(long xid, long status) {
+        this.xid = xid;
+        this.status = status;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x19L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+
+
+    public OFBsnSetPktinSuppressionReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnSetPktinSuppressionReply.Builder {
+        final OFBsnSetPktinSuppressionReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+        BuilderWithParent(OFBsnSetPktinSuppressionReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x19L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnSetPktinSuppressionReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long status = this.statusSet ? this.status : parentMessage.status;
+
+                //
+                return new OFBsnSetPktinSuppressionReplyVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnSetPktinSuppressionReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x19L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnSetPktinSuppressionReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+            return new OFBsnSetPktinSuppressionReplyVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnSetPktinSuppressionReply> {
+        @Override
+        public OFBsnSetPktinSuppressionReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x19L
+            int subtype = bb.readInt();
+            if(subtype != 0x19)
+                throw new OFParseError("Wrong subtype: Expected=0x19L(0x19L), got="+subtype);
+            long status = U32.f(bb.readInt());
+
+            OFBsnSetPktinSuppressionReplyVer10 bsnSetPktinSuppressionReplyVer10 = new OFBsnSetPktinSuppressionReplyVer10(
+                    xid,
+                      status
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnSetPktinSuppressionReplyVer10);
+            return bsnSetPktinSuppressionReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnSetPktinSuppressionReplyVer10Funnel FUNNEL = new OFBsnSetPktinSuppressionReplyVer10Funnel();
+    static class OFBsnSetPktinSuppressionReplyVer10Funnel implements Funnel<OFBsnSetPktinSuppressionReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnSetPktinSuppressionReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x19L
+            sink.putInt(0x19);
+            sink.putLong(message.status);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnSetPktinSuppressionReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnSetPktinSuppressionReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x19L
+            bb.writeInt(0x19);
+            bb.writeInt(U32.t(message.status));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnSetPktinSuppressionReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnSetPktinSuppressionReplyVer10 other = (OFBsnSetPktinSuppressionReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( status != other.status)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java
new file mode 100644
index 0000000..758af8d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java
@@ -0,0 +1,561 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetPktinSuppressionRequestVer10 implements OFBsnSetPktinSuppressionRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnSetPktinSuppressionRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 32;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static boolean DEFAULT_ENABLED = false;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+
+    // OF message fields
+    private final long xid;
+    private final boolean enabled;
+    private final int idleTimeout;
+    private final int hardTimeout;
+    private final int priority;
+    private final U64 cookie;
+//
+    // Immutable default instance
+    final static OFBsnSetPktinSuppressionRequestVer10 DEFAULT = new OFBsnSetPktinSuppressionRequestVer10(
+        DEFAULT_XID, DEFAULT_ENABLED, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_COOKIE
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnSetPktinSuppressionRequestVer10(long xid, boolean enabled, int idleTimeout, int hardTimeout, int priority, U64 cookie) {
+        this.xid = xid;
+        this.enabled = enabled;
+        this.idleTimeout = idleTimeout;
+        this.hardTimeout = hardTimeout;
+        this.priority = priority;
+        this.cookie = cookie;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xbL;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+
+
+    public OFBsnSetPktinSuppressionRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnSetPktinSuppressionRequest.Builder {
+        final OFBsnSetPktinSuppressionRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enabledSet;
+        private boolean enabled;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean cookieSet;
+        private U64 cookie;
+
+        BuilderWithParent(OFBsnSetPktinSuppressionRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xbL;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setEnabled(boolean enabled) {
+        this.enabled = enabled;
+        this.enabledSet = true;
+        return this;
+    }
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnSetPktinSuppressionRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                boolean enabled = this.enabledSet ? this.enabled : parentMessage.enabled;
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+
+                //
+                return new OFBsnSetPktinSuppressionRequestVer10(
+                    xid,
+                    enabled,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    cookie
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnSetPktinSuppressionRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean enabledSet;
+        private boolean enabled;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean cookieSet;
+        private U64 cookie;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xbL;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setEnabled(boolean enabled) {
+        this.enabled = enabled;
+        this.enabledSet = true;
+        return this;
+    }
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFBsnSetPktinSuppressionRequest.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnSetPktinSuppressionRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            boolean enabled = this.enabledSet ? this.enabled : DEFAULT_ENABLED;
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+
+
+            return new OFBsnSetPktinSuppressionRequestVer10(
+                    xid,
+                    enabled,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    cookie
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnSetPktinSuppressionRequest> {
+        @Override
+        public OFBsnSetPktinSuppressionRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 32)
+                throw new OFParseError("Wrong length: Expected=32(32), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0xbL
+            int subtype = bb.readInt();
+            if(subtype != 0xb)
+                throw new OFParseError("Wrong subtype: Expected=0xbL(0xbL), got="+subtype);
+            boolean enabled = (bb.readByte() != 0);
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            int idleTimeout = U16.f(bb.readShort());
+            int hardTimeout = U16.f(bb.readShort());
+            int priority = U16.f(bb.readShort());
+            U64 cookie = U64.ofRaw(bb.readLong());
+
+            OFBsnSetPktinSuppressionRequestVer10 bsnSetPktinSuppressionRequestVer10 = new OFBsnSetPktinSuppressionRequestVer10(
+                    xid,
+                      enabled,
+                      idleTimeout,
+                      hardTimeout,
+                      priority,
+                      cookie
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnSetPktinSuppressionRequestVer10);
+            return bsnSetPktinSuppressionRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnSetPktinSuppressionRequestVer10Funnel FUNNEL = new OFBsnSetPktinSuppressionRequestVer10Funnel();
+    static class OFBsnSetPktinSuppressionRequestVer10Funnel implements Funnel<OFBsnSetPktinSuppressionRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnSetPktinSuppressionRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 32
+            sink.putShort((short) 0x20);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0xbL
+            sink.putInt(0xb);
+            sink.putBoolean(message.enabled);
+            // skip pad (1 bytes)
+            sink.putInt(message.idleTimeout);
+            sink.putInt(message.hardTimeout);
+            sink.putInt(message.priority);
+            message.cookie.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnSetPktinSuppressionRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnSetPktinSuppressionRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 32
+            bb.writeShort((short) 0x20);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0xbL
+            bb.writeInt(0xb);
+            bb.writeByte(message.enabled ? 1 : 0);
+            // pad: 1 bytes
+            bb.writeZero(1);
+            bb.writeShort(U16.t(message.idleTimeout));
+            bb.writeShort(U16.t(message.hardTimeout));
+            bb.writeShort(U16.t(message.priority));
+            bb.writeLong(message.cookie.getValue());
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnSetPktinSuppressionRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("enabled=").append(enabled);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("hardTimeout=").append(hardTimeout);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnSetPktinSuppressionRequestVer10 other = (OFBsnSetPktinSuppressionRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( enabled != other.enabled)
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if( hardTimeout != other.hardTimeout)
+            return false;
+        if( priority != other.priority)
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + (enabled ? 1231 : 1237);
+        result = prime * result + idleTimeout;
+        result = prime * result + hardTimeout;
+        result = prime * result + priority;
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java
new file mode 100644
index 0000000..a6a04cb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnShellCommandVer10 implements OFBsnShellCommand {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnShellCommandVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_SERVICE = 0x0L;
+        private final static byte[] DEFAULT_DATA = new byte[0];
+
+    // OF message fields
+    private final long xid;
+    private final long service;
+    private final byte[] data;
+//
+    // Immutable default instance
+    final static OFBsnShellCommandVer10 DEFAULT = new OFBsnShellCommandVer10(
+        DEFAULT_XID, DEFAULT_SERVICE, DEFAULT_DATA
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnShellCommandVer10(long xid, long service, byte[] data) {
+        this.xid = xid;
+        this.service = service;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x6L;
+    }
+
+    @Override
+    public long getService() {
+        return service;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+
+
+    public OFBsnShellCommand.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnShellCommand.Builder {
+        final OFBsnShellCommandVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean serviceSet;
+        private long service;
+        private boolean dataSet;
+        private byte[] data;
+
+        BuilderWithParent(OFBsnShellCommandVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnShellCommand.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x6L;
+    }
+
+    @Override
+    public long getService() {
+        return service;
+    }
+
+    @Override
+    public OFBsnShellCommand.Builder setService(long service) {
+        this.service = service;
+        this.serviceSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnShellCommand.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnShellCommand build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long service = this.serviceSet ? this.service : parentMessage.service;
+                byte[] data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFBsnShellCommandVer10(
+                    xid,
+                    service,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnShellCommand.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean serviceSet;
+        private long service;
+        private boolean dataSet;
+        private byte[] data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnShellCommand.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x6L;
+    }
+
+    @Override
+    public long getService() {
+        return service;
+    }
+
+    @Override
+    public OFBsnShellCommand.Builder setService(long service) {
+        this.service = service;
+        this.serviceSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnShellCommand.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnShellCommand build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long service = this.serviceSet ? this.service : DEFAULT_SERVICE;
+            byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFBsnShellCommandVer10(
+                    xid,
+                    service,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnShellCommand> {
+        @Override
+        public OFBsnShellCommand readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x6L
+            int subtype = bb.readInt();
+            if(subtype != 0x6)
+                throw new OFParseError("Wrong subtype: Expected=0x6L(0x6L), got="+subtype);
+            long service = U32.f(bb.readInt());
+            byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+            OFBsnShellCommandVer10 bsnShellCommandVer10 = new OFBsnShellCommandVer10(
+                    xid,
+                      service,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnShellCommandVer10);
+            return bsnShellCommandVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnShellCommandVer10Funnel FUNNEL = new OFBsnShellCommandVer10Funnel();
+    static class OFBsnShellCommandVer10Funnel implements Funnel<OFBsnShellCommandVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnShellCommandVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x6L
+            sink.putInt(0x6);
+            sink.putLong(message.service);
+            sink.putBytes(message.data);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnShellCommandVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnShellCommandVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x6L
+            bb.writeInt(0x6);
+            bb.writeInt(U32.t(message.service));
+            bb.writeBytes(message.data);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnShellCommandVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("service=").append(service);
+        b.append(", ");
+        b.append("data=").append(Arrays.toString(data));
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnShellCommandVer10 other = (OFBsnShellCommandVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( service != other.service)
+            return false;
+        if (!Arrays.equals(data, other.data))
+                return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (service ^ (service >>> 32));
+        result = prime * result + Arrays.hashCode(data);
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java
new file mode 100644
index 0000000..54e7951
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java
@@ -0,0 +1,371 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnShellOutputVer10 implements OFBsnShellOutput {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnShellOutputVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 16;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static byte[] DEFAULT_DATA = new byte[0];
+
+    // OF message fields
+    private final long xid;
+    private final byte[] data;
+//
+    // Immutable default instance
+    final static OFBsnShellOutputVer10 DEFAULT = new OFBsnShellOutputVer10(
+        DEFAULT_XID, DEFAULT_DATA
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnShellOutputVer10(long xid, byte[] data) {
+        this.xid = xid;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x7L;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+
+
+    public OFBsnShellOutput.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnShellOutput.Builder {
+        final OFBsnShellOutputVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean dataSet;
+        private byte[] data;
+
+        BuilderWithParent(OFBsnShellOutputVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnShellOutput.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x7L;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnShellOutput.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnShellOutput build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                byte[] data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFBsnShellOutputVer10(
+                    xid,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnShellOutput.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean dataSet;
+        private byte[] data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnShellOutput.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x7L;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFBsnShellOutput.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnShellOutput build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFBsnShellOutputVer10(
+                    xid,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnShellOutput> {
+        @Override
+        public OFBsnShellOutput readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x7L
+            int subtype = bb.readInt();
+            if(subtype != 0x7)
+                throw new OFParseError("Wrong subtype: Expected=0x7L(0x7L), got="+subtype);
+            byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+            OFBsnShellOutputVer10 bsnShellOutputVer10 = new OFBsnShellOutputVer10(
+                    xid,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnShellOutputVer10);
+            return bsnShellOutputVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnShellOutputVer10Funnel FUNNEL = new OFBsnShellOutputVer10Funnel();
+    static class OFBsnShellOutputVer10Funnel implements Funnel<OFBsnShellOutputVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnShellOutputVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x7L
+            sink.putInt(0x7);
+            sink.putBytes(message.data);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnShellOutputVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnShellOutputVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x7L
+            bb.writeInt(0x7);
+            bb.writeBytes(message.data);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnShellOutputVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("data=").append(Arrays.toString(data));
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnShellOutputVer10 other = (OFBsnShellOutputVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (!Arrays.equals(data, other.data))
+                return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + Arrays.hashCode(data);
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java
new file mode 100644
index 0000000..13189de
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnShellStatusVer10 implements OFBsnShellStatus {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnShellStatusVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long status;
+//
+    // Immutable default instance
+    final static OFBsnShellStatusVer10 DEFAULT = new OFBsnShellStatusVer10(
+        DEFAULT_XID, DEFAULT_STATUS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnShellStatusVer10(long xid, long status) {
+        this.xid = xid;
+        this.status = status;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x8L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+
+
+    public OFBsnShellStatus.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnShellStatus.Builder {
+        final OFBsnShellStatusVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+        BuilderWithParent(OFBsnShellStatusVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnShellStatus.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x8L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnShellStatus.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnShellStatus build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long status = this.statusSet ? this.status : parentMessage.status;
+
+                //
+                return new OFBsnShellStatusVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnShellStatus.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnShellStatus.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x8L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnShellStatus.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnShellStatus build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+            return new OFBsnShellStatusVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnShellStatus> {
+        @Override
+        public OFBsnShellStatus readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x8L
+            int subtype = bb.readInt();
+            if(subtype != 0x8)
+                throw new OFParseError("Wrong subtype: Expected=0x8L(0x8L), got="+subtype);
+            long status = U32.f(bb.readInt());
+
+            OFBsnShellStatusVer10 bsnShellStatusVer10 = new OFBsnShellStatusVer10(
+                    xid,
+                      status
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnShellStatusVer10);
+            return bsnShellStatusVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnShellStatusVer10Funnel FUNNEL = new OFBsnShellStatusVer10Funnel();
+    static class OFBsnShellStatusVer10Funnel implements Funnel<OFBsnShellStatusVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnShellStatusVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x8L
+            sink.putInt(0x8);
+            sink.putLong(message.status);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnShellStatusVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnShellStatusVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x8L
+            bb.writeInt(0x8);
+            bb.writeInt(U32.t(message.status));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnShellStatusVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnShellStatusVer10 other = (OFBsnShellStatusVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( status != other.status)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java
new file mode 100644
index 0000000..5dc77e8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java
@@ -0,0 +1,73 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFBsnStatsReplyVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 24;
+
+
+    public final static OFBsnStatsReplyVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFBsnStatsReply> {
+        @Override
+        public OFBsnStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 19
+            byte type = bb.readByte();
+            if(type != (byte) 0x13)
+                throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REPLY(19), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            // fixed value property statsType == 65535
+            short statsType = bb.readShort();
+            if(statsType != (short) 0xffff)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+            OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+            // pad: 4 bytes
+            bb.skipBytes(4);
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            int subtype = bb.readInt();
+            bb.readerIndex(start);
+            switch(subtype) {
+               default:
+                   throw new OFParseError("Unknown value for discriminator subtype of class OFBsnStatsReplyVer10: " + subtype);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java
new file mode 100644
index 0000000..197a732
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java
@@ -0,0 +1,73 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFBsnStatsRequestVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 24;
+
+
+    public final static OFBsnStatsRequestVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFBsnStatsRequest<?>> {
+        @Override
+        public OFBsnStatsRequest<?> readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 18
+            byte type = bb.readByte();
+            if(type != (byte) 0x12)
+                throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REQUEST(18), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            // fixed value property statsType == 65535
+            short statsType = bb.readShort();
+            if(statsType != (short) 0xffff)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+            OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+            // pad: 4 bytes
+            bb.skipBytes(4);
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            int subtype = bb.readInt();
+            bb.readerIndex(start);
+            switch(subtype) {
+               default:
+                   throw new OFParseError("Unknown value for discriminator subtype of class OFBsnStatsRequestVer10: " + subtype);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java
new file mode 100644
index 0000000..7375e41
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java
@@ -0,0 +1,200 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+
+public class OFBsnTlvsVer10 implements OFBsnTlvs {
+    public final static OFBsnTlvsVer10 INSTANCE = new OFBsnTlvsVer10();
+
+
+
+
+    public OFBsnTlvBroadcastQueryTimeout.Builder buildBroadcastQueryTimeout() {
+        throw new UnsupportedOperationException("OFBsnTlvBroadcastQueryTimeout not supported in version 1.0");
+    }
+    public OFBsnTlvBroadcastQueryTimeout broadcastQueryTimeout(long value) {
+        throw new UnsupportedOperationException("OFBsnTlvBroadcastQueryTimeout not supported in version 1.0");
+    }
+
+    public OFBsnTlvCircuitId.Builder buildCircuitId() {
+        throw new UnsupportedOperationException("OFBsnTlvCircuitId not supported in version 1.0");
+    }
+    public OFBsnTlvCircuitId circuitId(byte[] value) {
+        throw new UnsupportedOperationException("OFBsnTlvCircuitId not supported in version 1.0");
+    }
+
+    public OFBsnTlvCrcEnabled.Builder buildCrcEnabled() {
+        throw new UnsupportedOperationException("OFBsnTlvCrcEnabled not supported in version 1.0");
+    }
+    public OFBsnTlvCrcEnabled crcEnabled(short value) {
+        throw new UnsupportedOperationException("OFBsnTlvCrcEnabled not supported in version 1.0");
+    }
+
+    public OFBsnTlvIdleNotification idleNotification() {
+        throw new UnsupportedOperationException("OFBsnTlvIdleNotification not supported in version 1.0");
+    }
+
+    public OFBsnTlvIdleTime.Builder buildIdleTime() {
+        throw new UnsupportedOperationException("OFBsnTlvIdleTime not supported in version 1.0");
+    }
+    public OFBsnTlvIdleTime idleTime(U64 value) {
+        throw new UnsupportedOperationException("OFBsnTlvIdleTime not supported in version 1.0");
+    }
+
+    public OFBsnTlvIdleTimeout.Builder buildIdleTimeout() {
+        throw new UnsupportedOperationException("OFBsnTlvIdleTimeout not supported in version 1.0");
+    }
+    public OFBsnTlvIdleTimeout idleTimeout(long value) {
+        throw new UnsupportedOperationException("OFBsnTlvIdleTimeout not supported in version 1.0");
+    }
+
+    public OFBsnTlvIpv4.Builder buildIpv4() {
+        throw new UnsupportedOperationException("OFBsnTlvIpv4 not supported in version 1.0");
+    }
+    public OFBsnTlvIpv4 ipv4(IPv4Address value) {
+        throw new UnsupportedOperationException("OFBsnTlvIpv4 not supported in version 1.0");
+    }
+
+    public OFBsnTlvMac.Builder buildMac() {
+        throw new UnsupportedOperationException("OFBsnTlvMac not supported in version 1.0");
+    }
+    public OFBsnTlvMac mac(MacAddress value) {
+        throw new UnsupportedOperationException("OFBsnTlvMac not supported in version 1.0");
+    }
+
+    public OFBsnTlvMissPackets.Builder buildMissPackets() {
+        throw new UnsupportedOperationException("OFBsnTlvMissPackets not supported in version 1.0");
+    }
+    public OFBsnTlvMissPackets missPackets(U64 value) {
+        throw new UnsupportedOperationException("OFBsnTlvMissPackets not supported in version 1.0");
+    }
+
+    public OFBsnTlvPort.Builder buildPort() {
+        throw new UnsupportedOperationException("OFBsnTlvPort not supported in version 1.0");
+    }
+    public OFBsnTlvPort port(OFPort value) {
+        throw new UnsupportedOperationException("OFBsnTlvPort not supported in version 1.0");
+    }
+
+    public OFBsnTlvQueueId.Builder buildQueueId() {
+        throw new UnsupportedOperationException("OFBsnTlvQueueId not supported in version 1.0");
+    }
+    public OFBsnTlvQueueId queueId(long value) {
+        throw new UnsupportedOperationException("OFBsnTlvQueueId not supported in version 1.0");
+    }
+
+    public OFBsnTlvQueueWeight.Builder buildQueueWeight() {
+        throw new UnsupportedOperationException("OFBsnTlvQueueWeight not supported in version 1.0");
+    }
+    public OFBsnTlvQueueWeight queueWeight(long value) {
+        throw new UnsupportedOperationException("OFBsnTlvQueueWeight not supported in version 1.0");
+    }
+
+    public OFBsnTlvReplyPackets.Builder buildReplyPackets() {
+        throw new UnsupportedOperationException("OFBsnTlvReplyPackets not supported in version 1.0");
+    }
+    public OFBsnTlvReplyPackets replyPackets(U64 value) {
+        throw new UnsupportedOperationException("OFBsnTlvReplyPackets not supported in version 1.0");
+    }
+
+    public OFBsnTlvRequestPackets.Builder buildRequestPackets() {
+        throw new UnsupportedOperationException("OFBsnTlvRequestPackets not supported in version 1.0");
+    }
+    public OFBsnTlvRequestPackets requestPackets(U64 value) {
+        throw new UnsupportedOperationException("OFBsnTlvRequestPackets not supported in version 1.0");
+    }
+
+    public OFBsnTlvRxPackets.Builder buildRxPackets() {
+        throw new UnsupportedOperationException("OFBsnTlvRxPackets not supported in version 1.0");
+    }
+    public OFBsnTlvRxPackets rxPackets(U64 value) {
+        throw new UnsupportedOperationException("OFBsnTlvRxPackets not supported in version 1.0");
+    }
+
+    public OFBsnTlvTxPackets.Builder buildTxPackets() {
+        throw new UnsupportedOperationException("OFBsnTlvTxPackets not supported in version 1.0");
+    }
+    public OFBsnTlvTxPackets txPackets(U64 value) {
+        throw new UnsupportedOperationException("OFBsnTlvTxPackets not supported in version 1.0");
+    }
+
+    public OFBsnTlvUdfAnchor.Builder buildUdfAnchor() {
+        throw new UnsupportedOperationException("OFBsnTlvUdfAnchor not supported in version 1.0");
+    }
+    public OFBsnTlvUdfAnchor udfAnchor(OFBsnUdfAnchor value) {
+        throw new UnsupportedOperationException("OFBsnTlvUdfAnchor not supported in version 1.0");
+    }
+
+    public OFBsnTlvUdfId.Builder buildUdfId() {
+        throw new UnsupportedOperationException("OFBsnTlvUdfId not supported in version 1.0");
+    }
+    public OFBsnTlvUdfId udfId(int value) {
+        throw new UnsupportedOperationException("OFBsnTlvUdfId not supported in version 1.0");
+    }
+
+    public OFBsnTlvUdfLength.Builder buildUdfLength() {
+        throw new UnsupportedOperationException("OFBsnTlvUdfLength not supported in version 1.0");
+    }
+    public OFBsnTlvUdfLength udfLength(int value) {
+        throw new UnsupportedOperationException("OFBsnTlvUdfLength not supported in version 1.0");
+    }
+
+    public OFBsnTlvUdfOffset.Builder buildUdfOffset() {
+        throw new UnsupportedOperationException("OFBsnTlvUdfOffset not supported in version 1.0");
+    }
+    public OFBsnTlvUdfOffset udfOffset(int value) {
+        throw new UnsupportedOperationException("OFBsnTlvUdfOffset not supported in version 1.0");
+    }
+
+    public OFBsnTlvUnicastQueryTimeout.Builder buildUnicastQueryTimeout() {
+        throw new UnsupportedOperationException("OFBsnTlvUnicastQueryTimeout not supported in version 1.0");
+    }
+    public OFBsnTlvUnicastQueryTimeout unicastQueryTimeout(long value) {
+        throw new UnsupportedOperationException("OFBsnTlvUnicastQueryTimeout not supported in version 1.0");
+    }
+
+    public OFBsnTlvVlanVid.Builder buildVlanVid() {
+        throw new UnsupportedOperationException("OFBsnTlvVlanVid not supported in version 1.0");
+    }
+    public OFBsnTlvVlanVid vlanVid(VlanVid value) {
+        throw new UnsupportedOperationException("OFBsnTlvVlanVid not supported in version 1.0");
+    }
+
+    public OFBsnTlvVrf.Builder buildVrf() {
+        throw new UnsupportedOperationException("OFBsnTlvVrf not supported in version 1.0");
+    }
+    public OFBsnTlvVrf vrf(long value) {
+        throw new UnsupportedOperationException("OFBsnTlvVrf not supported in version 1.0");
+    }
+
+    public OFMessageReader<OFBsnTlv> getReader() {
+        throw new UnsupportedOperationException("Reader<OFBsnTlv> not supported in version 1.0");
+    }
+
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_10;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java
new file mode 100644
index 0000000..1256b9c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java
@@ -0,0 +1,408 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortCreateReplyVer10 implements OFBsnVirtualPortCreateReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortCreateReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 24;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+        private final static long DEFAULT_VPORT_NO = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long status;
+    private final long vportNo;
+//
+    // Immutable default instance
+    final static OFBsnVirtualPortCreateReplyVer10 DEFAULT = new OFBsnVirtualPortCreateReplyVer10(
+        DEFAULT_XID, DEFAULT_STATUS, DEFAULT_VPORT_NO
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnVirtualPortCreateReplyVer10(long xid, long status, long vportNo) {
+        this.xid = xid;
+        this.status = status;
+        this.vportNo = vportNo;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x10L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public long getVportNo() {
+        return vportNo;
+    }
+
+
+
+    public OFBsnVirtualPortCreateReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnVirtualPortCreateReply.Builder {
+        final OFBsnVirtualPortCreateReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+        private boolean vportNoSet;
+        private long vportNo;
+
+        BuilderWithParent(OFBsnVirtualPortCreateReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x10L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+    @Override
+    public long getVportNo() {
+        return vportNo;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateReply.Builder setVportNo(long vportNo) {
+        this.vportNo = vportNo;
+        this.vportNoSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnVirtualPortCreateReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long status = this.statusSet ? this.status : parentMessage.status;
+                long vportNo = this.vportNoSet ? this.vportNo : parentMessage.vportNo;
+
+                //
+                return new OFBsnVirtualPortCreateReplyVer10(
+                    xid,
+                    status,
+                    vportNo
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnVirtualPortCreateReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+        private boolean vportNoSet;
+        private long vportNo;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x10L;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+    @Override
+    public long getVportNo() {
+        return vportNo;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateReply.Builder setVportNo(long vportNo) {
+        this.vportNo = vportNo;
+        this.vportNoSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnVirtualPortCreateReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+            long vportNo = this.vportNoSet ? this.vportNo : DEFAULT_VPORT_NO;
+
+
+            return new OFBsnVirtualPortCreateReplyVer10(
+                    xid,
+                    status,
+                    vportNo
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnVirtualPortCreateReply> {
+        @Override
+        public OFBsnVirtualPortCreateReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 24)
+                throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x10L
+            int subtype = bb.readInt();
+            if(subtype != 0x10)
+                throw new OFParseError("Wrong subtype: Expected=0x10L(0x10L), got="+subtype);
+            long status = U32.f(bb.readInt());
+            long vportNo = U32.f(bb.readInt());
+
+            OFBsnVirtualPortCreateReplyVer10 bsnVirtualPortCreateReplyVer10 = new OFBsnVirtualPortCreateReplyVer10(
+                    xid,
+                      status,
+                      vportNo
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnVirtualPortCreateReplyVer10);
+            return bsnVirtualPortCreateReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnVirtualPortCreateReplyVer10Funnel FUNNEL = new OFBsnVirtualPortCreateReplyVer10Funnel();
+    static class OFBsnVirtualPortCreateReplyVer10Funnel implements Funnel<OFBsnVirtualPortCreateReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnVirtualPortCreateReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 24
+            sink.putShort((short) 0x18);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x10L
+            sink.putInt(0x10);
+            sink.putLong(message.status);
+            sink.putLong(message.vportNo);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnVirtualPortCreateReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnVirtualPortCreateReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 24
+            bb.writeShort((short) 0x18);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x10L
+            bb.writeInt(0x10);
+            bb.writeInt(U32.t(message.status));
+            bb.writeInt(U32.t(message.vportNo));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnVirtualPortCreateReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(", ");
+        b.append("vportNo=").append(vportNo);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnVirtualPortCreateReplyVer10 other = (OFBsnVirtualPortCreateReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( status != other.status)
+            return false;
+        if( vportNo != other.vportNo)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        result = prime *  (int) (vportNo ^ (vportNo >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java
new file mode 100644
index 0000000..69741e9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java
@@ -0,0 +1,369 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortCreateRequestVer10 implements OFBsnVirtualPortCreateRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortCreateRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final OFBsnVport vport;
+//
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnVirtualPortCreateRequestVer10(long xid, OFBsnVport vport) {
+        this.xid = xid;
+        this.vport = vport;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xfL;
+    }
+
+    @Override
+    public OFBsnVport getVport() {
+        return vport;
+    }
+
+
+
+    public OFBsnVirtualPortCreateRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnVirtualPortCreateRequest.Builder {
+        final OFBsnVirtualPortCreateRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean vportSet;
+        private OFBsnVport vport;
+
+        BuilderWithParent(OFBsnVirtualPortCreateRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xfL;
+    }
+
+    @Override
+    public OFBsnVport getVport() {
+        return vport;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateRequest.Builder setVport(OFBsnVport vport) {
+        this.vport = vport;
+        this.vportSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnVirtualPortCreateRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                OFBsnVport vport = this.vportSet ? this.vport : parentMessage.vport;
+                if(vport == null)
+                    throw new NullPointerException("Property vport must not be null");
+
+                //
+                return new OFBsnVirtualPortCreateRequestVer10(
+                    xid,
+                    vport
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnVirtualPortCreateRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean vportSet;
+        private OFBsnVport vport;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0xfL;
+    }
+
+    @Override
+    public OFBsnVport getVport() {
+        return vport;
+    }
+
+    @Override
+    public OFBsnVirtualPortCreateRequest.Builder setVport(OFBsnVport vport) {
+        this.vport = vport;
+        this.vportSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnVirtualPortCreateRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            if(!this.vportSet)
+                throw new IllegalStateException("Property vport doesn't have default value -- must be set");
+            if(vport == null)
+                throw new NullPointerException("Property vport must not be null");
+
+
+            return new OFBsnVirtualPortCreateRequestVer10(
+                    xid,
+                    vport
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnVirtualPortCreateRequest> {
+        @Override
+        public OFBsnVirtualPortCreateRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0xfL
+            int subtype = bb.readInt();
+            if(subtype != 0xf)
+                throw new OFParseError("Wrong subtype: Expected=0xfL(0xfL), got="+subtype);
+            OFBsnVport vport = OFBsnVportVer10.READER.readFrom(bb);
+
+            OFBsnVirtualPortCreateRequestVer10 bsnVirtualPortCreateRequestVer10 = new OFBsnVirtualPortCreateRequestVer10(
+                    xid,
+                      vport
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnVirtualPortCreateRequestVer10);
+            return bsnVirtualPortCreateRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnVirtualPortCreateRequestVer10Funnel FUNNEL = new OFBsnVirtualPortCreateRequestVer10Funnel();
+    static class OFBsnVirtualPortCreateRequestVer10Funnel implements Funnel<OFBsnVirtualPortCreateRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnVirtualPortCreateRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0xfL
+            sink.putInt(0xf);
+            message.vport.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnVirtualPortCreateRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnVirtualPortCreateRequestVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0xfL
+            bb.writeInt(0xf);
+            message.vport.writeTo(bb);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnVirtualPortCreateRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("vport=").append(vport);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnVirtualPortCreateRequestVer10 other = (OFBsnVirtualPortCreateRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (vport == null) {
+            if (other.vport != null)
+                return false;
+        } else if (!vport.equals(other.vport))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((vport == null) ? 0 : vport.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java
new file mode 100644
index 0000000..440624f
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortRemoveReplyVer10 implements OFBsnVirtualPortRemoveReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortRemoveReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_STATUS = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long status;
+//
+    // Immutable default instance
+    final static OFBsnVirtualPortRemoveReplyVer10 DEFAULT = new OFBsnVirtualPortRemoveReplyVer10(
+        DEFAULT_XID, DEFAULT_STATUS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnVirtualPortRemoveReplyVer10(long xid, long status) {
+        this.xid = xid;
+        this.status = status;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1aL;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+
+
+    public OFBsnVirtualPortRemoveReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnVirtualPortRemoveReply.Builder {
+        final OFBsnVirtualPortRemoveReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+        BuilderWithParent(OFBsnVirtualPortRemoveReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1aL;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnVirtualPortRemoveReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long status = this.statusSet ? this.status : parentMessage.status;
+
+                //
+                return new OFBsnVirtualPortRemoveReplyVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnVirtualPortRemoveReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean statusSet;
+        private long status;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x1aL;
+    }
+
+    @Override
+    public long getStatus() {
+        return status;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveReply.Builder setStatus(long status) {
+        this.status = status;
+        this.statusSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnVirtualPortRemoveReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+            return new OFBsnVirtualPortRemoveReplyVer10(
+                    xid,
+                    status
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnVirtualPortRemoveReply> {
+        @Override
+        public OFBsnVirtualPortRemoveReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x1aL
+            int subtype = bb.readInt();
+            if(subtype != 0x1a)
+                throw new OFParseError("Wrong subtype: Expected=0x1aL(0x1aL), got="+subtype);
+            long status = U32.f(bb.readInt());
+
+            OFBsnVirtualPortRemoveReplyVer10 bsnVirtualPortRemoveReplyVer10 = new OFBsnVirtualPortRemoveReplyVer10(
+                    xid,
+                      status
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnVirtualPortRemoveReplyVer10);
+            return bsnVirtualPortRemoveReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnVirtualPortRemoveReplyVer10Funnel FUNNEL = new OFBsnVirtualPortRemoveReplyVer10Funnel();
+    static class OFBsnVirtualPortRemoveReplyVer10Funnel implements Funnel<OFBsnVirtualPortRemoveReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnVirtualPortRemoveReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x1aL
+            sink.putInt(0x1a);
+            sink.putLong(message.status);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnVirtualPortRemoveReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnVirtualPortRemoveReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x1aL
+            bb.writeInt(0x1a);
+            bb.writeInt(U32.t(message.status));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnVirtualPortRemoveReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("status=").append(status);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnVirtualPortRemoveReplyVer10 other = (OFBsnVirtualPortRemoveReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( status != other.status)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (status ^ (status >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java
new file mode 100644
index 0000000..f178056
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortRemoveRequestVer10 implements OFBsnVirtualPortRemoveRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortRemoveRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 20;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static long DEFAULT_VPORT_NO = 0x0L;
+
+    // OF message fields
+    private final long xid;
+    private final long vportNo;
+//
+    // Immutable default instance
+    final static OFBsnVirtualPortRemoveRequestVer10 DEFAULT = new OFBsnVirtualPortRemoveRequestVer10(
+        DEFAULT_XID, DEFAULT_VPORT_NO
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnVirtualPortRemoveRequestVer10(long xid, long vportNo) {
+        this.xid = xid;
+        this.vportNo = vportNo;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x11L;
+    }
+
+    @Override
+    public long getVportNo() {
+        return vportNo;
+    }
+
+
+
+    public OFBsnVirtualPortRemoveRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnVirtualPortRemoveRequest.Builder {
+        final OFBsnVirtualPortRemoveRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean vportNoSet;
+        private long vportNo;
+
+        BuilderWithParent(OFBsnVirtualPortRemoveRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x11L;
+    }
+
+    @Override
+    public long getVportNo() {
+        return vportNo;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveRequest.Builder setVportNo(long vportNo) {
+        this.vportNo = vportNo;
+        this.vportNoSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFBsnVirtualPortRemoveRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                long vportNo = this.vportNoSet ? this.vportNo : parentMessage.vportNo;
+
+                //
+                return new OFBsnVirtualPortRemoveRequestVer10(
+                    xid,
+                    vportNo
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnVirtualPortRemoveRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean vportNoSet;
+        private long vportNo;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.EXPERIMENTER;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public long getExperimenter() {
+        return 0x5c16c7L;
+    }
+
+    @Override
+    public long getSubtype() {
+        return 0x11L;
+    }
+
+    @Override
+    public long getVportNo() {
+        return vportNo;
+    }
+
+    @Override
+    public OFBsnVirtualPortRemoveRequest.Builder setVportNo(long vportNo) {
+        this.vportNo = vportNo;
+        this.vportNoSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFBsnVirtualPortRemoveRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            long vportNo = this.vportNoSet ? this.vportNo : DEFAULT_VPORT_NO;
+
+
+            return new OFBsnVirtualPortRemoveRequestVer10(
+                    xid,
+                    vportNo
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnVirtualPortRemoveRequest> {
+        @Override
+        public OFBsnVirtualPortRemoveRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 20)
+                throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property experimenter == 0x5c16c7L
+            int experimenter = bb.readInt();
+            if(experimenter != 0x5c16c7)
+                throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+            // fixed value property subtype == 0x11L
+            int subtype = bb.readInt();
+            if(subtype != 0x11)
+                throw new OFParseError("Wrong subtype: Expected=0x11L(0x11L), got="+subtype);
+            long vportNo = U32.f(bb.readInt());
+
+            OFBsnVirtualPortRemoveRequestVer10 bsnVirtualPortRemoveRequestVer10 = new OFBsnVirtualPortRemoveRequestVer10(
+                    xid,
+                      vportNo
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnVirtualPortRemoveRequestVer10);
+            return bsnVirtualPortRemoveRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnVirtualPortRemoveRequestVer10Funnel FUNNEL = new OFBsnVirtualPortRemoveRequestVer10Funnel();
+    static class OFBsnVirtualPortRemoveRequestVer10Funnel implements Funnel<OFBsnVirtualPortRemoveRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnVirtualPortRemoveRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 4
+            sink.putByte((byte) 0x4);
+            // fixed value property length = 20
+            sink.putShort((short) 0x14);
+            sink.putLong(message.xid);
+            // fixed value property experimenter = 0x5c16c7L
+            sink.putInt(0x5c16c7);
+            // fixed value property subtype = 0x11L
+            sink.putInt(0x11);
+            sink.putLong(message.vportNo);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnVirtualPortRemoveRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnVirtualPortRemoveRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 4
+            bb.writeByte((byte) 0x4);
+            // fixed value property length = 20
+            bb.writeShort((short) 0x14);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property experimenter = 0x5c16c7L
+            bb.writeInt(0x5c16c7);
+            // fixed value property subtype = 0x11L
+            bb.writeInt(0x11);
+            bb.writeInt(U32.t(message.vportNo));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnVirtualPortRemoveRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("vportNo=").append(vportNo);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnVirtualPortRemoveRequestVer10 other = (OFBsnVirtualPortRemoveRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if( vportNo != other.vportNo)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime *  (int) (vportNo ^ (vportNo >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java
new file mode 100644
index 0000000..4c2111d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java
@@ -0,0 +1,102 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnVportL2GreFlags;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFBsnVportL2GreFlagsSerializerVer10 {
+
+    public final static int BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID_VAL = 0x1;
+    public final static int BSN_VPORT_L2GRE_DSCP_ASSIGN_VAL = 0x2;
+    public final static int BSN_VPORT_L2GRE_DSCP_COPY_VAL = 0x4;
+    public final static int BSN_VPORT_L2GRE_LOOPBACK_IS_VALID_VAL = 0x8;
+    public final static int BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID_VAL = 0x10;
+
+    public static Set<OFBsnVportL2GreFlags> readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readInt());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, Set<OFBsnVportL2GreFlags> set) {
+        bb.writeInt(toWireValue(set));
+    }
+
+    public static void putTo(Set<OFBsnVportL2GreFlags> set, PrimitiveSink sink) {
+        sink.putInt(toWireValue(set));
+    }
+
+
+    public static Set<OFBsnVportL2GreFlags> ofWireValue(int val) {
+        EnumSet<OFBsnVportL2GreFlags> set = EnumSet.noneOf(OFBsnVportL2GreFlags.class);
+
+        if((val & BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID_VAL) != 0)
+            set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID);
+        if((val & BSN_VPORT_L2GRE_DSCP_ASSIGN_VAL) != 0)
+            set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_DSCP_ASSIGN);
+        if((val & BSN_VPORT_L2GRE_DSCP_COPY_VAL) != 0)
+            set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_DSCP_COPY);
+        if((val & BSN_VPORT_L2GRE_LOOPBACK_IS_VALID_VAL) != 0)
+            set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_LOOPBACK_IS_VALID);
+        if((val & BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID_VAL) != 0)
+            set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID);
+        return Collections.unmodifiableSet(set);
+    }
+
+    public static int toWireValue(Set<OFBsnVportL2GreFlags> set) {
+        int wireValue = 0;
+
+        for(OFBsnVportL2GreFlags e: set) {
+            switch(e) {
+                case BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID:
+                    wireValue |= BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID_VAL;
+                    break;
+                case BSN_VPORT_L2GRE_DSCP_ASSIGN:
+                    wireValue |= BSN_VPORT_L2GRE_DSCP_ASSIGN_VAL;
+                    break;
+                case BSN_VPORT_L2GRE_DSCP_COPY:
+                    wireValue |= BSN_VPORT_L2GRE_DSCP_COPY_VAL;
+                    break;
+                case BSN_VPORT_L2GRE_LOOPBACK_IS_VALID:
+                    wireValue |= BSN_VPORT_L2GRE_LOOPBACK_IS_VALID_VAL;
+                    break;
+                case BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID:
+                    wireValue |= BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID_VAL;
+                    break;
+                default:
+                    throw new IllegalArgumentException("Illegal enum value for type OFBsnVportL2GreFlags in version 1.0: " + e);
+            }
+        }
+        return wireValue;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java
new file mode 100644
index 0000000..32af98d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java
@@ -0,0 +1,839 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVportL2GreVer10 implements OFBsnVportL2Gre {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnVportL2GreVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 60;
+
+        private final static Set<OFBsnVportL2GreFlags> DEFAULT_FLAGS = ImmutableSet.<OFBsnVportL2GreFlags>of();
+        private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+        private final static OFPort DEFAULT_LOOPBACK_PORT_NO = OFPort.ANY;
+        private final static MacAddress DEFAULT_LOCAL_MAC = MacAddress.NONE;
+        private final static MacAddress DEFAULT_NH_MAC = MacAddress.NONE;
+        private final static IPv4Address DEFAULT_SRC_IP = IPv4Address.NONE;
+        private final static IPv4Address DEFAULT_DST_IP = IPv4Address.NONE;
+        private final static short DEFAULT_DSCP = (short) 0x0;
+        private final static short DEFAULT_TTL = (short) 0x0;
+        private final static long DEFAULT_VPN = 0x0L;
+        private final static long DEFAULT_RATE_LIMIT = 0x0L;
+        private final static String DEFAULT_IF_NAME = "";
+
+    // OF message fields
+    private final Set<OFBsnVportL2GreFlags> flags;
+    private final OFPort portNo;
+    private final OFPort loopbackPortNo;
+    private final MacAddress localMac;
+    private final MacAddress nhMac;
+    private final IPv4Address srcIp;
+    private final IPv4Address dstIp;
+    private final short dscp;
+    private final short ttl;
+    private final long vpn;
+    private final long rateLimit;
+    private final String ifName;
+//
+    // Immutable default instance
+    final static OFBsnVportL2GreVer10 DEFAULT = new OFBsnVportL2GreVer10(
+        DEFAULT_FLAGS, DEFAULT_PORT_NO, DEFAULT_LOOPBACK_PORT_NO, DEFAULT_LOCAL_MAC, DEFAULT_NH_MAC, DEFAULT_SRC_IP, DEFAULT_DST_IP, DEFAULT_DSCP, DEFAULT_TTL, DEFAULT_VPN, DEFAULT_RATE_LIMIT, DEFAULT_IF_NAME
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnVportL2GreVer10(Set<OFBsnVportL2GreFlags> flags, OFPort portNo, OFPort loopbackPortNo, MacAddress localMac, MacAddress nhMac, IPv4Address srcIp, IPv4Address dstIp, short dscp, short ttl, long vpn, long rateLimit, String ifName) {
+        this.flags = flags;
+        this.portNo = portNo;
+        this.loopbackPortNo = loopbackPortNo;
+        this.localMac = localMac;
+        this.nhMac = nhMac;
+        this.srcIp = srcIp;
+        this.dstIp = dstIp;
+        this.dscp = dscp;
+        this.ttl = ttl;
+        this.vpn = vpn;
+        this.rateLimit = rateLimit;
+        this.ifName = ifName;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public int getType() {
+        return 0x1;
+    }
+
+    @Override
+    public Set<OFBsnVportL2GreFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFPort getLoopbackPortNo() {
+        return loopbackPortNo;
+    }
+
+    @Override
+    public MacAddress getLocalMac() {
+        return localMac;
+    }
+
+    @Override
+    public MacAddress getNhMac() {
+        return nhMac;
+    }
+
+    @Override
+    public IPv4Address getSrcIp() {
+        return srcIp;
+    }
+
+    @Override
+    public IPv4Address getDstIp() {
+        return dstIp;
+    }
+
+    @Override
+    public short getDscp() {
+        return dscp;
+    }
+
+    @Override
+    public short getTtl() {
+        return ttl;
+    }
+
+    @Override
+    public long getVpn() {
+        return vpn;
+    }
+
+    @Override
+    public long getRateLimit() {
+        return rateLimit;
+    }
+
+    @Override
+    public String getIfName() {
+        return ifName;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFBsnVportL2Gre.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnVportL2Gre.Builder {
+        final OFBsnVportL2GreVer10 parentMessage;
+
+        // OF message fields
+        private boolean flagsSet;
+        private Set<OFBsnVportL2GreFlags> flags;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean loopbackPortNoSet;
+        private OFPort loopbackPortNo;
+        private boolean localMacSet;
+        private MacAddress localMac;
+        private boolean nhMacSet;
+        private MacAddress nhMac;
+        private boolean srcIpSet;
+        private IPv4Address srcIp;
+        private boolean dstIpSet;
+        private IPv4Address dstIp;
+        private boolean dscpSet;
+        private short dscp;
+        private boolean ttlSet;
+        private short ttl;
+        private boolean vpnSet;
+        private long vpn;
+        private boolean rateLimitSet;
+        private long rateLimit;
+        private boolean ifNameSet;
+        private String ifName;
+
+        BuilderWithParent(OFBsnVportL2GreVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public int getType() {
+        return 0x1;
+    }
+
+    @Override
+    public Set<OFBsnVportL2GreFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setFlags(Set<OFBsnVportL2GreFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getLoopbackPortNo() {
+        return loopbackPortNo;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setLoopbackPortNo(OFPort loopbackPortNo) {
+        this.loopbackPortNo = loopbackPortNo;
+        this.loopbackPortNoSet = true;
+        return this;
+    }
+    @Override
+    public MacAddress getLocalMac() {
+        return localMac;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setLocalMac(MacAddress localMac) {
+        this.localMac = localMac;
+        this.localMacSet = true;
+        return this;
+    }
+    @Override
+    public MacAddress getNhMac() {
+        return nhMac;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setNhMac(MacAddress nhMac) {
+        this.nhMac = nhMac;
+        this.nhMacSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getSrcIp() {
+        return srcIp;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setSrcIp(IPv4Address srcIp) {
+        this.srcIp = srcIp;
+        this.srcIpSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getDstIp() {
+        return dstIp;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setDstIp(IPv4Address dstIp) {
+        this.dstIp = dstIp;
+        this.dstIpSet = true;
+        return this;
+    }
+    @Override
+    public short getDscp() {
+        return dscp;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setDscp(short dscp) {
+        this.dscp = dscp;
+        this.dscpSet = true;
+        return this;
+    }
+    @Override
+    public short getTtl() {
+        return ttl;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setTtl(short ttl) {
+        this.ttl = ttl;
+        this.ttlSet = true;
+        return this;
+    }
+    @Override
+    public long getVpn() {
+        return vpn;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setVpn(long vpn) {
+        this.vpn = vpn;
+        this.vpnSet = true;
+        return this;
+    }
+    @Override
+    public long getRateLimit() {
+        return rateLimit;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setRateLimit(long rateLimit) {
+        this.rateLimit = rateLimit;
+        this.rateLimitSet = true;
+        return this;
+    }
+    @Override
+    public String getIfName() {
+        return ifName;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setIfName(String ifName) {
+        this.ifName = ifName;
+        this.ifNameSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFBsnVportL2Gre build() {
+                Set<OFBsnVportL2GreFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+                if(portNo == null)
+                    throw new NullPointerException("Property portNo must not be null");
+                OFPort loopbackPortNo = this.loopbackPortNoSet ? this.loopbackPortNo : parentMessage.loopbackPortNo;
+                if(loopbackPortNo == null)
+                    throw new NullPointerException("Property loopbackPortNo must not be null");
+                MacAddress localMac = this.localMacSet ? this.localMac : parentMessage.localMac;
+                if(localMac == null)
+                    throw new NullPointerException("Property localMac must not be null");
+                MacAddress nhMac = this.nhMacSet ? this.nhMac : parentMessage.nhMac;
+                if(nhMac == null)
+                    throw new NullPointerException("Property nhMac must not be null");
+                IPv4Address srcIp = this.srcIpSet ? this.srcIp : parentMessage.srcIp;
+                if(srcIp == null)
+                    throw new NullPointerException("Property srcIp must not be null");
+                IPv4Address dstIp = this.dstIpSet ? this.dstIp : parentMessage.dstIp;
+                if(dstIp == null)
+                    throw new NullPointerException("Property dstIp must not be null");
+                short dscp = this.dscpSet ? this.dscp : parentMessage.dscp;
+                short ttl = this.ttlSet ? this.ttl : parentMessage.ttl;
+                long vpn = this.vpnSet ? this.vpn : parentMessage.vpn;
+                long rateLimit = this.rateLimitSet ? this.rateLimit : parentMessage.rateLimit;
+                String ifName = this.ifNameSet ? this.ifName : parentMessage.ifName;
+                if(ifName == null)
+                    throw new NullPointerException("Property ifName must not be null");
+
+                //
+                return new OFBsnVportL2GreVer10(
+                    flags,
+                    portNo,
+                    loopbackPortNo,
+                    localMac,
+                    nhMac,
+                    srcIp,
+                    dstIp,
+                    dscp,
+                    ttl,
+                    vpn,
+                    rateLimit,
+                    ifName
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnVportL2Gre.Builder {
+        // OF message fields
+        private boolean flagsSet;
+        private Set<OFBsnVportL2GreFlags> flags;
+        private boolean portNoSet;
+        private OFPort portNo;
+        private boolean loopbackPortNoSet;
+        private OFPort loopbackPortNo;
+        private boolean localMacSet;
+        private MacAddress localMac;
+        private boolean nhMacSet;
+        private MacAddress nhMac;
+        private boolean srcIpSet;
+        private IPv4Address srcIp;
+        private boolean dstIpSet;
+        private IPv4Address dstIp;
+        private boolean dscpSet;
+        private short dscp;
+        private boolean ttlSet;
+        private short ttl;
+        private boolean vpnSet;
+        private long vpn;
+        private boolean rateLimitSet;
+        private long rateLimit;
+        private boolean ifNameSet;
+        private String ifName;
+
+    @Override
+    public int getType() {
+        return 0x1;
+    }
+
+    @Override
+    public Set<OFBsnVportL2GreFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setFlags(Set<OFBsnVportL2GreFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setPortNo(OFPort portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getLoopbackPortNo() {
+        return loopbackPortNo;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setLoopbackPortNo(OFPort loopbackPortNo) {
+        this.loopbackPortNo = loopbackPortNo;
+        this.loopbackPortNoSet = true;
+        return this;
+    }
+    @Override
+    public MacAddress getLocalMac() {
+        return localMac;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setLocalMac(MacAddress localMac) {
+        this.localMac = localMac;
+        this.localMacSet = true;
+        return this;
+    }
+    @Override
+    public MacAddress getNhMac() {
+        return nhMac;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setNhMac(MacAddress nhMac) {
+        this.nhMac = nhMac;
+        this.nhMacSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getSrcIp() {
+        return srcIp;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setSrcIp(IPv4Address srcIp) {
+        this.srcIp = srcIp;
+        this.srcIpSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getDstIp() {
+        return dstIp;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setDstIp(IPv4Address dstIp) {
+        this.dstIp = dstIp;
+        this.dstIpSet = true;
+        return this;
+    }
+    @Override
+    public short getDscp() {
+        return dscp;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setDscp(short dscp) {
+        this.dscp = dscp;
+        this.dscpSet = true;
+        return this;
+    }
+    @Override
+    public short getTtl() {
+        return ttl;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setTtl(short ttl) {
+        this.ttl = ttl;
+        this.ttlSet = true;
+        return this;
+    }
+    @Override
+    public long getVpn() {
+        return vpn;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setVpn(long vpn) {
+        this.vpn = vpn;
+        this.vpnSet = true;
+        return this;
+    }
+    @Override
+    public long getRateLimit() {
+        return rateLimit;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setRateLimit(long rateLimit) {
+        this.rateLimit = rateLimit;
+        this.rateLimitSet = true;
+        return this;
+    }
+    @Override
+    public String getIfName() {
+        return ifName;
+    }
+
+    @Override
+    public OFBsnVportL2Gre.Builder setIfName(String ifName) {
+        this.ifName = ifName;
+        this.ifNameSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFBsnVportL2Gre build() {
+            Set<OFBsnVportL2GreFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+            if(portNo == null)
+                throw new NullPointerException("Property portNo must not be null");
+            OFPort loopbackPortNo = this.loopbackPortNoSet ? this.loopbackPortNo : DEFAULT_LOOPBACK_PORT_NO;
+            if(loopbackPortNo == null)
+                throw new NullPointerException("Property loopbackPortNo must not be null");
+            MacAddress localMac = this.localMacSet ? this.localMac : DEFAULT_LOCAL_MAC;
+            if(localMac == null)
+                throw new NullPointerException("Property localMac must not be null");
+            MacAddress nhMac = this.nhMacSet ? this.nhMac : DEFAULT_NH_MAC;
+            if(nhMac == null)
+                throw new NullPointerException("Property nhMac must not be null");
+            IPv4Address srcIp = this.srcIpSet ? this.srcIp : DEFAULT_SRC_IP;
+            if(srcIp == null)
+                throw new NullPointerException("Property srcIp must not be null");
+            IPv4Address dstIp = this.dstIpSet ? this.dstIp : DEFAULT_DST_IP;
+            if(dstIp == null)
+                throw new NullPointerException("Property dstIp must not be null");
+            short dscp = this.dscpSet ? this.dscp : DEFAULT_DSCP;
+            short ttl = this.ttlSet ? this.ttl : DEFAULT_TTL;
+            long vpn = this.vpnSet ? this.vpn : DEFAULT_VPN;
+            long rateLimit = this.rateLimitSet ? this.rateLimit : DEFAULT_RATE_LIMIT;
+            String ifName = this.ifNameSet ? this.ifName : DEFAULT_IF_NAME;
+            if(ifName == null)
+                throw new NullPointerException("Property ifName must not be null");
+
+
+            return new OFBsnVportL2GreVer10(
+                    flags,
+                    portNo,
+                    loopbackPortNo,
+                    localMac,
+                    nhMac,
+                    srcIp,
+                    dstIp,
+                    dscp,
+                    ttl,
+                    vpn,
+                    rateLimit,
+                    ifName
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnVportL2Gre> {
+        @Override
+        public OFBsnVportL2Gre readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 0x1
+            short type = bb.readShort();
+            if(type != (short) 0x1)
+                throw new OFParseError("Wrong type: Expected=0x1(0x1), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 60)
+                throw new OFParseError("Wrong length: Expected=60(60), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            Set<OFBsnVportL2GreFlags> flags = OFBsnVportL2GreFlagsSerializerVer10.readFrom(bb);
+            OFPort portNo = OFPort.read2Bytes(bb);
+            OFPort loopbackPortNo = OFPort.read2Bytes(bb);
+            MacAddress localMac = MacAddress.read6Bytes(bb);
+            MacAddress nhMac = MacAddress.read6Bytes(bb);
+            IPv4Address srcIp = IPv4Address.read4Bytes(bb);
+            IPv4Address dstIp = IPv4Address.read4Bytes(bb);
+            short dscp = U8.f(bb.readByte());
+            short ttl = U8.f(bb.readByte());
+            // pad: 2 bytes
+            bb.skipBytes(2);
+            long vpn = U32.f(bb.readInt());
+            long rateLimit = U32.f(bb.readInt());
+            String ifName = ChannelUtils.readFixedLengthString(bb, 16);
+
+            OFBsnVportL2GreVer10 bsnVportL2GreVer10 = new OFBsnVportL2GreVer10(
+                    flags,
+                      portNo,
+                      loopbackPortNo,
+                      localMac,
+                      nhMac,
+                      srcIp,
+                      dstIp,
+                      dscp,
+                      ttl,
+                      vpn,
+                      rateLimit,
+                      ifName
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnVportL2GreVer10);
+            return bsnVportL2GreVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnVportL2GreVer10Funnel FUNNEL = new OFBsnVportL2GreVer10Funnel();
+    static class OFBsnVportL2GreVer10Funnel implements Funnel<OFBsnVportL2GreVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnVportL2GreVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 0x1
+            sink.putShort((short) 0x1);
+            // fixed value property length = 60
+            sink.putShort((short) 0x3c);
+            OFBsnVportL2GreFlagsSerializerVer10.putTo(message.flags, sink);
+            message.portNo.putTo(sink);
+            message.loopbackPortNo.putTo(sink);
+            message.localMac.putTo(sink);
+            message.nhMac.putTo(sink);
+            message.srcIp.putTo(sink);
+            message.dstIp.putTo(sink);
+            sink.putShort(message.dscp);
+            sink.putShort(message.ttl);
+            // skip pad (2 bytes)
+            sink.putLong(message.vpn);
+            sink.putLong(message.rateLimit);
+            sink.putUnencodedChars(message.ifName);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnVportL2GreVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnVportL2GreVer10 message) {
+            // fixed value property type = 0x1
+            bb.writeShort((short) 0x1);
+            // fixed value property length = 60
+            bb.writeShort((short) 0x3c);
+            OFBsnVportL2GreFlagsSerializerVer10.writeTo(bb, message.flags);
+            message.portNo.write2Bytes(bb);
+            message.loopbackPortNo.write2Bytes(bb);
+            message.localMac.write6Bytes(bb);
+            message.nhMac.write6Bytes(bb);
+            message.srcIp.write4Bytes(bb);
+            message.dstIp.write4Bytes(bb);
+            bb.writeByte(U8.t(message.dscp));
+            bb.writeByte(U8.t(message.ttl));
+            // pad: 2 bytes
+            bb.writeZero(2);
+            bb.writeInt(U32.t(message.vpn));
+            bb.writeInt(U32.t(message.rateLimit));
+            ChannelUtils.writeFixedLengthString(bb, message.ifName, 16);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnVportL2GreVer10(");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("portNo=").append(portNo);
+        b.append(", ");
+        b.append("loopbackPortNo=").append(loopbackPortNo);
+        b.append(", ");
+        b.append("localMac=").append(localMac);
+        b.append(", ");
+        b.append("nhMac=").append(nhMac);
+        b.append(", ");
+        b.append("srcIp=").append(srcIp);
+        b.append(", ");
+        b.append("dstIp=").append(dstIp);
+        b.append(", ");
+        b.append("dscp=").append(dscp);
+        b.append(", ");
+        b.append("ttl=").append(ttl);
+        b.append(", ");
+        b.append("vpn=").append(vpn);
+        b.append(", ");
+        b.append("rateLimit=").append(rateLimit);
+        b.append(", ");
+        b.append("ifName=").append(ifName);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnVportL2GreVer10 other = (OFBsnVportL2GreVer10) obj;
+
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (portNo == null) {
+            if (other.portNo != null)
+                return false;
+        } else if (!portNo.equals(other.portNo))
+            return false;
+        if (loopbackPortNo == null) {
+            if (other.loopbackPortNo != null)
+                return false;
+        } else if (!loopbackPortNo.equals(other.loopbackPortNo))
+            return false;
+        if (localMac == null) {
+            if (other.localMac != null)
+                return false;
+        } else if (!localMac.equals(other.localMac))
+            return false;
+        if (nhMac == null) {
+            if (other.nhMac != null)
+                return false;
+        } else if (!nhMac.equals(other.nhMac))
+            return false;
+        if (srcIp == null) {
+            if (other.srcIp != null)
+                return false;
+        } else if (!srcIp.equals(other.srcIp))
+            return false;
+        if (dstIp == null) {
+            if (other.dstIp != null)
+                return false;
+        } else if (!dstIp.equals(other.dstIp))
+            return false;
+        if( dscp != other.dscp)
+            return false;
+        if( ttl != other.ttl)
+            return false;
+        if( vpn != other.vpn)
+            return false;
+        if( rateLimit != other.rateLimit)
+            return false;
+        if (ifName == null) {
+            if (other.ifName != null)
+                return false;
+        } else if (!ifName.equals(other.ifName))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+        result = prime * result + ((loopbackPortNo == null) ? 0 : loopbackPortNo.hashCode());
+        result = prime * result + ((localMac == null) ? 0 : localMac.hashCode());
+        result = prime * result + ((nhMac == null) ? 0 : nhMac.hashCode());
+        result = prime * result + ((srcIp == null) ? 0 : srcIp.hashCode());
+        result = prime * result + ((dstIp == null) ? 0 : dstIp.hashCode());
+        result = prime * result + dscp;
+        result = prime * result + ttl;
+        result = prime *  (int) (vpn ^ (vpn >>> 32));
+        result = prime *  (int) (rateLimit ^ (rateLimit >>> 32));
+        result = prime * result + ((ifName == null) ? 0 : ifName.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java
new file mode 100644
index 0000000..e3f79b3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnVportQInQUntagged;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBsnVportQInQUntaggedSerializerVer10 {
+
+    public final static short BSN_VPORT_Q_IN_Q_UNTAGGED_VAL = (short) 0xffff;
+
+    public static OFBsnVportQInQUntagged readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFBsnVportQInQUntagged e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFBsnVportQInQUntagged e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFBsnVportQInQUntagged ofWireValue(short val) {
+        switch(val) {
+            case BSN_VPORT_Q_IN_Q_UNTAGGED_VAL:
+                return OFBsnVportQInQUntagged.BSN_VPORT_Q_IN_Q_UNTAGGED;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFBsnVportQInQUntagged in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFBsnVportQInQUntagged e) {
+        switch(e) {
+            case BSN_VPORT_Q_IN_Q_UNTAGGED:
+                return BSN_VPORT_Q_IN_Q_UNTAGGED_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFBsnVportQInQUntagged in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java
new file mode 100644
index 0000000..7f5b0a3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java
@@ -0,0 +1,502 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVportQInQVer10 implements OFBsnVportQInQ {
+    private static final Logger logger = LoggerFactory.getLogger(OFBsnVportQInQVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 32;
+
+        private final static long DEFAULT_PORT_NO = 0x0L;
+        private final static int DEFAULT_INGRESS_TPID = 0x0;
+        private final static int DEFAULT_INGRESS_VLAN_ID = 0x0;
+        private final static int DEFAULT_EGRESS_TPID = 0x0;
+        private final static int DEFAULT_EGRESS_VLAN_ID = 0x0;
+        private final static String DEFAULT_IF_NAME = "";
+
+    // OF message fields
+    private final long portNo;
+    private final int ingressTpid;
+    private final int ingressVlanId;
+    private final int egressTpid;
+    private final int egressVlanId;
+    private final String ifName;
+//
+    // Immutable default instance
+    final static OFBsnVportQInQVer10 DEFAULT = new OFBsnVportQInQVer10(
+        DEFAULT_PORT_NO, DEFAULT_INGRESS_TPID, DEFAULT_INGRESS_VLAN_ID, DEFAULT_EGRESS_TPID, DEFAULT_EGRESS_VLAN_ID, DEFAULT_IF_NAME
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFBsnVportQInQVer10(long portNo, int ingressTpid, int ingressVlanId, int egressTpid, int egressVlanId, String ifName) {
+        this.portNo = portNo;
+        this.ingressTpid = ingressTpid;
+        this.ingressVlanId = ingressVlanId;
+        this.egressTpid = egressTpid;
+        this.egressVlanId = egressVlanId;
+        this.ifName = ifName;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public int getType() {
+        return 0x0;
+    }
+
+    @Override
+    public long getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public int getIngressTpid() {
+        return ingressTpid;
+    }
+
+    @Override
+    public int getIngressVlanId() {
+        return ingressVlanId;
+    }
+
+    @Override
+    public int getEgressTpid() {
+        return egressTpid;
+    }
+
+    @Override
+    public int getEgressVlanId() {
+        return egressVlanId;
+    }
+
+    @Override
+    public String getIfName() {
+        return ifName;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFBsnVportQInQ.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFBsnVportQInQ.Builder {
+        final OFBsnVportQInQVer10 parentMessage;
+
+        // OF message fields
+        private boolean portNoSet;
+        private long portNo;
+        private boolean ingressTpidSet;
+        private int ingressTpid;
+        private boolean ingressVlanIdSet;
+        private int ingressVlanId;
+        private boolean egressTpidSet;
+        private int egressTpid;
+        private boolean egressVlanIdSet;
+        private int egressVlanId;
+        private boolean ifNameSet;
+        private String ifName;
+
+        BuilderWithParent(OFBsnVportQInQVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public int getType() {
+        return 0x0;
+    }
+
+    @Override
+    public long getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setPortNo(long portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public int getIngressTpid() {
+        return ingressTpid;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setIngressTpid(int ingressTpid) {
+        this.ingressTpid = ingressTpid;
+        this.ingressTpidSet = true;
+        return this;
+    }
+    @Override
+    public int getIngressVlanId() {
+        return ingressVlanId;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setIngressVlanId(int ingressVlanId) {
+        this.ingressVlanId = ingressVlanId;
+        this.ingressVlanIdSet = true;
+        return this;
+    }
+    @Override
+    public int getEgressTpid() {
+        return egressTpid;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setEgressTpid(int egressTpid) {
+        this.egressTpid = egressTpid;
+        this.egressTpidSet = true;
+        return this;
+    }
+    @Override
+    public int getEgressVlanId() {
+        return egressVlanId;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setEgressVlanId(int egressVlanId) {
+        this.egressVlanId = egressVlanId;
+        this.egressVlanIdSet = true;
+        return this;
+    }
+    @Override
+    public String getIfName() {
+        return ifName;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setIfName(String ifName) {
+        this.ifName = ifName;
+        this.ifNameSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFBsnVportQInQ build() {
+                long portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+                int ingressTpid = this.ingressTpidSet ? this.ingressTpid : parentMessage.ingressTpid;
+                int ingressVlanId = this.ingressVlanIdSet ? this.ingressVlanId : parentMessage.ingressVlanId;
+                int egressTpid = this.egressTpidSet ? this.egressTpid : parentMessage.egressTpid;
+                int egressVlanId = this.egressVlanIdSet ? this.egressVlanId : parentMessage.egressVlanId;
+                String ifName = this.ifNameSet ? this.ifName : parentMessage.ifName;
+                if(ifName == null)
+                    throw new NullPointerException("Property ifName must not be null");
+
+                //
+                return new OFBsnVportQInQVer10(
+                    portNo,
+                    ingressTpid,
+                    ingressVlanId,
+                    egressTpid,
+                    egressVlanId,
+                    ifName
+                );
+        }
+
+    }
+
+    static class Builder implements OFBsnVportQInQ.Builder {
+        // OF message fields
+        private boolean portNoSet;
+        private long portNo;
+        private boolean ingressTpidSet;
+        private int ingressTpid;
+        private boolean ingressVlanIdSet;
+        private int ingressVlanId;
+        private boolean egressTpidSet;
+        private int egressTpid;
+        private boolean egressVlanIdSet;
+        private int egressVlanId;
+        private boolean ifNameSet;
+        private String ifName;
+
+    @Override
+    public int getType() {
+        return 0x0;
+    }
+
+    @Override
+    public long getPortNo() {
+        return portNo;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setPortNo(long portNo) {
+        this.portNo = portNo;
+        this.portNoSet = true;
+        return this;
+    }
+    @Override
+    public int getIngressTpid() {
+        return ingressTpid;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setIngressTpid(int ingressTpid) {
+        this.ingressTpid = ingressTpid;
+        this.ingressTpidSet = true;
+        return this;
+    }
+    @Override
+    public int getIngressVlanId() {
+        return ingressVlanId;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setIngressVlanId(int ingressVlanId) {
+        this.ingressVlanId = ingressVlanId;
+        this.ingressVlanIdSet = true;
+        return this;
+    }
+    @Override
+    public int getEgressTpid() {
+        return egressTpid;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setEgressTpid(int egressTpid) {
+        this.egressTpid = egressTpid;
+        this.egressTpidSet = true;
+        return this;
+    }
+    @Override
+    public int getEgressVlanId() {
+        return egressVlanId;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setEgressVlanId(int egressVlanId) {
+        this.egressVlanId = egressVlanId;
+        this.egressVlanIdSet = true;
+        return this;
+    }
+    @Override
+    public String getIfName() {
+        return ifName;
+    }
+
+    @Override
+    public OFBsnVportQInQ.Builder setIfName(String ifName) {
+        this.ifName = ifName;
+        this.ifNameSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFBsnVportQInQ build() {
+            long portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+            int ingressTpid = this.ingressTpidSet ? this.ingressTpid : DEFAULT_INGRESS_TPID;
+            int ingressVlanId = this.ingressVlanIdSet ? this.ingressVlanId : DEFAULT_INGRESS_VLAN_ID;
+            int egressTpid = this.egressTpidSet ? this.egressTpid : DEFAULT_EGRESS_TPID;
+            int egressVlanId = this.egressVlanIdSet ? this.egressVlanId : DEFAULT_EGRESS_VLAN_ID;
+            String ifName = this.ifNameSet ? this.ifName : DEFAULT_IF_NAME;
+            if(ifName == null)
+                throw new NullPointerException("Property ifName must not be null");
+
+
+            return new OFBsnVportQInQVer10(
+                    portNo,
+                    ingressTpid,
+                    ingressVlanId,
+                    egressTpid,
+                    egressVlanId,
+                    ifName
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFBsnVportQInQ> {
+        @Override
+        public OFBsnVportQInQ readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property type == 0x0
+            short type = bb.readShort();
+            if(type != (short) 0x0)
+                throw new OFParseError("Wrong type: Expected=0x0(0x0), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 32)
+                throw new OFParseError("Wrong length: Expected=32(32), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long portNo = U32.f(bb.readInt());
+            int ingressTpid = U16.f(bb.readShort());
+            int ingressVlanId = U16.f(bb.readShort());
+            int egressTpid = U16.f(bb.readShort());
+            int egressVlanId = U16.f(bb.readShort());
+            String ifName = ChannelUtils.readFixedLengthString(bb, 16);
+
+            OFBsnVportQInQVer10 bsnVportQInQVer10 = new OFBsnVportQInQVer10(
+                    portNo,
+                      ingressTpid,
+                      ingressVlanId,
+                      egressTpid,
+                      egressVlanId,
+                      ifName
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", bsnVportQInQVer10);
+            return bsnVportQInQVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFBsnVportQInQVer10Funnel FUNNEL = new OFBsnVportQInQVer10Funnel();
+    static class OFBsnVportQInQVer10Funnel implements Funnel<OFBsnVportQInQVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFBsnVportQInQVer10 message, PrimitiveSink sink) {
+            // fixed value property type = 0x0
+            sink.putShort((short) 0x0);
+            // fixed value property length = 32
+            sink.putShort((short) 0x20);
+            sink.putLong(message.portNo);
+            sink.putInt(message.ingressTpid);
+            sink.putInt(message.ingressVlanId);
+            sink.putInt(message.egressTpid);
+            sink.putInt(message.egressVlanId);
+            sink.putUnencodedChars(message.ifName);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFBsnVportQInQVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFBsnVportQInQVer10 message) {
+            // fixed value property type = 0x0
+            bb.writeShort((short) 0x0);
+            // fixed value property length = 32
+            bb.writeShort((short) 0x20);
+            bb.writeInt(U32.t(message.portNo));
+            bb.writeShort(U16.t(message.ingressTpid));
+            bb.writeShort(U16.t(message.ingressVlanId));
+            bb.writeShort(U16.t(message.egressTpid));
+            bb.writeShort(U16.t(message.egressVlanId));
+            ChannelUtils.writeFixedLengthString(bb, message.ifName, 16);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFBsnVportQInQVer10(");
+        b.append("portNo=").append(portNo);
+        b.append(", ");
+        b.append("ingressTpid=").append(ingressTpid);
+        b.append(", ");
+        b.append("ingressVlanId=").append(ingressVlanId);
+        b.append(", ");
+        b.append("egressTpid=").append(egressTpid);
+        b.append(", ");
+        b.append("egressVlanId=").append(egressVlanId);
+        b.append(", ");
+        b.append("ifName=").append(ifName);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFBsnVportQInQVer10 other = (OFBsnVportQInQVer10) obj;
+
+        if( portNo != other.portNo)
+            return false;
+        if( ingressTpid != other.ingressTpid)
+            return false;
+        if( ingressVlanId != other.ingressVlanId)
+            return false;
+        if( egressTpid != other.egressTpid)
+            return false;
+        if( egressVlanId != other.egressVlanId)
+            return false;
+        if (ifName == null) {
+            if (other.ifName != null)
+                return false;
+        } else if (!ifName.equals(other.ifName))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (portNo ^ (portNo >>> 32));
+        result = prime * result + ingressTpid;
+        result = prime * result + ingressVlanId;
+        result = prime * result + egressTpid;
+        result = prime * result + egressVlanId;
+        result = prime * result + ((ifName == null) ? 0 : ifName.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java
new file mode 100644
index 0000000..c4aa654
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java
@@ -0,0 +1,74 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnVportStatus;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBsnVportStatusSerializerVer10 {
+
+    public final static short BSN_VPORT_STATUS_OK_VAL = (short) 0x0;
+    public final static short BSN_VPORT_STATUS_FAILED_VAL = (short) 0x1;
+
+    public static OFBsnVportStatus readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(U8.f(bb.readByte()));
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFBsnVportStatus e) {
+        bb.writeByte(U8.t(toWireValue(e)));
+    }
+
+    public static void putTo(OFBsnVportStatus e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFBsnVportStatus ofWireValue(short val) {
+        switch(val) {
+            case BSN_VPORT_STATUS_OK_VAL:
+                return OFBsnVportStatus.BSN_VPORT_STATUS_OK;
+            case BSN_VPORT_STATUS_FAILED_VAL:
+                return OFBsnVportStatus.BSN_VPORT_STATUS_FAILED;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFBsnVportStatus in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFBsnVportStatus e) {
+        switch(e) {
+            case BSN_VPORT_STATUS_OK:
+                return BSN_VPORT_STATUS_OK_VAL;
+            case BSN_VPORT_STATUS_FAILED:
+                return BSN_VPORT_STATUS_FAILED_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFBsnVportStatus in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java
new file mode 100644
index 0000000..95e9682
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFBsnVportVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 4;
+
+
+    public final static OFBsnVportVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFBsnVport> {
+        @Override
+        public OFBsnVport readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            short type = bb.readShort();
+            bb.readerIndex(start);
+            switch(type) {
+               case (short) 0x1:
+                   // discriminator value 0x1=0x1 for class OFBsnVportL2GreVer10
+                   return OFBsnVportL2GreVer10.READER.readFrom(bb);
+               case (short) 0x0:
+                   // discriminator value 0x0=0x0 for class OFBsnVportQInQVer10
+                   return OFBsnVportQInQVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator type of class OFBsnVportVer10: " + type);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java
new file mode 100644
index 0000000..6bac973
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java
@@ -0,0 +1,120 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFCapabilities;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFCapabilitiesSerializerVer10 {
+
+    public final static int FLOW_STATS_VAL = 0x1;
+    public final static int TABLE_STATS_VAL = 0x2;
+    public final static int PORT_STATS_VAL = 0x4;
+    public final static int STP_VAL = 0x8;
+    public final static int RESERVED_VAL = 0x10;
+    public final static int IP_REASM_VAL = 0x20;
+    public final static int QUEUE_STATS_VAL = 0x40;
+    public final static int ARP_MATCH_IP_VAL = 0x80;
+
+    public static Set<OFCapabilities> readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readInt());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, Set<OFCapabilities> set) {
+        bb.writeInt(toWireValue(set));
+    }
+
+    public static void putTo(Set<OFCapabilities> set, PrimitiveSink sink) {
+        sink.putInt(toWireValue(set));
+    }
+
+
+    public static Set<OFCapabilities> ofWireValue(int val) {
+        EnumSet<OFCapabilities> set = EnumSet.noneOf(OFCapabilities.class);
+
+        if((val & FLOW_STATS_VAL) != 0)
+            set.add(OFCapabilities.FLOW_STATS);
+        if((val & TABLE_STATS_VAL) != 0)
+            set.add(OFCapabilities.TABLE_STATS);
+        if((val & PORT_STATS_VAL) != 0)
+            set.add(OFCapabilities.PORT_STATS);
+        if((val & STP_VAL) != 0)
+            set.add(OFCapabilities.STP);
+        if((val & RESERVED_VAL) != 0)
+            set.add(OFCapabilities.RESERVED);
+        if((val & IP_REASM_VAL) != 0)
+            set.add(OFCapabilities.IP_REASM);
+        if((val & QUEUE_STATS_VAL) != 0)
+            set.add(OFCapabilities.QUEUE_STATS);
+        if((val & ARP_MATCH_IP_VAL) != 0)
+            set.add(OFCapabilities.ARP_MATCH_IP);
+        return Collections.unmodifiableSet(set);
+    }
+
+    public static int toWireValue(Set<OFCapabilities> set) {
+        int wireValue = 0;
+
+        for(OFCapabilities e: set) {
+            switch(e) {
+                case FLOW_STATS:
+                    wireValue |= FLOW_STATS_VAL;
+                    break;
+                case TABLE_STATS:
+                    wireValue |= TABLE_STATS_VAL;
+                    break;
+                case PORT_STATS:
+                    wireValue |= PORT_STATS_VAL;
+                    break;
+                case STP:
+                    wireValue |= STP_VAL;
+                    break;
+                case RESERVED:
+                    wireValue |= RESERVED_VAL;
+                    break;
+                case IP_REASM:
+                    wireValue |= IP_REASM_VAL;
+                    break;
+                case QUEUE_STATS:
+                    wireValue |= QUEUE_STATS_VAL;
+                    break;
+                case ARP_MATCH_IP:
+                    wireValue |= ARP_MATCH_IP_VAL;
+                    break;
+                default:
+                    throw new IllegalArgumentException("Illegal enum value for type OFCapabilities in version 1.0: " + e);
+            }
+        }
+        return wireValue;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java
new file mode 100644
index 0000000..bd45beb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java
@@ -0,0 +1,91 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFConfigFlags;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFConfigFlagsSerializerVer10 {
+
+    public final static short FRAG_NORMAL_VAL = (short) 0x0;
+    public final static short FRAG_DROP_VAL = (short) 0x1;
+    public final static short FRAG_REASM_VAL = (short) 0x2;
+    public final static short FRAG_MASK_VAL = (short) 0x3;
+
+    public static Set<OFConfigFlags> readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, Set<OFConfigFlags> set) {
+        bb.writeShort(toWireValue(set));
+    }
+
+    public static void putTo(Set<OFConfigFlags> set, PrimitiveSink sink) {
+        sink.putShort(toWireValue(set));
+    }
+
+
+    public static Set<OFConfigFlags> ofWireValue(short val) {
+        EnumSet<OFConfigFlags> set = EnumSet.noneOf(OFConfigFlags.class);
+
+        if((val & FRAG_MASK_VAL) == FRAG_NORMAL_VAL)
+            set.add(OFConfigFlags.FRAG_NORMAL);
+        else if((val & FRAG_MASK_VAL) == FRAG_DROP_VAL)
+            set.add(OFConfigFlags.FRAG_DROP);
+        else if((val & FRAG_MASK_VAL) == FRAG_REASM_VAL)
+            set.add(OFConfigFlags.FRAG_REASM);
+        return Collections.unmodifiableSet(set);
+    }
+
+    public static short toWireValue(Set<OFConfigFlags> set) {
+        short wireValue = 0;
+
+        for(OFConfigFlags e: set) {
+            switch(e) {
+                case FRAG_NORMAL:
+                    wireValue |= FRAG_NORMAL_VAL;
+                    break;
+                case FRAG_DROP:
+                    wireValue |= FRAG_DROP_VAL;
+                    break;
+                case FRAG_REASM:
+                    wireValue |= FRAG_REASM_VAL;
+                    break;
+                default:
+                    throw new IllegalArgumentException("Illegal enum value for type OFConfigFlags in version 1.0: " + e);
+            }
+        }
+        return wireValue;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java
new file mode 100644
index 0000000..ed1bf76
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java
@@ -0,0 +1,616 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFDescStatsReplyVer10 implements OFDescStatsReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFDescStatsReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 1068;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Set<OFStatsReplyFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsReplyFlags>of();
+        private final static String DEFAULT_MFR_DESC = "";
+        private final static String DEFAULT_HW_DESC = "";
+        private final static String DEFAULT_SW_DESC = "";
+        private final static String DEFAULT_SERIAL_NUM = "";
+        private final static String DEFAULT_DP_DESC = "";
+
+    // OF message fields
+    private final long xid;
+    private final Set<OFStatsReplyFlags> flags;
+    private final String mfrDesc;
+    private final String hwDesc;
+    private final String swDesc;
+    private final String serialNum;
+    private final String dpDesc;
+//
+    // Immutable default instance
+    final static OFDescStatsReplyVer10 DEFAULT = new OFDescStatsReplyVer10(
+        DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_MFR_DESC, DEFAULT_HW_DESC, DEFAULT_SW_DESC, DEFAULT_SERIAL_NUM, DEFAULT_DP_DESC
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFDescStatsReplyVer10(long xid, Set<OFStatsReplyFlags> flags, String mfrDesc, String hwDesc, String swDesc, String serialNum, String dpDesc) {
+        this.xid = xid;
+        this.flags = flags;
+        this.mfrDesc = mfrDesc;
+        this.hwDesc = hwDesc;
+        this.swDesc = swDesc;
+        this.serialNum = serialNum;
+        this.dpDesc = dpDesc;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.DESC;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public String getMfrDesc() {
+        return mfrDesc;
+    }
+
+    @Override
+    public String getHwDesc() {
+        return hwDesc;
+    }
+
+    @Override
+    public String getSwDesc() {
+        return swDesc;
+    }
+
+    @Override
+    public String getSerialNum() {
+        return serialNum;
+    }
+
+    @Override
+    public String getDpDesc() {
+        return dpDesc;
+    }
+
+
+
+    public OFDescStatsReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFDescStatsReply.Builder {
+        final OFDescStatsReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsReplyFlags> flags;
+        private boolean mfrDescSet;
+        private String mfrDesc;
+        private boolean hwDescSet;
+        private String hwDesc;
+        private boolean swDescSet;
+        private String swDesc;
+        private boolean serialNumSet;
+        private String serialNum;
+        private boolean dpDescSet;
+        private String dpDesc;
+
+        BuilderWithParent(OFDescStatsReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.DESC;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public String getMfrDesc() {
+        return mfrDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setMfrDesc(String mfrDesc) {
+        this.mfrDesc = mfrDesc;
+        this.mfrDescSet = true;
+        return this;
+    }
+    @Override
+    public String getHwDesc() {
+        return hwDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setHwDesc(String hwDesc) {
+        this.hwDesc = hwDesc;
+        this.hwDescSet = true;
+        return this;
+    }
+    @Override
+    public String getSwDesc() {
+        return swDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setSwDesc(String swDesc) {
+        this.swDesc = swDesc;
+        this.swDescSet = true;
+        return this;
+    }
+    @Override
+    public String getSerialNum() {
+        return serialNum;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setSerialNum(String serialNum) {
+        this.serialNum = serialNum;
+        this.serialNumSet = true;
+        return this;
+    }
+    @Override
+    public String getDpDesc() {
+        return dpDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setDpDesc(String dpDesc) {
+        this.dpDesc = dpDesc;
+        this.dpDescSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFDescStatsReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                String mfrDesc = this.mfrDescSet ? this.mfrDesc : parentMessage.mfrDesc;
+                if(mfrDesc == null)
+                    throw new NullPointerException("Property mfrDesc must not be null");
+                String hwDesc = this.hwDescSet ? this.hwDesc : parentMessage.hwDesc;
+                if(hwDesc == null)
+                    throw new NullPointerException("Property hwDesc must not be null");
+                String swDesc = this.swDescSet ? this.swDesc : parentMessage.swDesc;
+                if(swDesc == null)
+                    throw new NullPointerException("Property swDesc must not be null");
+                String serialNum = this.serialNumSet ? this.serialNum : parentMessage.serialNum;
+                if(serialNum == null)
+                    throw new NullPointerException("Property serialNum must not be null");
+                String dpDesc = this.dpDescSet ? this.dpDesc : parentMessage.dpDesc;
+                if(dpDesc == null)
+                    throw new NullPointerException("Property dpDesc must not be null");
+
+                //
+                return new OFDescStatsReplyVer10(
+                    xid,
+                    flags,
+                    mfrDesc,
+                    hwDesc,
+                    swDesc,
+                    serialNum,
+                    dpDesc
+                );
+        }
+
+    }
+
+    static class Builder implements OFDescStatsReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsReplyFlags> flags;
+        private boolean mfrDescSet;
+        private String mfrDesc;
+        private boolean hwDescSet;
+        private String hwDesc;
+        private boolean swDescSet;
+        private String swDesc;
+        private boolean serialNumSet;
+        private String serialNum;
+        private boolean dpDescSet;
+        private String dpDesc;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.DESC;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public String getMfrDesc() {
+        return mfrDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setMfrDesc(String mfrDesc) {
+        this.mfrDesc = mfrDesc;
+        this.mfrDescSet = true;
+        return this;
+    }
+    @Override
+    public String getHwDesc() {
+        return hwDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setHwDesc(String hwDesc) {
+        this.hwDesc = hwDesc;
+        this.hwDescSet = true;
+        return this;
+    }
+    @Override
+    public String getSwDesc() {
+        return swDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setSwDesc(String swDesc) {
+        this.swDesc = swDesc;
+        this.swDescSet = true;
+        return this;
+    }
+    @Override
+    public String getSerialNum() {
+        return serialNum;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setSerialNum(String serialNum) {
+        this.serialNum = serialNum;
+        this.serialNumSet = true;
+        return this;
+    }
+    @Override
+    public String getDpDesc() {
+        return dpDesc;
+    }
+
+    @Override
+    public OFDescStatsReply.Builder setDpDesc(String dpDesc) {
+        this.dpDesc = dpDesc;
+        this.dpDescSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFDescStatsReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            String mfrDesc = this.mfrDescSet ? this.mfrDesc : DEFAULT_MFR_DESC;
+            if(mfrDesc == null)
+                throw new NullPointerException("Property mfrDesc must not be null");
+            String hwDesc = this.hwDescSet ? this.hwDesc : DEFAULT_HW_DESC;
+            if(hwDesc == null)
+                throw new NullPointerException("Property hwDesc must not be null");
+            String swDesc = this.swDescSet ? this.swDesc : DEFAULT_SW_DESC;
+            if(swDesc == null)
+                throw new NullPointerException("Property swDesc must not be null");
+            String serialNum = this.serialNumSet ? this.serialNum : DEFAULT_SERIAL_NUM;
+            if(serialNum == null)
+                throw new NullPointerException("Property serialNum must not be null");
+            String dpDesc = this.dpDescSet ? this.dpDesc : DEFAULT_DP_DESC;
+            if(dpDesc == null)
+                throw new NullPointerException("Property dpDesc must not be null");
+
+
+            return new OFDescStatsReplyVer10(
+                    xid,
+                    flags,
+                    mfrDesc,
+                    hwDesc,
+                    swDesc,
+                    serialNum,
+                    dpDesc
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFDescStatsReply> {
+        @Override
+        public OFDescStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 17
+            byte type = bb.readByte();
+            if(type != (byte) 0x11)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(17), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 1068)
+                throw new OFParseError("Wrong length: Expected=1068(1068), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property statsType == 0
+            short statsType = bb.readShort();
+            if(statsType != (short) 0x0)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.DESC(0), got="+statsType);
+            Set<OFStatsReplyFlags> flags = OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+            String mfrDesc = ChannelUtils.readFixedLengthString(bb, 256);
+            String hwDesc = ChannelUtils.readFixedLengthString(bb, 256);
+            String swDesc = ChannelUtils.readFixedLengthString(bb, 256);
+            String serialNum = ChannelUtils.readFixedLengthString(bb, 32);
+            String dpDesc = ChannelUtils.readFixedLengthString(bb, 256);
+
+            OFDescStatsReplyVer10 descStatsReplyVer10 = new OFDescStatsReplyVer10(
+                    xid,
+                      flags,
+                      mfrDesc,
+                      hwDesc,
+                      swDesc,
+                      serialNum,
+                      dpDesc
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", descStatsReplyVer10);
+            return descStatsReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFDescStatsReplyVer10Funnel FUNNEL = new OFDescStatsReplyVer10Funnel();
+    static class OFDescStatsReplyVer10Funnel implements Funnel<OFDescStatsReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFDescStatsReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 17
+            sink.putByte((byte) 0x11);
+            // fixed value property length = 1068
+            sink.putShort((short) 0x42c);
+            sink.putLong(message.xid);
+            // fixed value property statsType = 0
+            sink.putShort((short) 0x0);
+            OFStatsReplyFlagsSerializerVer10.putTo(message.flags, sink);
+            sink.putUnencodedChars(message.mfrDesc);
+            sink.putUnencodedChars(message.hwDesc);
+            sink.putUnencodedChars(message.swDesc);
+            sink.putUnencodedChars(message.serialNum);
+            sink.putUnencodedChars(message.dpDesc);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFDescStatsReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFDescStatsReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 17
+            bb.writeByte((byte) 0x11);
+            // fixed value property length = 1068
+            bb.writeShort((short) 0x42c);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property statsType = 0
+            bb.writeShort((short) 0x0);
+            OFStatsReplyFlagsSerializerVer10.writeTo(bb, message.flags);
+            ChannelUtils.writeFixedLengthString(bb, message.mfrDesc, 256);
+            ChannelUtils.writeFixedLengthString(bb, message.hwDesc, 256);
+            ChannelUtils.writeFixedLengthString(bb, message.swDesc, 256);
+            ChannelUtils.writeFixedLengthString(bb, message.serialNum, 32);
+            ChannelUtils.writeFixedLengthString(bb, message.dpDesc, 256);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFDescStatsReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("mfrDesc=").append(mfrDesc);
+        b.append(", ");
+        b.append("hwDesc=").append(hwDesc);
+        b.append(", ");
+        b.append("swDesc=").append(swDesc);
+        b.append(", ");
+        b.append("serialNum=").append(serialNum);
+        b.append(", ");
+        b.append("dpDesc=").append(dpDesc);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFDescStatsReplyVer10 other = (OFDescStatsReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (mfrDesc == null) {
+            if (other.mfrDesc != null)
+                return false;
+        } else if (!mfrDesc.equals(other.mfrDesc))
+            return false;
+        if (hwDesc == null) {
+            if (other.hwDesc != null)
+                return false;
+        } else if (!hwDesc.equals(other.hwDesc))
+            return false;
+        if (swDesc == null) {
+            if (other.swDesc != null)
+                return false;
+        } else if (!swDesc.equals(other.swDesc))
+            return false;
+        if (serialNum == null) {
+            if (other.serialNum != null)
+                return false;
+        } else if (!serialNum.equals(other.serialNum))
+            return false;
+        if (dpDesc == null) {
+            if (other.dpDesc != null)
+                return false;
+        } else if (!dpDesc.equals(other.dpDesc))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((mfrDesc == null) ? 0 : mfrDesc.hashCode());
+        result = prime * result + ((hwDesc == null) ? 0 : hwDesc.hashCode());
+        result = prime * result + ((swDesc == null) ? 0 : swDesc.hashCode());
+        result = prime * result + ((serialNum == null) ? 0 : serialNum.hashCode());
+        result = prime * result + ((dpDesc == null) ? 0 : dpDesc.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java
new file mode 100644
index 0000000..71ac331
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java
@@ -0,0 +1,346 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFDescStatsRequestVer10 implements OFDescStatsRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFDescStatsRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 12;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Set<OFStatsRequestFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsRequestFlags>of();
+
+    // OF message fields
+    private final long xid;
+    private final Set<OFStatsRequestFlags> flags;
+//
+    // Immutable default instance
+    final static OFDescStatsRequestVer10 DEFAULT = new OFDescStatsRequestVer10(
+        DEFAULT_XID, DEFAULT_FLAGS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFDescStatsRequestVer10(long xid, Set<OFStatsRequestFlags> flags) {
+        this.xid = xid;
+        this.flags = flags;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.DESC;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+
+
+    public OFDescStatsRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFDescStatsRequest.Builder {
+        final OFDescStatsRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsRequestFlags> flags;
+
+        BuilderWithParent(OFDescStatsRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFDescStatsRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.DESC;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFDescStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFDescStatsRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+
+                //
+                return new OFDescStatsRequestVer10(
+                    xid,
+                    flags
+                );
+        }
+
+    }
+
+    static class Builder implements OFDescStatsRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsRequestFlags> flags;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFDescStatsRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.DESC;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFDescStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFDescStatsRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+
+
+            return new OFDescStatsRequestVer10(
+                    xid,
+                    flags
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFDescStatsRequest> {
+        @Override
+        public OFDescStatsRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 16
+            byte type = bb.readByte();
+            if(type != (byte) 0x10)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REQUEST(16), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 12)
+                throw new OFParseError("Wrong length: Expected=12(12), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property statsType == 0
+            short statsType = bb.readShort();
+            if(statsType != (short) 0x0)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.DESC(0), got="+statsType);
+            Set<OFStatsRequestFlags> flags = OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+
+            OFDescStatsRequestVer10 descStatsRequestVer10 = new OFDescStatsRequestVer10(
+                    xid,
+                      flags
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", descStatsRequestVer10);
+            return descStatsRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFDescStatsRequestVer10Funnel FUNNEL = new OFDescStatsRequestVer10Funnel();
+    static class OFDescStatsRequestVer10Funnel implements Funnel<OFDescStatsRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFDescStatsRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 16
+            sink.putByte((byte) 0x10);
+            // fixed value property length = 12
+            sink.putShort((short) 0xc);
+            sink.putLong(message.xid);
+            // fixed value property statsType = 0
+            sink.putShort((short) 0x0);
+            OFStatsRequestFlagsSerializerVer10.putTo(message.flags, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFDescStatsRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFDescStatsRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 16
+            bb.writeByte((byte) 0x10);
+            // fixed value property length = 12
+            bb.writeShort((short) 0xc);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property statsType = 0
+            bb.writeShort((short) 0x0);
+            OFStatsRequestFlagsSerializerVer10.writeTo(bb, message.flags);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFDescStatsRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFDescStatsRequestVer10 other = (OFDescStatsRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java
new file mode 100644
index 0000000..260030c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java
@@ -0,0 +1,325 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFEchoReplyVer10 implements OFEchoReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFEchoReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 8;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static byte[] DEFAULT_DATA = new byte[0];
+
+    // OF message fields
+    private final long xid;
+    private final byte[] data;
+//
+    // Immutable default instance
+    final static OFEchoReplyVer10 DEFAULT = new OFEchoReplyVer10(
+        DEFAULT_XID, DEFAULT_DATA
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFEchoReplyVer10(long xid, byte[] data) {
+        this.xid = xid;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ECHO_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+
+
+    public OFEchoReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFEchoReply.Builder {
+        final OFEchoReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean dataSet;
+        private byte[] data;
+
+        BuilderWithParent(OFEchoReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ECHO_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFEchoReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFEchoReply.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFEchoReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                byte[] data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFEchoReplyVer10(
+                    xid,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFEchoReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean dataSet;
+        private byte[] data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ECHO_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFEchoReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFEchoReply.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFEchoReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFEchoReplyVer10(
+                    xid,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFEchoReply> {
+        @Override
+        public OFEchoReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 3
+            byte type = bb.readByte();
+            if(type != (byte) 0x3)
+                throw new OFParseError("Wrong type: Expected=OFType.ECHO_REPLY(3), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+            OFEchoReplyVer10 echoReplyVer10 = new OFEchoReplyVer10(
+                    xid,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", echoReplyVer10);
+            return echoReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFEchoReplyVer10Funnel FUNNEL = new OFEchoReplyVer10Funnel();
+    static class OFEchoReplyVer10Funnel implements Funnel<OFEchoReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFEchoReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 3
+            sink.putByte((byte) 0x3);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            sink.putBytes(message.data);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFEchoReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFEchoReplyVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 3
+            bb.writeByte((byte) 0x3);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            bb.writeBytes(message.data);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFEchoReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("data=").append(Arrays.toString(data));
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFEchoReplyVer10 other = (OFEchoReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (!Arrays.equals(data, other.data))
+                return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + Arrays.hashCode(data);
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java
new file mode 100644
index 0000000..ee34d40
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java
@@ -0,0 +1,325 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFEchoRequestVer10 implements OFEchoRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFEchoRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 8;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static byte[] DEFAULT_DATA = new byte[0];
+
+    // OF message fields
+    private final long xid;
+    private final byte[] data;
+//
+    // Immutable default instance
+    final static OFEchoRequestVer10 DEFAULT = new OFEchoRequestVer10(
+        DEFAULT_XID, DEFAULT_DATA
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFEchoRequestVer10(long xid, byte[] data) {
+        this.xid = xid;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ECHO_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+
+
+    public OFEchoRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFEchoRequest.Builder {
+        final OFEchoRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean dataSet;
+        private byte[] data;
+
+        BuilderWithParent(OFEchoRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ECHO_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFEchoRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFEchoRequest.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFEchoRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                byte[] data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFEchoRequestVer10(
+                    xid,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFEchoRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean dataSet;
+        private byte[] data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ECHO_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFEchoRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public byte[] getData() {
+        return data;
+    }
+
+    @Override
+    public OFEchoRequest.Builder setData(byte[] data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFEchoRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFEchoRequestVer10(
+                    xid,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFEchoRequest> {
+        @Override
+        public OFEchoRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 2
+            byte type = bb.readByte();
+            if(type != (byte) 0x2)
+                throw new OFParseError("Wrong type: Expected=OFType.ECHO_REQUEST(2), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+            OFEchoRequestVer10 echoRequestVer10 = new OFEchoRequestVer10(
+                    xid,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", echoRequestVer10);
+            return echoRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFEchoRequestVer10Funnel FUNNEL = new OFEchoRequestVer10Funnel();
+    static class OFEchoRequestVer10Funnel implements Funnel<OFEchoRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFEchoRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 2
+            sink.putByte((byte) 0x2);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            sink.putBytes(message.data);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFEchoRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFEchoRequestVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 2
+            bb.writeByte((byte) 0x2);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            bb.writeBytes(message.data);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFEchoRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("data=").append(Arrays.toString(data));
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFEchoRequestVer10 other = (OFEchoRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (!Arrays.equals(data, other.data))
+                return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + Arrays.hashCode(data);
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java
new file mode 100644
index 0000000..03ecc4b
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java
@@ -0,0 +1,80 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFErrorMsgVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 10;
+
+
+    public final static OFErrorMsgVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFErrorMsg> {
+        @Override
+        public OFErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 1
+            byte type = bb.readByte();
+            if(type != (byte) 0x1)
+                throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            short errType = bb.readShort();
+            bb.readerIndex(start);
+            switch(errType) {
+               case (short) 0x2:
+                   // discriminator value OFErrorType.BAD_ACTION=2 for class OFBadActionErrorMsgVer10
+                   return OFBadActionErrorMsgVer10.READER.readFrom(bb);
+               case (short) 0x1:
+                   // discriminator value OFErrorType.BAD_REQUEST=1 for class OFBadRequestErrorMsgVer10
+                   return OFBadRequestErrorMsgVer10.READER.readFrom(bb);
+               case (short) 0x3:
+                   // discriminator value OFErrorType.FLOW_MOD_FAILED=3 for class OFFlowModFailedErrorMsgVer10
+                   return OFFlowModFailedErrorMsgVer10.READER.readFrom(bb);
+               case (short) 0x0:
+                   // discriminator value OFErrorType.HELLO_FAILED=0 for class OFHelloFailedErrorMsgVer10
+                   return OFHelloFailedErrorMsgVer10.READER.readFrom(bb);
+               case (short) 0x4:
+                   // discriminator value OFErrorType.PORT_MOD_FAILED=4 for class OFPortModFailedErrorMsgVer10
+                   return OFPortModFailedErrorMsgVer10.READER.readFrom(bb);
+               case (short) 0x5:
+                   // discriminator value OFErrorType.QUEUE_OP_FAILED=5 for class OFQueueOpFailedErrorMsgVer10
+                   return OFQueueOpFailedErrorMsgVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator errType of class OFErrorMsgVer10: " + errType);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java
new file mode 100644
index 0000000..bd921e9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java
@@ -0,0 +1,106 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+
+public class OFErrorMsgsVer10 implements OFErrorMsgs {
+    public final static OFErrorMsgsVer10 INSTANCE = new OFErrorMsgsVer10();
+
+    private final XidGenerator xidGenerator = XidGenerators.global();
+
+
+
+    public OFBadActionErrorMsg.Builder buildBadActionErrorMsg() {
+        return new OFBadActionErrorMsgVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBadRequestErrorMsg.Builder buildBadRequestErrorMsg() {
+        return new OFBadRequestErrorMsgVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowModFailedErrorMsg.Builder buildFlowModFailedErrorMsg() {
+        return new OFFlowModFailedErrorMsgVer10.Builder().setXid(nextXid());
+    }
+
+    public OFHelloFailedErrorMsg.Builder buildHelloFailedErrorMsg() {
+        return new OFHelloFailedErrorMsgVer10.Builder().setXid(nextXid());
+    }
+
+    public OFPortModFailedErrorMsg.Builder buildPortModFailedErrorMsg() {
+        return new OFPortModFailedErrorMsgVer10.Builder().setXid(nextXid());
+    }
+
+    public OFQueueOpFailedErrorMsg.Builder buildQueueOpFailedErrorMsg() {
+        return new OFQueueOpFailedErrorMsgVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBadInstructionErrorMsg.Builder buildBadInstructionErrorMsg() {
+        throw new UnsupportedOperationException("OFBadInstructionErrorMsg not supported in version 1.0");
+    }
+
+    public OFBadMatchErrorMsg.Builder buildBadMatchErrorMsg() {
+        throw new UnsupportedOperationException("OFBadMatchErrorMsg not supported in version 1.0");
+    }
+
+    public OFGroupModFailedErrorMsg.Builder buildGroupModFailedErrorMsg() {
+        throw new UnsupportedOperationException("OFGroupModFailedErrorMsg not supported in version 1.0");
+    }
+
+    public OFSwitchConfigFailedErrorMsg.Builder buildSwitchConfigFailedErrorMsg() {
+        throw new UnsupportedOperationException("OFSwitchConfigFailedErrorMsg not supported in version 1.0");
+    }
+
+    public OFTableModFailedErrorMsg.Builder buildTableModFailedErrorMsg() {
+        throw new UnsupportedOperationException("OFTableModFailedErrorMsg not supported in version 1.0");
+    }
+
+    public OFExperimenterErrorMsg.Builder buildExperimenterErrorMsg() {
+        throw new UnsupportedOperationException("OFExperimenterErrorMsg not supported in version 1.0");
+    }
+
+    public OFRoleRequestFailedErrorMsg.Builder buildRoleRequestFailedErrorMsg() {
+        throw new UnsupportedOperationException("OFRoleRequestFailedErrorMsg not supported in version 1.0");
+    }
+
+    public OFMeterModFailedErrorMsg.Builder buildMeterModFailedErrorMsg() {
+        throw new UnsupportedOperationException("OFMeterModFailedErrorMsg not supported in version 1.0");
+    }
+
+    public OFTableFeaturesFailedErrorMsg.Builder buildTableFeaturesFailedErrorMsg() {
+        throw new UnsupportedOperationException("OFTableFeaturesFailedErrorMsg not supported in version 1.0");
+    }
+
+    public OFMessageReader<OFErrorMsg> getReader() {
+        return OFErrorMsgVer10.READER;
+    }
+
+    public long nextXid() {
+        return xidGenerator.nextXid();
+    }
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_10;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java
new file mode 100644
index 0000000..14e4696
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java
@@ -0,0 +1,94 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFErrorType;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFErrorTypeSerializerVer10 {
+
+    public final static short HELLO_FAILED_VAL = (short) 0x0;
+    public final static short BAD_REQUEST_VAL = (short) 0x1;
+    public final static short BAD_ACTION_VAL = (short) 0x2;
+    public final static short FLOW_MOD_FAILED_VAL = (short) 0x3;
+    public final static short PORT_MOD_FAILED_VAL = (short) 0x4;
+    public final static short QUEUE_OP_FAILED_VAL = (short) 0x5;
+
+    public static OFErrorType readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFErrorType e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFErrorType e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFErrorType ofWireValue(short val) {
+        switch(val) {
+            case HELLO_FAILED_VAL:
+                return OFErrorType.HELLO_FAILED;
+            case BAD_REQUEST_VAL:
+                return OFErrorType.BAD_REQUEST;
+            case BAD_ACTION_VAL:
+                return OFErrorType.BAD_ACTION;
+            case FLOW_MOD_FAILED_VAL:
+                return OFErrorType.FLOW_MOD_FAILED;
+            case PORT_MOD_FAILED_VAL:
+                return OFErrorType.PORT_MOD_FAILED;
+            case QUEUE_OP_FAILED_VAL:
+                return OFErrorType.QUEUE_OP_FAILED;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFErrorType in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFErrorType e) {
+        switch(e) {
+            case HELLO_FAILED:
+                return HELLO_FAILED_VAL;
+            case BAD_REQUEST:
+                return BAD_REQUEST_VAL;
+            case BAD_ACTION:
+                return BAD_ACTION_VAL;
+            case FLOW_MOD_FAILED:
+                return FLOW_MOD_FAILED_VAL;
+            case PORT_MOD_FAILED:
+                return PORT_MOD_FAILED_VAL;
+            case QUEUE_OP_FAILED:
+                return QUEUE_OP_FAILED_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFErrorType in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java
new file mode 100644
index 0000000..f97c13c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java
@@ -0,0 +1,70 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFExperimenterStatsReplyVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 16;
+
+
+    public final static OFExperimenterStatsReplyVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFExperimenterStatsReply> {
+        @Override
+        public OFExperimenterStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 17
+            byte type = bb.readByte();
+            if(type != (byte) 0x11)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(17), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            // fixed value property statsType == 65535
+            short statsType = bb.readShort();
+            if(statsType != (short) 0xffff)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+            OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+            int experimenter = bb.readInt();
+            bb.readerIndex(start);
+            switch(experimenter) {
+               case 0x5c16c7:
+                   // discriminator value 0x5c16c7L=0x5c16c7L for class OFBsnStatsReplyVer10
+                   return OFBsnStatsReplyVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator experimenter of class OFExperimenterStatsReplyVer10: " + experimenter);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java
new file mode 100644
index 0000000..fbe9855
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java
@@ -0,0 +1,70 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFExperimenterStatsRequestVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 16;
+
+
+    public final static OFExperimenterStatsRequestVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFExperimenterStatsRequest<?>> {
+        @Override
+        public OFExperimenterStatsRequest<?> readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 16
+            byte type = bb.readByte();
+            if(type != (byte) 0x10)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REQUEST(16), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            // fixed value property statsType == 65535
+            short statsType = bb.readShort();
+            if(statsType != (short) 0xffff)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+            OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+            int experimenter = bb.readInt();
+            bb.readerIndex(start);
+            switch(experimenter) {
+               case 0x5c16c7:
+                   // discriminator value 0x5c16c7L=0x5c16c7L for class OFBsnStatsRequestVer10
+                   return OFBsnStatsRequestVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator experimenter of class OFExperimenterStatsRequestVer10: " + experimenter);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java
new file mode 100644
index 0000000..37b7c26
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java
@@ -0,0 +1,68 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFExperimenterVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 12;
+
+
+    public final static OFExperimenterVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFExperimenter> {
+        @Override
+        public OFExperimenter readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 4
+            byte type = bb.readByte();
+            if(type != (byte) 0x4)
+                throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            int experimenter = bb.readInt();
+            bb.readerIndex(start);
+            switch(experimenter) {
+               case 0x5c16c7:
+                   // discriminator value 0x5c16c7L=0x5c16c7L for class OFBsnHeaderVer10
+                   return OFBsnHeaderVer10.READER.readFrom(bb);
+               case 0x2320:
+                   // discriminator value 0x2320L=0x2320L for class OFNiciraHeaderVer10
+                   return OFNiciraHeaderVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator experimenter of class OFExperimenterVer10: " + experimenter);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java
new file mode 100644
index 0000000..7ef1b32
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java
@@ -0,0 +1,1245 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.projectfloodlight.openflow.protocol.OFOxmList;
+
+
+public class OFFactoryVer10 implements OFFactory {
+    public final static OFFactoryVer10 INSTANCE = new OFFactoryVer10();
+
+    private final XidGenerator xidGenerator = XidGenerators.global();
+
+    public OFActions actions() {
+        return OFActionsVer10.INSTANCE;
+    }
+    public OFInstructions instructions() {
+        return OFInstructionsVer10.INSTANCE;
+    }
+    public OFMeterBands meterBands() {
+        return OFMeterBandsVer10.INSTANCE;
+    }
+    public OFOxms oxms() {
+        return OFOxmsVer10.INSTANCE;
+    }
+    public OFQueueProps queueProps() {
+        return OFQueuePropsVer10.INSTANCE;
+    }
+    public OFErrorMsgs errorMsgs() {
+        return OFErrorMsgsVer10.INSTANCE;
+    }
+    public OFActionIds actionIds() {
+        return OFActionIdsVer10.INSTANCE;
+    }
+    public OFInstructionIds instructionIds() {
+        return OFInstructionIdsVer10.INSTANCE;
+    }
+    public OFBsnTlvs bsnTlvs() {
+        return OFBsnTlvsVer10.INSTANCE;
+    }
+
+
+    public OFAggregateStatsReply.Builder buildAggregateStatsReply() {
+        return new OFAggregateStatsReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFAggregateStatsRequest.Builder buildAggregateStatsRequest() {
+        return new OFAggregateStatsRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBarrierReply.Builder buildBarrierReply() {
+        return new OFBarrierReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFBarrierReply barrierReply() {
+        return new OFBarrierReplyVer10(
+                nextXid()
+                    );
+    }
+
+    public OFBarrierRequest.Builder buildBarrierRequest() {
+        return new OFBarrierRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBarrierRequest barrierRequest() {
+        return new OFBarrierRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFBsnBwClearDataReply.Builder buildBsnBwClearDataReply() {
+        return new OFBsnBwClearDataReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnBwClearDataReply bsnBwClearDataReply(long status) {
+        return new OFBsnBwClearDataReplyVer10(
+                nextXid(),
+                      status
+                    );
+    }
+
+    public OFBsnBwClearDataRequest.Builder buildBsnBwClearDataRequest() {
+        return new OFBsnBwClearDataRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnBwClearDataRequest bsnBwClearDataRequest() {
+        return new OFBsnBwClearDataRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFBsnBwEnableGetReply.Builder buildBsnBwEnableGetReply() {
+        return new OFBsnBwEnableGetReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnBwEnableGetReply bsnBwEnableGetReply(long enabled) {
+        return new OFBsnBwEnableGetReplyVer10(
+                nextXid(),
+                      enabled
+                    );
+    }
+
+    public OFBsnBwEnableGetRequest.Builder buildBsnBwEnableGetRequest() {
+        return new OFBsnBwEnableGetRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnBwEnableGetRequest bsnBwEnableGetRequest() {
+        return new OFBsnBwEnableGetRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFBsnBwEnableSetReply.Builder buildBsnBwEnableSetReply() {
+        return new OFBsnBwEnableSetReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnBwEnableSetRequest.Builder buildBsnBwEnableSetRequest() {
+        return new OFBsnBwEnableSetRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnBwEnableSetRequest bsnBwEnableSetRequest(long enable) {
+        return new OFBsnBwEnableSetRequestVer10(
+                nextXid(),
+                      enable
+                    );
+    }
+
+    public OFBsnGetInterfacesReply.Builder buildBsnGetInterfacesReply() {
+        return new OFBsnGetInterfacesReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnGetInterfacesReply bsnGetInterfacesReply(List<OFBsnInterface> interfaces) {
+        return new OFBsnGetInterfacesReplyVer10(
+                nextXid(),
+                      interfaces
+                    );
+    }
+
+    public OFBsnGetInterfacesRequest.Builder buildBsnGetInterfacesRequest() {
+        return new OFBsnGetInterfacesRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnGetInterfacesRequest bsnGetInterfacesRequest() {
+        return new OFBsnGetInterfacesRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFBsnGetIpMaskReply.Builder buildBsnGetIpMaskReply() {
+        return new OFBsnGetIpMaskReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnGetIpMaskRequest.Builder buildBsnGetIpMaskRequest() {
+        return new OFBsnGetIpMaskRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnGetIpMaskRequest bsnGetIpMaskRequest(short index) {
+        return new OFBsnGetIpMaskRequestVer10(
+                nextXid(),
+                      index
+                    );
+    }
+
+    public OFBsnGetL2TableReply.Builder buildBsnGetL2TableReply() {
+        return new OFBsnGetL2TableReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnGetL2TableRequest.Builder buildBsnGetL2TableRequest() {
+        return new OFBsnGetL2TableRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnGetL2TableRequest bsnGetL2TableRequest() {
+        return new OFBsnGetL2TableRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFBsnGetMirroringReply.Builder buildBsnGetMirroringReply() {
+        return new OFBsnGetMirroringReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnGetMirroringReply bsnGetMirroringReply(short reportMirrorPorts) {
+        return new OFBsnGetMirroringReplyVer10(
+                nextXid(),
+                      reportMirrorPorts
+                    );
+    }
+
+    public OFBsnGetMirroringRequest.Builder buildBsnGetMirroringRequest() {
+        return new OFBsnGetMirroringRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnGetMirroringRequest bsnGetMirroringRequest(short reportMirrorPorts) {
+        return new OFBsnGetMirroringRequestVer10(
+                nextXid(),
+                      reportMirrorPorts
+                    );
+    }
+
+    public OFBsnHybridGetReply.Builder buildBsnHybridGetReply() {
+        return new OFBsnHybridGetReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnHybridGetRequest.Builder buildBsnHybridGetRequest() {
+        return new OFBsnHybridGetRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnHybridGetRequest bsnHybridGetRequest() {
+        return new OFBsnHybridGetRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFBsnInterface.Builder buildBsnInterface() {
+        return new OFBsnInterfaceVer10.Builder();
+    }
+
+    public OFBsnPduRxReply.Builder buildBsnPduRxReply() {
+        return new OFBsnPduRxReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnPduRxRequest.Builder buildBsnPduRxRequest() {
+        return new OFBsnPduRxRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnPduRxTimeout.Builder buildBsnPduRxTimeout() {
+        return new OFBsnPduRxTimeoutVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnPduTxReply.Builder buildBsnPduTxReply() {
+        return new OFBsnPduTxReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnPduTxRequest.Builder buildBsnPduTxRequest() {
+        return new OFBsnPduTxRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnSetIpMask.Builder buildBsnSetIpMask() {
+        return new OFBsnSetIpMaskVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnSetL2TableReply.Builder buildBsnSetL2TableReply() {
+        return new OFBsnSetL2TableReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnSetL2TableRequest.Builder buildBsnSetL2TableRequest() {
+        return new OFBsnSetL2TableRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnSetMirroring.Builder buildBsnSetMirroring() {
+        return new OFBsnSetMirroringVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnSetMirroring bsnSetMirroring(short reportMirrorPorts) {
+        return new OFBsnSetMirroringVer10(
+                nextXid(),
+                      reportMirrorPorts
+                    );
+    }
+
+    public OFBsnSetPktinSuppressionReply.Builder buildBsnSetPktinSuppressionReply() {
+        return new OFBsnSetPktinSuppressionReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnSetPktinSuppressionReply bsnSetPktinSuppressionReply(long status) {
+        return new OFBsnSetPktinSuppressionReplyVer10(
+                nextXid(),
+                      status
+                    );
+    }
+
+    public OFBsnSetPktinSuppressionRequest.Builder buildBsnSetPktinSuppressionRequest() {
+        return new OFBsnSetPktinSuppressionRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnShellCommand.Builder buildBsnShellCommand() {
+        return new OFBsnShellCommandVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnShellOutput.Builder buildBsnShellOutput() {
+        return new OFBsnShellOutputVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnShellOutput bsnShellOutput(byte[] data) {
+        return new OFBsnShellOutputVer10(
+                nextXid(),
+                      data
+                    );
+    }
+
+    public OFBsnShellStatus.Builder buildBsnShellStatus() {
+        return new OFBsnShellStatusVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnShellStatus bsnShellStatus(long status) {
+        return new OFBsnShellStatusVer10(
+                nextXid(),
+                      status
+                    );
+    }
+
+    public OFBsnVirtualPortCreateReply.Builder buildBsnVirtualPortCreateReply() {
+        return new OFBsnVirtualPortCreateReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFBsnVirtualPortCreateRequest.Builder buildBsnVirtualPortCreateRequest() {
+        return new OFBsnVirtualPortCreateRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnVirtualPortCreateRequest bsnVirtualPortCreateRequest(OFBsnVport vport) {
+        return new OFBsnVirtualPortCreateRequestVer10(
+                nextXid(),
+                      vport
+                    );
+    }
+
+    public OFBsnVirtualPortRemoveReply.Builder buildBsnVirtualPortRemoveReply() {
+        return new OFBsnVirtualPortRemoveReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnVirtualPortRemoveReply bsnVirtualPortRemoveReply(long status) {
+        return new OFBsnVirtualPortRemoveReplyVer10(
+                nextXid(),
+                      status
+                    );
+    }
+
+    public OFBsnVirtualPortRemoveRequest.Builder buildBsnVirtualPortRemoveRequest() {
+        return new OFBsnVirtualPortRemoveRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFBsnVirtualPortRemoveRequest bsnVirtualPortRemoveRequest(long vportNo) {
+        return new OFBsnVirtualPortRemoveRequestVer10(
+                nextXid(),
+                      vportNo
+                    );
+    }
+
+    public OFBsnVportL2Gre.Builder buildBsnVportL2Gre() {
+        return new OFBsnVportL2GreVer10.Builder();
+    }
+
+    public OFBsnVportQInQ.Builder buildBsnVportQInQ() {
+        return new OFBsnVportQInQVer10.Builder();
+    }
+
+    public OFDescStatsReply.Builder buildDescStatsReply() {
+        return new OFDescStatsReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFDescStatsRequest.Builder buildDescStatsRequest() {
+        return new OFDescStatsRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFDescStatsRequest descStatsRequest(Set<OFStatsRequestFlags> flags) {
+        return new OFDescStatsRequestVer10(
+                nextXid(),
+                      flags
+                    );
+    }
+
+    public OFEchoReply.Builder buildEchoReply() {
+        return new OFEchoReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFEchoReply echoReply(byte[] data) {
+        return new OFEchoReplyVer10(
+                nextXid(),
+                      data
+                    );
+    }
+
+    public OFEchoRequest.Builder buildEchoRequest() {
+        return new OFEchoRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFEchoRequest echoRequest(byte[] data) {
+        return new OFEchoRequestVer10(
+                nextXid(),
+                      data
+                    );
+    }
+
+    public OFFeaturesReply.Builder buildFeaturesReply() {
+        return new OFFeaturesReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFeaturesRequest.Builder buildFeaturesRequest() {
+        return new OFFeaturesRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFFeaturesRequest featuresRequest() {
+        return new OFFeaturesRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFFlowAdd.Builder buildFlowAdd() {
+        return new OFFlowAddVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowDelete.Builder buildFlowDelete() {
+        return new OFFlowDeleteVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowDeleteStrict.Builder buildFlowDeleteStrict() {
+        return new OFFlowDeleteStrictVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowModify.Builder buildFlowModify() {
+        return new OFFlowModifyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowModifyStrict.Builder buildFlowModifyStrict() {
+        return new OFFlowModifyStrictVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowRemoved.Builder buildFlowRemoved() {
+        return new OFFlowRemovedVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowStatsEntry.Builder buildFlowStatsEntry() {
+        return new OFFlowStatsEntryVer10.Builder();
+    }
+
+    public OFFlowStatsReply.Builder buildFlowStatsReply() {
+        return new OFFlowStatsReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFFlowStatsRequest.Builder buildFlowStatsRequest() {
+        return new OFFlowStatsRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFGetConfigReply.Builder buildGetConfigReply() {
+        return new OFGetConfigReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFGetConfigRequest.Builder buildGetConfigRequest() {
+        return new OFGetConfigRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFGetConfigRequest getConfigRequest() {
+        return new OFGetConfigRequestVer10(
+                nextXid()
+                    );
+    }
+
+    public OFHello.Builder buildHello() {
+        return new OFHelloVer10.Builder().setXid(nextXid());
+    }
+    public OFHello hello(List<OFHelloElem> elements) {
+        return new OFHelloVer10(
+                nextXid()
+                    );
+    }
+
+    public OFMatchV1.Builder buildMatchV1() {
+        return new OFMatchV1Ver10.Builder();
+    }
+    public Match.Builder buildMatch() {
+        return new OFMatchV1Ver10.Builder();
+    }
+
+    final static Match MATCH_WILDCARD_ALL = OFMatchV1Ver10.DEFAULT;
+
+    public Match matchWildcardAll() {
+        return MATCH_WILDCARD_ALL;
+    }
+
+    public OFNiciraControllerRoleReply.Builder buildNiciraControllerRoleReply() {
+        return new OFNiciraControllerRoleReplyVer10.Builder().setXid(nextXid());
+    }
+    public OFNiciraControllerRoleReply niciraControllerRoleReply(OFNiciraControllerRole role) {
+        return new OFNiciraControllerRoleReplyVer10(
+                nextXid(),
+                      role
+                    );
+    }
+
+    public OFNiciraControllerRoleRequest.Builder buildNiciraControllerRoleRequest() {
+        return new OFNiciraControllerRoleRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFNiciraControllerRoleRequest niciraControllerRoleRequest(OFNiciraControllerRole role) {
+        return new OFNiciraControllerRoleRequestVer10(
+                nextXid(),
+                      role
+                    );
+    }
+
+    public OFPacketIn.Builder buildPacketIn() {
+        return new OFPacketInVer10.Builder().setXid(nextXid());
+    }
+
+    public OFPacketOut.Builder buildPacketOut() {
+        return new OFPacketOutVer10.Builder().setXid(nextXid());
+    }
+
+    public OFPacketQueue.Builder buildPacketQueue() {
+        return new OFPacketQueueVer10.Builder();
+    }
+
+    public OFPortDesc.Builder buildPortDesc() {
+        return new OFPortDescVer10.Builder();
+    }
+
+    public OFPortMod.Builder buildPortMod() {
+        return new OFPortModVer10.Builder().setXid(nextXid());
+    }
+
+    public OFPortStatsEntry.Builder buildPortStatsEntry() {
+        return new OFPortStatsEntryVer10.Builder();
+    }
+
+    public OFPortStatsReply.Builder buildPortStatsReply() {
+        return new OFPortStatsReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFPortStatsRequest.Builder buildPortStatsRequest() {
+        return new OFPortStatsRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFPortStatus.Builder buildPortStatus() {
+        return new OFPortStatusVer10.Builder().setXid(nextXid());
+    }
+
+    public OFQueueGetConfigReply.Builder buildQueueGetConfigReply() {
+        return new OFQueueGetConfigReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFQueueGetConfigRequest.Builder buildQueueGetConfigRequest() {
+        return new OFQueueGetConfigRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFQueueGetConfigRequest queueGetConfigRequest(OFPort port) {
+        return new OFQueueGetConfigRequestVer10(
+                nextXid(),
+                      port
+                    );
+    }
+
+    public OFQueueStatsEntry.Builder buildQueueStatsEntry() {
+        return new OFQueueStatsEntryVer10.Builder();
+    }
+
+    public OFQueueStatsReply.Builder buildQueueStatsReply() {
+        return new OFQueueStatsReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFQueueStatsRequest.Builder buildQueueStatsRequest() {
+        return new OFQueueStatsRequestVer10.Builder().setXid(nextXid());
+    }
+
+    public OFSetConfig.Builder buildSetConfig() {
+        return new OFSetConfigVer10.Builder().setXid(nextXid());
+    }
+
+    public OFTableMod.Builder buildTableMod() {
+        throw new UnsupportedOperationException("OFTableMod not supported in version 1.0");
+    }
+
+    public OFTableStatsEntry.Builder buildTableStatsEntry() {
+        return new OFTableStatsEntryVer10.Builder();
+    }
+
+    public OFTableStatsReply.Builder buildTableStatsReply() {
+        return new OFTableStatsReplyVer10.Builder().setXid(nextXid());
+    }
+
+    public OFTableStatsRequest.Builder buildTableStatsRequest() {
+        return new OFTableStatsRequestVer10.Builder().setXid(nextXid());
+    }
+    public OFTableStatsRequest tableStatsRequest(Set<OFStatsRequestFlags> flags) {
+        return new OFTableStatsRequestVer10(
+                nextXid(),
+                      flags
+                    );
+    }
+
+    public OFBucket.Builder buildBucket() {
+        throw new UnsupportedOperationException("OFBucket not supported in version 1.0");
+    }
+
+    public OFBucketCounter.Builder buildBucketCounter() {
+        throw new UnsupportedOperationException("OFBucketCounter not supported in version 1.0");
+    }
+    public OFBucketCounter bucketCounter(U64 packetCount, U64 byteCount) {
+        throw new UnsupportedOperationException("OFBucketCounter not supported in version 1.0");
+    }
+
+    public OFGroupAdd.Builder buildGroupAdd() {
+        throw new UnsupportedOperationException("OFGroupAdd not supported in version 1.0");
+    }
+
+    public OFGroupDelete.Builder buildGroupDelete() {
+        throw new UnsupportedOperationException("OFGroupDelete not supported in version 1.0");
+    }
+
+    public OFGroupDescStatsEntry.Builder buildGroupDescStatsEntry() {
+        throw new UnsupportedOperationException("OFGroupDescStatsEntry not supported in version 1.0");
+    }
+
+    public OFGroupDescStatsReply.Builder buildGroupDescStatsReply() {
+        throw new UnsupportedOperationException("OFGroupDescStatsReply not supported in version 1.0");
+    }
+
+    public OFGroupDescStatsRequest.Builder buildGroupDescStatsRequest() {
+        throw new UnsupportedOperationException("OFGroupDescStatsRequest not supported in version 1.0");
+    }
+    public OFGroupDescStatsRequest groupDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFGroupDescStatsRequest not supported in version 1.0");
+    }
+
+    public OFGroupModify.Builder buildGroupModify() {
+        throw new UnsupportedOperationException("OFGroupModify not supported in version 1.0");
+    }
+
+    public OFGroupStatsEntry.Builder buildGroupStatsEntry() {
+        throw new UnsupportedOperationException("OFGroupStatsEntry not supported in version 1.0");
+    }
+
+    public OFGroupStatsReply.Builder buildGroupStatsReply() {
+        throw new UnsupportedOperationException("OFGroupStatsReply not supported in version 1.0");
+    }
+
+    public OFGroupStatsRequest.Builder buildGroupStatsRequest() {
+        throw new UnsupportedOperationException("OFGroupStatsRequest not supported in version 1.0");
+    }
+
+    public OFMatchV2.Builder buildMatchV2() {
+        throw new UnsupportedOperationException("OFMatchV2 not supported in version 1.0");
+    }
+
+    public OFGroupFeaturesStatsReply.Builder buildGroupFeaturesStatsReply() {
+        throw new UnsupportedOperationException("OFGroupFeaturesStatsReply not supported in version 1.0");
+    }
+
+    public OFGroupFeaturesStatsRequest.Builder buildGroupFeaturesStatsRequest() {
+        throw new UnsupportedOperationException("OFGroupFeaturesStatsRequest not supported in version 1.0");
+    }
+    public OFGroupFeaturesStatsRequest groupFeaturesStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFGroupFeaturesStatsRequest not supported in version 1.0");
+    }
+
+    public OFMatchV3.Builder buildMatchV3() {
+        throw new UnsupportedOperationException("OFMatchV3 not supported in version 1.0");
+    }
+    public OFMatchV3 matchV3(OFOxmList oxmList) {
+        throw new UnsupportedOperationException("OFMatchV3 not supported in version 1.0");
+    }
+
+    public OFRoleReply.Builder buildRoleReply() {
+        throw new UnsupportedOperationException("OFRoleReply not supported in version 1.0");
+    }
+
+    public OFRoleRequest.Builder buildRoleRequest() {
+        throw new UnsupportedOperationException("OFRoleRequest not supported in version 1.0");
+    }
+
+    public OFAsyncGetReply.Builder buildAsyncGetReply() {
+        throw new UnsupportedOperationException("OFAsyncGetReply not supported in version 1.0");
+    }
+
+    public OFAsyncGetRequest.Builder buildAsyncGetRequest() {
+        throw new UnsupportedOperationException("OFAsyncGetRequest not supported in version 1.0");
+    }
+
+    public OFAsyncSet.Builder buildAsyncSet() {
+        throw new UnsupportedOperationException("OFAsyncSet not supported in version 1.0");
+    }
+
+    public OFBsnArpIdle.Builder buildBsnArpIdle() {
+        throw new UnsupportedOperationException("OFBsnArpIdle not supported in version 1.0");
+    }
+
+    public OFBsnControllerConnection.Builder buildBsnControllerConnection() {
+        throw new UnsupportedOperationException("OFBsnControllerConnection not supported in version 1.0");
+    }
+
+    public OFBsnControllerConnectionsReply.Builder buildBsnControllerConnectionsReply() {
+        throw new UnsupportedOperationException("OFBsnControllerConnectionsReply not supported in version 1.0");
+    }
+    public OFBsnControllerConnectionsReply bsnControllerConnectionsReply(List<OFBsnControllerConnection> connections) {
+        throw new UnsupportedOperationException("OFBsnControllerConnectionsReply not supported in version 1.0");
+    }
+
+    public OFBsnControllerConnectionsRequest.Builder buildBsnControllerConnectionsRequest() {
+        throw new UnsupportedOperationException("OFBsnControllerConnectionsRequest not supported in version 1.0");
+    }
+    public OFBsnControllerConnectionsRequest bsnControllerConnectionsRequest() {
+        throw new UnsupportedOperationException("OFBsnControllerConnectionsRequest not supported in version 1.0");
+    }
+
+    public OFBsnDebugCounterDescStatsEntry.Builder buildBsnDebugCounterDescStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnDebugCounterDescStatsReply.Builder buildBsnDebugCounterDescStatsReply() {
+        throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnDebugCounterDescStatsRequest.Builder buildBsnDebugCounterDescStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsRequest not supported in version 1.0");
+    }
+    public OFBsnDebugCounterDescStatsRequest bsnDebugCounterDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnDebugCounterStatsEntry.Builder buildBsnDebugCounterStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnDebugCounterStatsEntry not supported in version 1.0");
+    }
+    public OFBsnDebugCounterStatsEntry bsnDebugCounterStatsEntry(U64 counterId, U64 value) {
+        throw new UnsupportedOperationException("OFBsnDebugCounterStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnDebugCounterStatsReply.Builder buildBsnDebugCounterStatsReply() {
+        throw new UnsupportedOperationException("OFBsnDebugCounterStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnDebugCounterStatsRequest.Builder buildBsnDebugCounterStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnDebugCounterStatsRequest not supported in version 1.0");
+    }
+    public OFBsnDebugCounterStatsRequest bsnDebugCounterStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnDebugCounterStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnFlowChecksumBucketStatsEntry.Builder buildBsnFlowChecksumBucketStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsEntry not supported in version 1.0");
+    }
+    public OFBsnFlowChecksumBucketStatsEntry bsnFlowChecksumBucketStatsEntry(U64 checksum) {
+        throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnFlowChecksumBucketStatsReply.Builder buildBsnFlowChecksumBucketStatsReply() {
+        throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnFlowChecksumBucketStatsRequest.Builder buildBsnFlowChecksumBucketStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnFlowIdle.Builder buildBsnFlowIdle() {
+        throw new UnsupportedOperationException("OFBsnFlowIdle not supported in version 1.0");
+    }
+
+    public OFBsnFlowIdleEnableGetReply.Builder buildBsnFlowIdleEnableGetReply() {
+        throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetReply not supported in version 1.0");
+    }
+    public OFBsnFlowIdleEnableGetReply bsnFlowIdleEnableGetReply(long enabled) {
+        throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetReply not supported in version 1.0");
+    }
+
+    public OFBsnFlowIdleEnableGetRequest.Builder buildBsnFlowIdleEnableGetRequest() {
+        throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetRequest not supported in version 1.0");
+    }
+    public OFBsnFlowIdleEnableGetRequest bsnFlowIdleEnableGetRequest() {
+        throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetRequest not supported in version 1.0");
+    }
+
+    public OFBsnFlowIdleEnableSetReply.Builder buildBsnFlowIdleEnableSetReply() {
+        throw new UnsupportedOperationException("OFBsnFlowIdleEnableSetReply not supported in version 1.0");
+    }
+
+    public OFBsnFlowIdleEnableSetRequest.Builder buildBsnFlowIdleEnableSetRequest() {
+        throw new UnsupportedOperationException("OFBsnFlowIdleEnableSetRequest not supported in version 1.0");
+    }
+    public OFBsnFlowIdleEnableSetRequest bsnFlowIdleEnableSetRequest(long enable) {
+        throw new UnsupportedOperationException("OFBsnFlowIdleEnableSetRequest not supported in version 1.0");
+    }
+
+    public OFBsnGentableBucketStatsEntry.Builder buildBsnGentableBucketStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnGentableBucketStatsEntry not supported in version 1.0");
+    }
+    public OFBsnGentableBucketStatsEntry bsnGentableBucketStatsEntry(U128 checksum) {
+        throw new UnsupportedOperationException("OFBsnGentableBucketStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnGentableBucketStatsReply.Builder buildBsnGentableBucketStatsReply() {
+        throw new UnsupportedOperationException("OFBsnGentableBucketStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnGentableBucketStatsRequest.Builder buildBsnGentableBucketStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnGentableBucketStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnGentableClearReply.Builder buildBsnGentableClearReply() {
+        throw new UnsupportedOperationException("OFBsnGentableClearReply not supported in version 1.0");
+    }
+
+    public OFBsnGentableClearRequest.Builder buildBsnGentableClearRequest() {
+        throw new UnsupportedOperationException("OFBsnGentableClearRequest not supported in version 1.0");
+    }
+
+    public OFBsnGentableDescStatsEntry.Builder buildBsnGentableDescStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnGentableDescStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnGentableDescStatsReply.Builder buildBsnGentableDescStatsReply() {
+        throw new UnsupportedOperationException("OFBsnGentableDescStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnGentableDescStatsRequest.Builder buildBsnGentableDescStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnGentableDescStatsRequest not supported in version 1.0");
+    }
+    public OFBsnGentableDescStatsRequest bsnGentableDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnGentableDescStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryAdd.Builder buildBsnGentableEntryAdd() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryAdd not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryDelete.Builder buildBsnGentableEntryDelete() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryDelete not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryDescStatsEntry.Builder buildBsnGentableEntryDescStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryDescStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryDescStatsReply.Builder buildBsnGentableEntryDescStatsReply() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryDescStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryDescStatsRequest.Builder buildBsnGentableEntryDescStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryDescStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryStatsEntry.Builder buildBsnGentableEntryStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryStatsEntry not supported in version 1.0");
+    }
+    public OFBsnGentableEntryStatsEntry bsnGentableEntryStatsEntry(List<OFBsnTlv> key, List<OFBsnTlv> stats) {
+        throw new UnsupportedOperationException("OFBsnGentableEntryStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryStatsReply.Builder buildBsnGentableEntryStatsReply() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnGentableEntryStatsRequest.Builder buildBsnGentableEntryStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnGentableEntryStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnGentableSetBucketsSize.Builder buildBsnGentableSetBucketsSize() {
+        throw new UnsupportedOperationException("OFBsnGentableSetBucketsSize not supported in version 1.0");
+    }
+
+    public OFBsnGentableStatsEntry.Builder buildBsnGentableStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnGentableStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnGentableStatsReply.Builder buildBsnGentableStatsReply() {
+        throw new UnsupportedOperationException("OFBsnGentableStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnGentableStatsRequest.Builder buildBsnGentableStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnGentableStatsRequest not supported in version 1.0");
+    }
+    public OFBsnGentableStatsRequest bsnGentableStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnGentableStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnGetSwitchPipelineReply.Builder buildBsnGetSwitchPipelineReply() {
+        throw new UnsupportedOperationException("OFBsnGetSwitchPipelineReply not supported in version 1.0");
+    }
+    public OFBsnGetSwitchPipelineReply bsnGetSwitchPipelineReply(String pipeline) {
+        throw new UnsupportedOperationException("OFBsnGetSwitchPipelineReply not supported in version 1.0");
+    }
+
+    public OFBsnGetSwitchPipelineRequest.Builder buildBsnGetSwitchPipelineRequest() {
+        throw new UnsupportedOperationException("OFBsnGetSwitchPipelineRequest not supported in version 1.0");
+    }
+    public OFBsnGetSwitchPipelineRequest bsnGetSwitchPipelineRequest() {
+        throw new UnsupportedOperationException("OFBsnGetSwitchPipelineRequest not supported in version 1.0");
+    }
+
+    public OFBsnImageDescStatsReply.Builder buildBsnImageDescStatsReply() {
+        throw new UnsupportedOperationException("OFBsnImageDescStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnImageDescStatsRequest.Builder buildBsnImageDescStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnImageDescStatsRequest not supported in version 1.0");
+    }
+    public OFBsnImageDescStatsRequest bsnImageDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnImageDescStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnLacpConvergenceNotif.Builder buildBsnLacpConvergenceNotif() {
+        throw new UnsupportedOperationException("OFBsnLacpConvergenceNotif not supported in version 1.0");
+    }
+
+    public OFBsnLacpStatsEntry.Builder buildBsnLacpStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnLacpStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnLacpStatsReply.Builder buildBsnLacpStatsReply() {
+        throw new UnsupportedOperationException("OFBsnLacpStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnLacpStatsRequest.Builder buildBsnLacpStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnLacpStatsRequest not supported in version 1.0");
+    }
+    public OFBsnLacpStatsRequest bsnLacpStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnLacpStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnLog.Builder buildBsnLog() {
+        throw new UnsupportedOperationException("OFBsnLog not supported in version 1.0");
+    }
+
+    public OFBsnPortCounterStatsEntry.Builder buildBsnPortCounterStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnPortCounterStatsEntry not supported in version 1.0");
+    }
+    public OFBsnPortCounterStatsEntry bsnPortCounterStatsEntry(OFPort portNo, List<U64> values) {
+        throw new UnsupportedOperationException("OFBsnPortCounterStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnPortCounterStatsReply.Builder buildBsnPortCounterStatsReply() {
+        throw new UnsupportedOperationException("OFBsnPortCounterStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnPortCounterStatsRequest.Builder buildBsnPortCounterStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnPortCounterStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnRoleStatus.Builder buildBsnRoleStatus() {
+        throw new UnsupportedOperationException("OFBsnRoleStatus not supported in version 1.0");
+    }
+
+    public OFBsnSetAuxCxnsReply.Builder buildBsnSetAuxCxnsReply() {
+        throw new UnsupportedOperationException("OFBsnSetAuxCxnsReply not supported in version 1.0");
+    }
+
+    public OFBsnSetAuxCxnsRequest.Builder buildBsnSetAuxCxnsRequest() {
+        throw new UnsupportedOperationException("OFBsnSetAuxCxnsRequest not supported in version 1.0");
+    }
+    public OFBsnSetAuxCxnsRequest bsnSetAuxCxnsRequest(long numAux) {
+        throw new UnsupportedOperationException("OFBsnSetAuxCxnsRequest not supported in version 1.0");
+    }
+
+    public OFBsnSetLacpReply.Builder buildBsnSetLacpReply() {
+        throw new UnsupportedOperationException("OFBsnSetLacpReply not supported in version 1.0");
+    }
+
+    public OFBsnSetLacpRequest.Builder buildBsnSetLacpRequest() {
+        throw new UnsupportedOperationException("OFBsnSetLacpRequest not supported in version 1.0");
+    }
+
+    public OFBsnSetSwitchPipelineReply.Builder buildBsnSetSwitchPipelineReply() {
+        throw new UnsupportedOperationException("OFBsnSetSwitchPipelineReply not supported in version 1.0");
+    }
+    public OFBsnSetSwitchPipelineReply bsnSetSwitchPipelineReply(long status) {
+        throw new UnsupportedOperationException("OFBsnSetSwitchPipelineReply not supported in version 1.0");
+    }
+
+    public OFBsnSetSwitchPipelineRequest.Builder buildBsnSetSwitchPipelineRequest() {
+        throw new UnsupportedOperationException("OFBsnSetSwitchPipelineRequest not supported in version 1.0");
+    }
+    public OFBsnSetSwitchPipelineRequest bsnSetSwitchPipelineRequest(String pipeline) {
+        throw new UnsupportedOperationException("OFBsnSetSwitchPipelineRequest not supported in version 1.0");
+    }
+
+    public OFBsnSwitchPipelineStatsEntry.Builder buildBsnSwitchPipelineStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsEntry not supported in version 1.0");
+    }
+    public OFBsnSwitchPipelineStatsEntry bsnSwitchPipelineStatsEntry(String pipeline) {
+        throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnSwitchPipelineStatsReply.Builder buildBsnSwitchPipelineStatsReply() {
+        throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnSwitchPipelineStatsRequest.Builder buildBsnSwitchPipelineStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsRequest not supported in version 1.0");
+    }
+    public OFBsnSwitchPipelineStatsRequest bsnSwitchPipelineStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnTableChecksumStatsEntry.Builder buildBsnTableChecksumStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnTableChecksumStatsEntry not supported in version 1.0");
+    }
+    public OFBsnTableChecksumStatsEntry bsnTableChecksumStatsEntry(TableId tableId, U64 checksum) {
+        throw new UnsupportedOperationException("OFBsnTableChecksumStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnTableChecksumStatsReply.Builder buildBsnTableChecksumStatsReply() {
+        throw new UnsupportedOperationException("OFBsnTableChecksumStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnTableChecksumStatsRequest.Builder buildBsnTableChecksumStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnTableChecksumStatsRequest not supported in version 1.0");
+    }
+    public OFBsnTableChecksumStatsRequest bsnTableChecksumStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFBsnTableChecksumStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnTableSetBucketsSize.Builder buildBsnTableSetBucketsSize() {
+        throw new UnsupportedOperationException("OFBsnTableSetBucketsSize not supported in version 1.0");
+    }
+
+    public OFBsnTimeReply.Builder buildBsnTimeReply() {
+        throw new UnsupportedOperationException("OFBsnTimeReply not supported in version 1.0");
+    }
+    public OFBsnTimeReply bsnTimeReply(U64 timeMs) {
+        throw new UnsupportedOperationException("OFBsnTimeReply not supported in version 1.0");
+    }
+
+    public OFBsnTimeRequest.Builder buildBsnTimeRequest() {
+        throw new UnsupportedOperationException("OFBsnTimeRequest not supported in version 1.0");
+    }
+    public OFBsnTimeRequest bsnTimeRequest() {
+        throw new UnsupportedOperationException("OFBsnTimeRequest not supported in version 1.0");
+    }
+
+    public OFBsnVlanCounterStatsEntry.Builder buildBsnVlanCounterStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnVlanCounterStatsEntry not supported in version 1.0");
+    }
+    public OFBsnVlanCounterStatsEntry bsnVlanCounterStatsEntry(int vlanVid, List<U64> values) {
+        throw new UnsupportedOperationException("OFBsnVlanCounterStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnVlanCounterStatsReply.Builder buildBsnVlanCounterStatsReply() {
+        throw new UnsupportedOperationException("OFBsnVlanCounterStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnVlanCounterStatsRequest.Builder buildBsnVlanCounterStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnVlanCounterStatsRequest not supported in version 1.0");
+    }
+
+    public OFBsnVrfCounterStatsEntry.Builder buildBsnVrfCounterStatsEntry() {
+        throw new UnsupportedOperationException("OFBsnVrfCounterStatsEntry not supported in version 1.0");
+    }
+    public OFBsnVrfCounterStatsEntry bsnVrfCounterStatsEntry(long vrf, List<U64> values) {
+        throw new UnsupportedOperationException("OFBsnVrfCounterStatsEntry not supported in version 1.0");
+    }
+
+    public OFBsnVrfCounterStatsReply.Builder buildBsnVrfCounterStatsReply() {
+        throw new UnsupportedOperationException("OFBsnVrfCounterStatsReply not supported in version 1.0");
+    }
+
+    public OFBsnVrfCounterStatsRequest.Builder buildBsnVrfCounterStatsRequest() {
+        throw new UnsupportedOperationException("OFBsnVrfCounterStatsRequest not supported in version 1.0");
+    }
+
+    public OFHelloElemVersionbitmap.Builder buildHelloElemVersionbitmap() {
+        throw new UnsupportedOperationException("OFHelloElemVersionbitmap not supported in version 1.0");
+    }
+    public OFHelloElemVersionbitmap helloElemVersionbitmap(List<U32> bitmaps) {
+        throw new UnsupportedOperationException("OFHelloElemVersionbitmap not supported in version 1.0");
+    }
+
+    public OFMeterBandStats.Builder buildMeterBandStats() {
+        throw new UnsupportedOperationException("OFMeterBandStats not supported in version 1.0");
+    }
+    public OFMeterBandStats meterBandStats(U64 packetBandCount, U64 byteBandCount) {
+        throw new UnsupportedOperationException("OFMeterBandStats not supported in version 1.0");
+    }
+
+    public OFMeterConfig.Builder buildMeterConfig() {
+        throw new UnsupportedOperationException("OFMeterConfig not supported in version 1.0");
+    }
+
+    public OFMeterConfigStatsReply.Builder buildMeterConfigStatsReply() {
+        throw new UnsupportedOperationException("OFMeterConfigStatsReply not supported in version 1.0");
+    }
+
+    public OFMeterConfigStatsRequest.Builder buildMeterConfigStatsRequest() {
+        throw new UnsupportedOperationException("OFMeterConfigStatsRequest not supported in version 1.0");
+    }
+
+    public OFMeterFeatures.Builder buildMeterFeatures() {
+        throw new UnsupportedOperationException("OFMeterFeatures not supported in version 1.0");
+    }
+
+    public OFMeterFeaturesStatsReply.Builder buildMeterFeaturesStatsReply() {
+        throw new UnsupportedOperationException("OFMeterFeaturesStatsReply not supported in version 1.0");
+    }
+
+    public OFMeterFeaturesStatsRequest.Builder buildMeterFeaturesStatsRequest() {
+        throw new UnsupportedOperationException("OFMeterFeaturesStatsRequest not supported in version 1.0");
+    }
+    public OFMeterFeaturesStatsRequest meterFeaturesStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFMeterFeaturesStatsRequest not supported in version 1.0");
+    }
+
+    public OFMeterMod.Builder buildMeterMod() {
+        throw new UnsupportedOperationException("OFMeterMod not supported in version 1.0");
+    }
+
+    public OFMeterStats.Builder buildMeterStats() {
+        throw new UnsupportedOperationException("OFMeterStats not supported in version 1.0");
+    }
+
+    public OFMeterStatsReply.Builder buildMeterStatsReply() {
+        throw new UnsupportedOperationException("OFMeterStatsReply not supported in version 1.0");
+    }
+
+    public OFMeterStatsRequest.Builder buildMeterStatsRequest() {
+        throw new UnsupportedOperationException("OFMeterStatsRequest not supported in version 1.0");
+    }
+
+    public OFPortDescStatsReply.Builder buildPortDescStatsReply() {
+        throw new UnsupportedOperationException("OFPortDescStatsReply not supported in version 1.0");
+    }
+
+    public OFPortDescStatsRequest.Builder buildPortDescStatsRequest() {
+        throw new UnsupportedOperationException("OFPortDescStatsRequest not supported in version 1.0");
+    }
+    public OFPortDescStatsRequest portDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+        throw new UnsupportedOperationException("OFPortDescStatsRequest not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropApplyActions.Builder buildTableFeaturePropApplyActions() {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplyActions not supported in version 1.0");
+    }
+    public OFTableFeaturePropApplyActions tableFeaturePropApplyActions(List<OFActionId> actionIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplyActions not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropApplyActionsMiss.Builder buildTableFeaturePropApplyActionsMiss() {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplyActionsMiss not supported in version 1.0");
+    }
+    public OFTableFeaturePropApplyActionsMiss tableFeaturePropApplyActionsMiss(List<OFActionId> actionIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplyActionsMiss not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropApplySetfield.Builder buildTableFeaturePropApplySetfield() {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplySetfield not supported in version 1.0");
+    }
+    public OFTableFeaturePropApplySetfield tableFeaturePropApplySetfield(List<U32> oxmIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplySetfield not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropApplySetfieldMiss.Builder buildTableFeaturePropApplySetfieldMiss() {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplySetfieldMiss not supported in version 1.0");
+    }
+    public OFTableFeaturePropApplySetfieldMiss tableFeaturePropApplySetfieldMiss(List<U32> oxmIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropApplySetfieldMiss not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropExperimenter.Builder buildTableFeaturePropExperimenter() {
+        throw new UnsupportedOperationException("OFTableFeaturePropExperimenter not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropExperimenterMiss.Builder buildTableFeaturePropExperimenterMiss() {
+        throw new UnsupportedOperationException("OFTableFeaturePropExperimenterMiss not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropInstructions.Builder buildTableFeaturePropInstructions() {
+        throw new UnsupportedOperationException("OFTableFeaturePropInstructions not supported in version 1.0");
+    }
+    public OFTableFeaturePropInstructions tableFeaturePropInstructions(List<OFInstructionId> instructionIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropInstructions not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropInstructionsMiss.Builder buildTableFeaturePropInstructionsMiss() {
+        throw new UnsupportedOperationException("OFTableFeaturePropInstructionsMiss not supported in version 1.0");
+    }
+    public OFTableFeaturePropInstructionsMiss tableFeaturePropInstructionsMiss(List<OFInstructionId> instructionIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropInstructionsMiss not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropMatch.Builder buildTableFeaturePropMatch() {
+        throw new UnsupportedOperationException("OFTableFeaturePropMatch not supported in version 1.0");
+    }
+    public OFTableFeaturePropMatch tableFeaturePropMatch(List<U32> oxmIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropMatch not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropNextTables.Builder buildTableFeaturePropNextTables() {
+        throw new UnsupportedOperationException("OFTableFeaturePropNextTables not supported in version 1.0");
+    }
+    public OFTableFeaturePropNextTables tableFeaturePropNextTables(List<U8> nextTableIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropNextTables not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropNextTablesMiss.Builder buildTableFeaturePropNextTablesMiss() {
+        throw new UnsupportedOperationException("OFTableFeaturePropNextTablesMiss not supported in version 1.0");
+    }
+    public OFTableFeaturePropNextTablesMiss tableFeaturePropNextTablesMiss(List<U8> nextTableIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropNextTablesMiss not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropWildcards.Builder buildTableFeaturePropWildcards() {
+        throw new UnsupportedOperationException("OFTableFeaturePropWildcards not supported in version 1.0");
+    }
+    public OFTableFeaturePropWildcards tableFeaturePropWildcards(List<U32> oxmIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropWildcards not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropWriteActions.Builder buildTableFeaturePropWriteActions() {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteActions not supported in version 1.0");
+    }
+    public OFTableFeaturePropWriteActions tableFeaturePropWriteActions(List<OFActionId> actionIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteActions not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropWriteActionsMiss.Builder buildTableFeaturePropWriteActionsMiss() {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteActionsMiss not supported in version 1.0");
+    }
+    public OFTableFeaturePropWriteActionsMiss tableFeaturePropWriteActionsMiss(List<OFActionId> actionIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteActionsMiss not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropWriteSetfield.Builder buildTableFeaturePropWriteSetfield() {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfield not supported in version 1.0");
+    }
+    public OFTableFeaturePropWriteSetfield tableFeaturePropWriteSetfield(List<U32> oxmIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfield not supported in version 1.0");
+    }
+
+    public OFTableFeaturePropWriteSetfieldMiss.Builder buildTableFeaturePropWriteSetfieldMiss() {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfieldMiss not supported in version 1.0");
+    }
+    public OFTableFeaturePropWriteSetfieldMiss tableFeaturePropWriteSetfieldMiss(List<U32> oxmIds) {
+        throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfieldMiss not supported in version 1.0");
+    }
+
+    public OFTableFeatures.Builder buildTableFeatures() {
+        throw new UnsupportedOperationException("OFTableFeatures not supported in version 1.0");
+    }
+
+    public OFTableFeaturesStatsReply.Builder buildTableFeaturesStatsReply() {
+        throw new UnsupportedOperationException("OFTableFeaturesStatsReply not supported in version 1.0");
+    }
+
+    public OFTableFeaturesStatsRequest.Builder buildTableFeaturesStatsRequest() {
+        throw new UnsupportedOperationException("OFTableFeaturesStatsRequest not supported in version 1.0");
+    }
+
+    public OFUint64.Builder buildUint64() {
+        throw new UnsupportedOperationException("OFUint64 not supported in version 1.0");
+    }
+    public OFUint64 uint64(U64 value) {
+        throw new UnsupportedOperationException("OFUint64 not supported in version 1.0");
+    }
+
+    public OFMessageReader<OFMessage> getReader() {
+        return OFMessageVer10.READER;
+    }
+
+    public long nextXid() {
+        return xidGenerator.nextXid();
+    }
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_10;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesReplyVer10.java
new file mode 100644
index 0000000..2c0d797
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesReplyVer10.java
@@ -0,0 +1,637 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFeaturesReplyVer10 implements OFFeaturesReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFFeaturesReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 32;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static DatapathId DEFAULT_DATAPATH_ID = DatapathId.NONE;
+        private final static long DEFAULT_N_BUFFERS = 0x0L;
+        private final static short DEFAULT_N_TABLES = (short) 0x0;
+        private final static Set<OFCapabilities> DEFAULT_CAPABILITIES = ImmutableSet.<OFCapabilities>of();
+        private final static Set<OFActionType> DEFAULT_ACTIONS = ImmutableSet.<OFActionType>of();
+        private final static List<OFPortDesc> DEFAULT_PORTS = ImmutableList.<OFPortDesc>of();
+
+    // OF message fields
+    private final long xid;
+    private final DatapathId datapathId;
+    private final long nBuffers;
+    private final short nTables;
+    private final Set<OFCapabilities> capabilities;
+    private final Set<OFActionType> actions;
+    private final List<OFPortDesc> ports;
+//
+    // Immutable default instance
+    final static OFFeaturesReplyVer10 DEFAULT = new OFFeaturesReplyVer10(
+        DEFAULT_XID, DEFAULT_DATAPATH_ID, DEFAULT_N_BUFFERS, DEFAULT_N_TABLES, DEFAULT_CAPABILITIES, DEFAULT_ACTIONS, DEFAULT_PORTS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFeaturesReplyVer10(long xid, DatapathId datapathId, long nBuffers, short nTables, Set<OFCapabilities> capabilities, Set<OFActionType> actions, List<OFPortDesc> ports) {
+        this.xid = xid;
+        this.datapathId = datapathId;
+        this.nBuffers = nBuffers;
+        this.nTables = nTables;
+        this.capabilities = capabilities;
+        this.actions = actions;
+        this.ports = ports;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FEATURES_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public DatapathId getDatapathId() {
+        return datapathId;
+    }
+
+    @Override
+    public long getNBuffers() {
+        return nBuffers;
+    }
+
+    @Override
+    public short getNTables() {
+        return nTables;
+    }
+
+    @Override
+    public Set<OFCapabilities> getCapabilities() {
+        return capabilities;
+    }
+
+    @Override
+    public long getReserved()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+    }
+
+    @Override
+    public List<OFPortDesc> getPorts() {
+        return ports;
+    }
+
+    @Override
+    public Set<OFActionType> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFAuxId getAuxiliaryId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+    }
+
+
+
+    public OFFeaturesReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFeaturesReply.Builder {
+        final OFFeaturesReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean datapathIdSet;
+        private DatapathId datapathId;
+        private boolean nBuffersSet;
+        private long nBuffers;
+        private boolean nTablesSet;
+        private short nTables;
+        private boolean capabilitiesSet;
+        private Set<OFCapabilities> capabilities;
+        private boolean actionsSet;
+        private Set<OFActionType> actions;
+        private boolean portsSet;
+        private List<OFPortDesc> ports;
+
+        BuilderWithParent(OFFeaturesReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FEATURES_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public DatapathId getDatapathId() {
+        return datapathId;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setDatapathId(DatapathId datapathId) {
+        this.datapathId = datapathId;
+        this.datapathIdSet = true;
+        return this;
+    }
+    @Override
+    public long getNBuffers() {
+        return nBuffers;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setNBuffers(long nBuffers) {
+        this.nBuffers = nBuffers;
+        this.nBuffersSet = true;
+        return this;
+    }
+    @Override
+    public short getNTables() {
+        return nTables;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setNTables(short nTables) {
+        this.nTables = nTables;
+        this.nTablesSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFCapabilities> getCapabilities() {
+        return capabilities;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setCapabilities(Set<OFCapabilities> capabilities) {
+        this.capabilities = capabilities;
+        this.capabilitiesSet = true;
+        return this;
+    }
+    @Override
+    public long getReserved()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setReserved(long reserved) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+    }
+    @Override
+    public List<OFPortDesc> getPorts() {
+        return ports;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setPorts(List<OFPortDesc> ports) {
+        this.ports = ports;
+        this.portsSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFActionType> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setActions(Set<OFActionType> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+    @Override
+    public OFAuxId getAuxiliaryId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setAuxiliaryId(OFAuxId auxiliaryId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+    }
+
+
+        @Override
+        public OFFeaturesReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                DatapathId datapathId = this.datapathIdSet ? this.datapathId : parentMessage.datapathId;
+                if(datapathId == null)
+                    throw new NullPointerException("Property datapathId must not be null");
+                long nBuffers = this.nBuffersSet ? this.nBuffers : parentMessage.nBuffers;
+                short nTables = this.nTablesSet ? this.nTables : parentMessage.nTables;
+                Set<OFCapabilities> capabilities = this.capabilitiesSet ? this.capabilities : parentMessage.capabilities;
+                if(capabilities == null)
+                    throw new NullPointerException("Property capabilities must not be null");
+                Set<OFActionType> actions = this.actionsSet ? this.actions : parentMessage.actions;
+                if(actions == null)
+                    throw new NullPointerException("Property actions must not be null");
+                List<OFPortDesc> ports = this.portsSet ? this.ports : parentMessage.ports;
+                if(ports == null)
+                    throw new NullPointerException("Property ports must not be null");
+
+                //
+                return new OFFeaturesReplyVer10(
+                    xid,
+                    datapathId,
+                    nBuffers,
+                    nTables,
+                    capabilities,
+                    actions,
+                    ports
+                );
+        }
+
+    }
+
+    static class Builder implements OFFeaturesReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean datapathIdSet;
+        private DatapathId datapathId;
+        private boolean nBuffersSet;
+        private long nBuffers;
+        private boolean nTablesSet;
+        private short nTables;
+        private boolean capabilitiesSet;
+        private Set<OFCapabilities> capabilities;
+        private boolean actionsSet;
+        private Set<OFActionType> actions;
+        private boolean portsSet;
+        private List<OFPortDesc> ports;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FEATURES_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public DatapathId getDatapathId() {
+        return datapathId;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setDatapathId(DatapathId datapathId) {
+        this.datapathId = datapathId;
+        this.datapathIdSet = true;
+        return this;
+    }
+    @Override
+    public long getNBuffers() {
+        return nBuffers;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setNBuffers(long nBuffers) {
+        this.nBuffers = nBuffers;
+        this.nBuffersSet = true;
+        return this;
+    }
+    @Override
+    public short getNTables() {
+        return nTables;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setNTables(short nTables) {
+        this.nTables = nTables;
+        this.nTablesSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFCapabilities> getCapabilities() {
+        return capabilities;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setCapabilities(Set<OFCapabilities> capabilities) {
+        this.capabilities = capabilities;
+        this.capabilitiesSet = true;
+        return this;
+    }
+    @Override
+    public long getReserved()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setReserved(long reserved) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+    }
+    @Override
+    public List<OFPortDesc> getPorts() {
+        return ports;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setPorts(List<OFPortDesc> ports) {
+        this.ports = ports;
+        this.portsSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFActionType> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setActions(Set<OFActionType> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+    @Override
+    public OFAuxId getAuxiliaryId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFeaturesReply.Builder setAuxiliaryId(OFAuxId auxiliaryId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+    }
+//
+        @Override
+        public OFFeaturesReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            DatapathId datapathId = this.datapathIdSet ? this.datapathId : DEFAULT_DATAPATH_ID;
+            if(datapathId == null)
+                throw new NullPointerException("Property datapathId must not be null");
+            long nBuffers = this.nBuffersSet ? this.nBuffers : DEFAULT_N_BUFFERS;
+            short nTables = this.nTablesSet ? this.nTables : DEFAULT_N_TABLES;
+            Set<OFCapabilities> capabilities = this.capabilitiesSet ? this.capabilities : DEFAULT_CAPABILITIES;
+            if(capabilities == null)
+                throw new NullPointerException("Property capabilities must not be null");
+            Set<OFActionType> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+            if(actions == null)
+                throw new NullPointerException("Property actions must not be null");
+            List<OFPortDesc> ports = this.portsSet ? this.ports : DEFAULT_PORTS;
+            if(ports == null)
+                throw new NullPointerException("Property ports must not be null");
+
+
+            return new OFFeaturesReplyVer10(
+                    xid,
+                    datapathId,
+                    nBuffers,
+                    nTables,
+                    capabilities,
+                    actions,
+                    ports
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFeaturesReply> {
+        @Override
+        public OFFeaturesReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 6
+            byte type = bb.readByte();
+            if(type != (byte) 0x6)
+                throw new OFParseError("Wrong type: Expected=OFType.FEATURES_REPLY(6), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            DatapathId datapathId = DatapathId.of(bb.readLong());
+            long nBuffers = U32.f(bb.readInt());
+            short nTables = U8.f(bb.readByte());
+            // pad: 3 bytes
+            bb.skipBytes(3);
+            Set<OFCapabilities> capabilities = OFCapabilitiesSerializerVer10.readFrom(bb);
+            Set<OFActionType> actions = ChannelUtilsVer10.readSupportedActions(bb);
+            List<OFPortDesc> ports = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFPortDescVer10.READER);
+
+            OFFeaturesReplyVer10 featuresReplyVer10 = new OFFeaturesReplyVer10(
+                    xid,
+                      datapathId,
+                      nBuffers,
+                      nTables,
+                      capabilities,
+                      actions,
+                      ports
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", featuresReplyVer10);
+            return featuresReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFeaturesReplyVer10Funnel FUNNEL = new OFFeaturesReplyVer10Funnel();
+    static class OFFeaturesReplyVer10Funnel implements Funnel<OFFeaturesReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFeaturesReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 6
+            sink.putByte((byte) 0x6);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            message.datapathId.putTo(sink);
+            sink.putLong(message.nBuffers);
+            sink.putShort(message.nTables);
+            // skip pad (3 bytes)
+            OFCapabilitiesSerializerVer10.putTo(message.capabilities, sink);
+            ChannelUtilsVer10.putSupportedActionsTo(message.actions, sink);
+            FunnelUtils.putList(message.ports, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFeaturesReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFeaturesReplyVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 6
+            bb.writeByte((byte) 0x6);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            bb.writeLong(message.datapathId.getLong());
+            bb.writeInt(U32.t(message.nBuffers));
+            bb.writeByte(U8.t(message.nTables));
+            // pad: 3 bytes
+            bb.writeZero(3);
+            OFCapabilitiesSerializerVer10.writeTo(bb, message.capabilities);
+            ChannelUtilsVer10.writeSupportedActions(bb, message.actions);
+            ChannelUtils.writeList(bb, message.ports);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFeaturesReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("datapathId=").append(datapathId);
+        b.append(", ");
+        b.append("nBuffers=").append(nBuffers);
+        b.append(", ");
+        b.append("nTables=").append(nTables);
+        b.append(", ");
+        b.append("capabilities=").append(capabilities);
+        b.append(", ");
+        b.append("actions=").append(actions);
+        b.append(", ");
+        b.append("ports=").append(ports);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFeaturesReplyVer10 other = (OFFeaturesReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (datapathId == null) {
+            if (other.datapathId != null)
+                return false;
+        } else if (!datapathId.equals(other.datapathId))
+            return false;
+        if( nBuffers != other.nBuffers)
+            return false;
+        if( nTables != other.nTables)
+            return false;
+        if (capabilities == null) {
+            if (other.capabilities != null)
+                return false;
+        } else if (!capabilities.equals(other.capabilities))
+            return false;
+        if (actions == null) {
+            if (other.actions != null)
+                return false;
+        } else if (!actions.equals(other.actions))
+            return false;
+        if (ports == null) {
+            if (other.ports != null)
+                return false;
+        } else if (!ports.equals(other.ports))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((datapathId == null) ? 0 : datapathId.hashCode());
+        result = prime *  (int) (nBuffers ^ (nBuffers >>> 32));
+        result = prime * result + nTables;
+        result = prime * result + ((capabilities == null) ? 0 : capabilities.hashCode());
+        result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+        result = prime * result + ((ports == null) ? 0 : ports.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesRequestVer10.java
new file mode 100644
index 0000000..284e1e9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesRequestVer10.java
@@ -0,0 +1,268 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFeaturesRequestVer10 implements OFFeaturesRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFFeaturesRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFFeaturesRequestVer10 DEFAULT = new OFFeaturesRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFeaturesRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FEATURES_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+
+
+    public OFFeaturesRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFeaturesRequest.Builder {
+        final OFFeaturesRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFFeaturesRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FEATURES_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFeaturesRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFeaturesRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFFeaturesRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFFeaturesRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FEATURES_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFeaturesRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFeaturesRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFFeaturesRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFeaturesRequest> {
+        @Override
+        public OFFeaturesRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 5
+            byte type = bb.readByte();
+            if(type != (byte) 0x5)
+                throw new OFParseError("Wrong type: Expected=OFType.FEATURES_REQUEST(5), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+
+            OFFeaturesRequestVer10 featuresRequestVer10 = new OFFeaturesRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", featuresRequestVer10);
+            return featuresRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFeaturesRequestVer10Funnel FUNNEL = new OFFeaturesRequestVer10Funnel();
+    static class OFFeaturesRequestVer10Funnel implements Funnel<OFFeaturesRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFeaturesRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 5
+            sink.putByte((byte) 0x5);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            sink.putLong(message.xid);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFeaturesRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFeaturesRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 5
+            bb.writeByte((byte) 0x5);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            bb.writeInt(U32.t(message.xid));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFeaturesRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFeaturesRequestVer10 other = (OFFeaturesRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowAddVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowAddVer10.java
new file mode 100644
index 0000000..e7ef2c9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowAddVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowAddVer10 implements OFFlowAdd {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowAddVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 72;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+        private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+        private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+        private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+    // OF message fields
+    private final long xid;
+    private final Match match;
+    private final U64 cookie;
+    private final int idleTimeout;
+    private final int hardTimeout;
+    private final int priority;
+    private final OFBufferId bufferId;
+    private final OFPort outPort;
+    private final Set<OFFlowModFlags> flags;
+    private final List<OFAction> actions;
+//
+    // Immutable default instance
+    final static OFFlowAddVer10 DEFAULT = new OFFlowAddVer10(
+        DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowAddVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+        this.xid = xid;
+        this.match = match;
+        this.cookie = cookie;
+        this.idleTimeout = idleTimeout;
+        this.hardTimeout = hardTimeout;
+        this.priority = priority;
+        this.bufferId = bufferId;
+        this.outPort = outPort;
+        this.flags = flags;
+        this.actions = actions;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.ADD;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+
+
+    public OFFlowAdd.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowAdd.Builder {
+        final OFFlowAddVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+        BuilderWithParent(OFFlowAddVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.ADD;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowAdd build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+                if(bufferId == null)
+                    throw new NullPointerException("Property bufferId must not be null");
+                OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+                if(outPort == null)
+                    throw new NullPointerException("Property outPort must not be null");
+                Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+                if(actions == null)
+                    throw new NullPointerException("Property actions must not be null");
+
+                //
+                return new OFFlowAddVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowAdd.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.ADD;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowAdd.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowAdd.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowAdd build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+            if(bufferId == null)
+                throw new NullPointerException("Property bufferId must not be null");
+            OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+            if(outPort == null)
+                throw new NullPointerException("Property outPort must not be null");
+            Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+            if(actions == null)
+                throw new NullPointerException("Property actions must not be null");
+
+
+            return new OFFlowAddVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowAdd> {
+        @Override
+        public OFFlowAdd readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 14
+            byte type = bb.readByte();
+            if(type != (byte) 0xe)
+                throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            U64 cookie = U64.ofRaw(bb.readLong());
+            // fixed value property command == 0
+            short command = bb.readShort();
+            if(command != (short) 0x0)
+                throw new OFParseError("Wrong command: Expected=OFFlowModCommand.ADD(0), got="+command);
+            int idleTimeout = U16.f(bb.readShort());
+            int hardTimeout = U16.f(bb.readShort());
+            int priority = U16.f(bb.readShort());
+            OFBufferId bufferId = OFBufferId.of(bb.readInt());
+            OFPort outPort = OFPort.read2Bytes(bb);
+            Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+            List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+            OFFlowAddVer10 flowAddVer10 = new OFFlowAddVer10(
+                    xid,
+                      match,
+                      cookie,
+                      idleTimeout,
+                      hardTimeout,
+                      priority,
+                      bufferId,
+                      outPort,
+                      flags,
+                      actions
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowAddVer10);
+            return flowAddVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowAddVer10Funnel FUNNEL = new OFFlowAddVer10Funnel();
+    static class OFFlowAddVer10Funnel implements Funnel<OFFlowAddVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowAddVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 14
+            sink.putByte((byte) 0xe);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            message.match.putTo(sink);
+            message.cookie.putTo(sink);
+            // fixed value property command = 0
+            sink.putShort((short) 0x0);
+            sink.putInt(message.idleTimeout);
+            sink.putInt(message.hardTimeout);
+            sink.putInt(message.priority);
+            message.bufferId.putTo(sink);
+            message.outPort.putTo(sink);
+            OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+            FunnelUtils.putList(message.actions, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowAddVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowAddVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 14
+            bb.writeByte((byte) 0xe);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            message.match.writeTo(bb);
+            bb.writeLong(message.cookie.getValue());
+            // fixed value property command = 0
+            bb.writeShort((short) 0x0);
+            bb.writeShort(U16.t(message.idleTimeout));
+            bb.writeShort(U16.t(message.hardTimeout));
+            bb.writeShort(U16.t(message.priority));
+            bb.writeInt(message.bufferId.getInt());
+            message.outPort.write2Bytes(bb);
+            OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+            ChannelUtils.writeList(bb, message.actions);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowAddVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("hardTimeout=").append(hardTimeout);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("bufferId=").append(bufferId);
+        b.append(", ");
+        b.append("outPort=").append(outPort);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("actions=").append(actions);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowAddVer10 other = (OFFlowAddVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if( hardTimeout != other.hardTimeout)
+            return false;
+        if( priority != other.priority)
+            return false;
+        if (bufferId == null) {
+            if (other.bufferId != null)
+                return false;
+        } else if (!bufferId.equals(other.bufferId))
+            return false;
+        if (outPort == null) {
+            if (other.outPort != null)
+                return false;
+        } else if (!outPort.equals(other.outPort))
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (actions == null) {
+            if (other.actions != null)
+                return false;
+        } else if (!actions.equals(other.actions))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        result = prime * result + idleTimeout;
+        result = prime * result + hardTimeout;
+        result = prime * result + priority;
+        result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+        result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteStrictVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteStrictVer10.java
new file mode 100644
index 0000000..95a76c5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteStrictVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowDeleteStrictVer10 implements OFFlowDeleteStrict {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowDeleteStrictVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 72;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+        private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+        private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+        private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+    // OF message fields
+    private final long xid;
+    private final Match match;
+    private final U64 cookie;
+    private final int idleTimeout;
+    private final int hardTimeout;
+    private final int priority;
+    private final OFBufferId bufferId;
+    private final OFPort outPort;
+    private final Set<OFFlowModFlags> flags;
+    private final List<OFAction> actions;
+//
+    // Immutable default instance
+    final static OFFlowDeleteStrictVer10 DEFAULT = new OFFlowDeleteStrictVer10(
+        DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowDeleteStrictVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+        this.xid = xid;
+        this.match = match;
+        this.cookie = cookie;
+        this.idleTimeout = idleTimeout;
+        this.hardTimeout = hardTimeout;
+        this.priority = priority;
+        this.bufferId = bufferId;
+        this.outPort = outPort;
+        this.flags = flags;
+        this.actions = actions;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.DELETE_STRICT;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+
+
+    public OFFlowDeleteStrict.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowDeleteStrict.Builder {
+        final OFFlowDeleteStrictVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+        BuilderWithParent(OFFlowDeleteStrictVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.DELETE_STRICT;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowDeleteStrict build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+                if(bufferId == null)
+                    throw new NullPointerException("Property bufferId must not be null");
+                OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+                if(outPort == null)
+                    throw new NullPointerException("Property outPort must not be null");
+                Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+                if(actions == null)
+                    throw new NullPointerException("Property actions must not be null");
+
+                //
+                return new OFFlowDeleteStrictVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowDeleteStrict.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.DELETE_STRICT;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowDeleteStrict.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowDeleteStrict build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+            if(bufferId == null)
+                throw new NullPointerException("Property bufferId must not be null");
+            OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+            if(outPort == null)
+                throw new NullPointerException("Property outPort must not be null");
+            Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+            if(actions == null)
+                throw new NullPointerException("Property actions must not be null");
+
+
+            return new OFFlowDeleteStrictVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowDeleteStrict> {
+        @Override
+        public OFFlowDeleteStrict readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 14
+            byte type = bb.readByte();
+            if(type != (byte) 0xe)
+                throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            U64 cookie = U64.ofRaw(bb.readLong());
+            // fixed value property command == 4
+            short command = bb.readShort();
+            if(command != (short) 0x4)
+                throw new OFParseError("Wrong command: Expected=OFFlowModCommand.DELETE_STRICT(4), got="+command);
+            int idleTimeout = U16.f(bb.readShort());
+            int hardTimeout = U16.f(bb.readShort());
+            int priority = U16.f(bb.readShort());
+            OFBufferId bufferId = OFBufferId.of(bb.readInt());
+            OFPort outPort = OFPort.read2Bytes(bb);
+            Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+            List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+            OFFlowDeleteStrictVer10 flowDeleteStrictVer10 = new OFFlowDeleteStrictVer10(
+                    xid,
+                      match,
+                      cookie,
+                      idleTimeout,
+                      hardTimeout,
+                      priority,
+                      bufferId,
+                      outPort,
+                      flags,
+                      actions
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowDeleteStrictVer10);
+            return flowDeleteStrictVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowDeleteStrictVer10Funnel FUNNEL = new OFFlowDeleteStrictVer10Funnel();
+    static class OFFlowDeleteStrictVer10Funnel implements Funnel<OFFlowDeleteStrictVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowDeleteStrictVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 14
+            sink.putByte((byte) 0xe);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            message.match.putTo(sink);
+            message.cookie.putTo(sink);
+            // fixed value property command = 4
+            sink.putShort((short) 0x4);
+            sink.putInt(message.idleTimeout);
+            sink.putInt(message.hardTimeout);
+            sink.putInt(message.priority);
+            message.bufferId.putTo(sink);
+            message.outPort.putTo(sink);
+            OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+            FunnelUtils.putList(message.actions, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowDeleteStrictVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowDeleteStrictVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 14
+            bb.writeByte((byte) 0xe);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            message.match.writeTo(bb);
+            bb.writeLong(message.cookie.getValue());
+            // fixed value property command = 4
+            bb.writeShort((short) 0x4);
+            bb.writeShort(U16.t(message.idleTimeout));
+            bb.writeShort(U16.t(message.hardTimeout));
+            bb.writeShort(U16.t(message.priority));
+            bb.writeInt(message.bufferId.getInt());
+            message.outPort.write2Bytes(bb);
+            OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+            ChannelUtils.writeList(bb, message.actions);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowDeleteStrictVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("hardTimeout=").append(hardTimeout);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("bufferId=").append(bufferId);
+        b.append(", ");
+        b.append("outPort=").append(outPort);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("actions=").append(actions);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowDeleteStrictVer10 other = (OFFlowDeleteStrictVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if( hardTimeout != other.hardTimeout)
+            return false;
+        if( priority != other.priority)
+            return false;
+        if (bufferId == null) {
+            if (other.bufferId != null)
+                return false;
+        } else if (!bufferId.equals(other.bufferId))
+            return false;
+        if (outPort == null) {
+            if (other.outPort != null)
+                return false;
+        } else if (!outPort.equals(other.outPort))
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (actions == null) {
+            if (other.actions != null)
+                return false;
+        } else if (!actions.equals(other.actions))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        result = prime * result + idleTimeout;
+        result = prime * result + hardTimeout;
+        result = prime * result + priority;
+        result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+        result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteVer10.java
new file mode 100644
index 0000000..0be8dd8
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowDeleteVer10 implements OFFlowDelete {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowDeleteVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 72;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+        private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+        private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+        private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+    // OF message fields
+    private final long xid;
+    private final Match match;
+    private final U64 cookie;
+    private final int idleTimeout;
+    private final int hardTimeout;
+    private final int priority;
+    private final OFBufferId bufferId;
+    private final OFPort outPort;
+    private final Set<OFFlowModFlags> flags;
+    private final List<OFAction> actions;
+//
+    // Immutable default instance
+    final static OFFlowDeleteVer10 DEFAULT = new OFFlowDeleteVer10(
+        DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowDeleteVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+        this.xid = xid;
+        this.match = match;
+        this.cookie = cookie;
+        this.idleTimeout = idleTimeout;
+        this.hardTimeout = hardTimeout;
+        this.priority = priority;
+        this.bufferId = bufferId;
+        this.outPort = outPort;
+        this.flags = flags;
+        this.actions = actions;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.DELETE;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+
+
+    public OFFlowDelete.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowDelete.Builder {
+        final OFFlowDeleteVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+        BuilderWithParent(OFFlowDeleteVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.DELETE;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowDelete build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+                if(bufferId == null)
+                    throw new NullPointerException("Property bufferId must not be null");
+                OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+                if(outPort == null)
+                    throw new NullPointerException("Property outPort must not be null");
+                Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+                if(actions == null)
+                    throw new NullPointerException("Property actions must not be null");
+
+                //
+                return new OFFlowDeleteVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowDelete.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.DELETE;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowDelete.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowDelete.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowDelete build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+            if(bufferId == null)
+                throw new NullPointerException("Property bufferId must not be null");
+            OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+            if(outPort == null)
+                throw new NullPointerException("Property outPort must not be null");
+            Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+            if(actions == null)
+                throw new NullPointerException("Property actions must not be null");
+
+
+            return new OFFlowDeleteVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowDelete> {
+        @Override
+        public OFFlowDelete readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 14
+            byte type = bb.readByte();
+            if(type != (byte) 0xe)
+                throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            U64 cookie = U64.ofRaw(bb.readLong());
+            // fixed value property command == 3
+            short command = bb.readShort();
+            if(command != (short) 0x3)
+                throw new OFParseError("Wrong command: Expected=OFFlowModCommand.DELETE(3), got="+command);
+            int idleTimeout = U16.f(bb.readShort());
+            int hardTimeout = U16.f(bb.readShort());
+            int priority = U16.f(bb.readShort());
+            OFBufferId bufferId = OFBufferId.of(bb.readInt());
+            OFPort outPort = OFPort.read2Bytes(bb);
+            Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+            List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+            OFFlowDeleteVer10 flowDeleteVer10 = new OFFlowDeleteVer10(
+                    xid,
+                      match,
+                      cookie,
+                      idleTimeout,
+                      hardTimeout,
+                      priority,
+                      bufferId,
+                      outPort,
+                      flags,
+                      actions
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowDeleteVer10);
+            return flowDeleteVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowDeleteVer10Funnel FUNNEL = new OFFlowDeleteVer10Funnel();
+    static class OFFlowDeleteVer10Funnel implements Funnel<OFFlowDeleteVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowDeleteVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 14
+            sink.putByte((byte) 0xe);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            message.match.putTo(sink);
+            message.cookie.putTo(sink);
+            // fixed value property command = 3
+            sink.putShort((short) 0x3);
+            sink.putInt(message.idleTimeout);
+            sink.putInt(message.hardTimeout);
+            sink.putInt(message.priority);
+            message.bufferId.putTo(sink);
+            message.outPort.putTo(sink);
+            OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+            FunnelUtils.putList(message.actions, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowDeleteVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowDeleteVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 14
+            bb.writeByte((byte) 0xe);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            message.match.writeTo(bb);
+            bb.writeLong(message.cookie.getValue());
+            // fixed value property command = 3
+            bb.writeShort((short) 0x3);
+            bb.writeShort(U16.t(message.idleTimeout));
+            bb.writeShort(U16.t(message.hardTimeout));
+            bb.writeShort(U16.t(message.priority));
+            bb.writeInt(message.bufferId.getInt());
+            message.outPort.write2Bytes(bb);
+            OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+            ChannelUtils.writeList(bb, message.actions);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowDeleteVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("hardTimeout=").append(hardTimeout);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("bufferId=").append(bufferId);
+        b.append(", ");
+        b.append("outPort=").append(outPort);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("actions=").append(actions);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowDeleteVer10 other = (OFFlowDeleteVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if( hardTimeout != other.hardTimeout)
+            return false;
+        if( priority != other.priority)
+            return false;
+        if (bufferId == null) {
+            if (other.bufferId != null)
+                return false;
+        } else if (!bufferId.equals(other.bufferId))
+            return false;
+        if (outPort == null) {
+            if (other.outPort != null)
+                return false;
+        } else if (!outPort.equals(other.outPort))
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (actions == null) {
+            if (other.actions != null)
+                return false;
+        } else if (!actions.equals(other.actions))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        result = prime * result + idleTimeout;
+        result = prime * result + hardTimeout;
+        result = prime * result + priority;
+        result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+        result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModCommandSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModCommandSerializerVer10.java
new file mode 100644
index 0000000..304389c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModCommandSerializerVer10.java
@@ -0,0 +1,89 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowModCommand;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFFlowModCommandSerializerVer10 {
+
+    public final static short ADD_VAL = (short) 0x0;
+    public final static short MODIFY_VAL = (short) 0x1;
+    public final static short MODIFY_STRICT_VAL = (short) 0x2;
+    public final static short DELETE_VAL = (short) 0x3;
+    public final static short DELETE_STRICT_VAL = (short) 0x4;
+
+    public static OFFlowModCommand readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFFlowModCommand e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFFlowModCommand e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFFlowModCommand ofWireValue(short val) {
+        switch(val) {
+            case ADD_VAL:
+                return OFFlowModCommand.ADD;
+            case MODIFY_VAL:
+                return OFFlowModCommand.MODIFY;
+            case MODIFY_STRICT_VAL:
+                return OFFlowModCommand.MODIFY_STRICT;
+            case DELETE_VAL:
+                return OFFlowModCommand.DELETE;
+            case DELETE_STRICT_VAL:
+                return OFFlowModCommand.DELETE_STRICT;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFFlowModCommand in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFFlowModCommand e) {
+        switch(e) {
+            case ADD:
+                return ADD_VAL;
+            case MODIFY:
+                return MODIFY_VAL;
+            case MODIFY_STRICT:
+                return MODIFY_STRICT_VAL;
+            case DELETE:
+                return DELETE_VAL;
+            case DELETE_STRICT:
+                return DELETE_STRICT_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFFlowModCommand in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedCodeSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedCodeSerializerVer10.java
new file mode 100644
index 0000000..cebce13
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedCodeSerializerVer10.java
@@ -0,0 +1,94 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowModFailedCode;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFFlowModFailedCodeSerializerVer10 {
+
+    public final static short ALL_TABLES_FULL_VAL = (short) 0x0;
+    public final static short OVERLAP_VAL = (short) 0x1;
+    public final static short EPERM_VAL = (short) 0x2;
+    public final static short BAD_EMERG_TIMEOUT_VAL = (short) 0x3;
+    public final static short BAD_COMMAND_VAL = (short) 0x4;
+    public final static short UNSUPPORTED_VAL = (short) 0x5;
+
+    public static OFFlowModFailedCode readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFFlowModFailedCode e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFFlowModFailedCode e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFFlowModFailedCode ofWireValue(short val) {
+        switch(val) {
+            case ALL_TABLES_FULL_VAL:
+                return OFFlowModFailedCode.ALL_TABLES_FULL;
+            case OVERLAP_VAL:
+                return OFFlowModFailedCode.OVERLAP;
+            case EPERM_VAL:
+                return OFFlowModFailedCode.EPERM;
+            case BAD_EMERG_TIMEOUT_VAL:
+                return OFFlowModFailedCode.BAD_EMERG_TIMEOUT;
+            case BAD_COMMAND_VAL:
+                return OFFlowModFailedCode.BAD_COMMAND;
+            case UNSUPPORTED_VAL:
+                return OFFlowModFailedCode.UNSUPPORTED;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFFlowModFailedCode in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFFlowModFailedCode e) {
+        switch(e) {
+            case ALL_TABLES_FULL:
+                return ALL_TABLES_FULL_VAL;
+            case OVERLAP:
+                return OVERLAP_VAL;
+            case EPERM:
+                return EPERM_VAL;
+            case BAD_EMERG_TIMEOUT:
+                return BAD_EMERG_TIMEOUT_VAL;
+            case BAD_COMMAND:
+                return BAD_COMMAND_VAL;
+            case UNSUPPORTED:
+                return UNSUPPORTED_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFFlowModFailedCode in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedErrorMsgVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedErrorMsgVer10.java
new file mode 100644
index 0000000..d9a8fe5
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedErrorMsgVer10.java
@@ -0,0 +1,400 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowModFailedErrorMsgVer10 implements OFFlowModFailedErrorMsg {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowModFailedErrorMsgVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 12;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static OFErrorCauseData DEFAULT_DATA = OFErrorCauseData.NONE;
+
+    // OF message fields
+    private final long xid;
+    private final OFFlowModFailedCode code;
+    private final OFErrorCauseData data;
+//
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowModFailedErrorMsgVer10(long xid, OFFlowModFailedCode code, OFErrorCauseData data) {
+        this.xid = xid;
+        this.code = code;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.FLOW_MOD_FAILED;
+    }
+
+    @Override
+    public OFFlowModFailedCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+
+
+    public OFFlowModFailedErrorMsg.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowModFailedErrorMsg.Builder {
+        final OFFlowModFailedErrorMsgVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFFlowModFailedCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+        BuilderWithParent(OFFlowModFailedErrorMsgVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowModFailedErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.FLOW_MOD_FAILED;
+    }
+
+    @Override
+    public OFFlowModFailedCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFFlowModFailedErrorMsg.Builder setCode(OFFlowModFailedCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFFlowModFailedErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowModFailedErrorMsg build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                OFFlowModFailedCode code = this.codeSet ? this.code : parentMessage.code;
+                if(code == null)
+                    throw new NullPointerException("Property code must not be null");
+                OFErrorCauseData data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFFlowModFailedErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowModFailedErrorMsg.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFFlowModFailedCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowModFailedErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.FLOW_MOD_FAILED;
+    }
+
+    @Override
+    public OFFlowModFailedCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFFlowModFailedErrorMsg.Builder setCode(OFFlowModFailedCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFFlowModFailedErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowModFailedErrorMsg build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            if(!this.codeSet)
+                throw new IllegalStateException("Property code doesn't have default value -- must be set");
+            if(code == null)
+                throw new NullPointerException("Property code must not be null");
+            OFErrorCauseData data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFFlowModFailedErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowModFailedErrorMsg> {
+        @Override
+        public OFFlowModFailedErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 1
+            byte type = bb.readByte();
+            if(type != (byte) 0x1)
+                throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property errType == 3
+            short errType = bb.readShort();
+            if(errType != (short) 0x3)
+                throw new OFParseError("Wrong errType: Expected=OFErrorType.FLOW_MOD_FAILED(3), got="+errType);
+            OFFlowModFailedCode code = OFFlowModFailedCodeSerializerVer10.readFrom(bb);
+            OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10);
+
+            OFFlowModFailedErrorMsgVer10 flowModFailedErrorMsgVer10 = new OFFlowModFailedErrorMsgVer10(
+                    xid,
+                      code,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowModFailedErrorMsgVer10);
+            return flowModFailedErrorMsgVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowModFailedErrorMsgVer10Funnel FUNNEL = new OFFlowModFailedErrorMsgVer10Funnel();
+    static class OFFlowModFailedErrorMsgVer10Funnel implements Funnel<OFFlowModFailedErrorMsgVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowModFailedErrorMsgVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 1
+            sink.putByte((byte) 0x1);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property errType = 3
+            sink.putShort((short) 0x3);
+            OFFlowModFailedCodeSerializerVer10.putTo(message.code, sink);
+            message.data.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowModFailedErrorMsgVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowModFailedErrorMsgVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 1
+            bb.writeByte((byte) 0x1);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property errType = 3
+            bb.writeShort((short) 0x3);
+            OFFlowModFailedCodeSerializerVer10.writeTo(bb, message.code);
+            message.data.writeTo(bb);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowModFailedErrorMsgVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("code=").append(code);
+        b.append(", ");
+        b.append("data=").append(data);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowModFailedErrorMsgVer10 other = (OFFlowModFailedErrorMsgVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (code == null) {
+            if (other.code != null)
+                return false;
+        } else if (!code.equals(other.code))
+            return false;
+        if (data == null) {
+            if (other.data != null)
+                return false;
+        } else if (!data.equals(other.data))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((code == null) ? 0 : code.hashCode());
+        result = prime * result + ((data == null) ? 0 : data.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFlagsSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFlagsSerializerVer10.java
new file mode 100644
index 0000000..a3bab3e
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFlagsSerializerVer10.java
@@ -0,0 +1,90 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowModFlags;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFFlowModFlagsSerializerVer10 {
+
+    public final static short SEND_FLOW_REM_VAL = (short) 0x1;
+    public final static short CHECK_OVERLAP_VAL = (short) 0x2;
+    public final static short EMERG_VAL = (short) 0x4;
+
+    public static Set<OFFlowModFlags> readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, Set<OFFlowModFlags> set) {
+        bb.writeShort(toWireValue(set));
+    }
+
+    public static void putTo(Set<OFFlowModFlags> set, PrimitiveSink sink) {
+        sink.putShort(toWireValue(set));
+    }
+
+
+    public static Set<OFFlowModFlags> ofWireValue(short val) {
+        EnumSet<OFFlowModFlags> set = EnumSet.noneOf(OFFlowModFlags.class);
+
+        if((val & SEND_FLOW_REM_VAL) != 0)
+            set.add(OFFlowModFlags.SEND_FLOW_REM);
+        if((val & CHECK_OVERLAP_VAL) != 0)
+            set.add(OFFlowModFlags.CHECK_OVERLAP);
+        if((val & EMERG_VAL) != 0)
+            set.add(OFFlowModFlags.EMERG);
+        return Collections.unmodifiableSet(set);
+    }
+
+    public static short toWireValue(Set<OFFlowModFlags> set) {
+        short wireValue = 0;
+
+        for(OFFlowModFlags e: set) {
+            switch(e) {
+                case SEND_FLOW_REM:
+                    wireValue |= SEND_FLOW_REM_VAL;
+                    break;
+                case CHECK_OVERLAP:
+                    wireValue |= CHECK_OVERLAP_VAL;
+                    break;
+                case EMERG:
+                    wireValue |= EMERG_VAL;
+                    break;
+                default:
+                    throw new IllegalArgumentException("Illegal enum value for type OFFlowModFlags in version 1.0: " + e);
+            }
+        }
+        return wireValue;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModVer10.java
new file mode 100644
index 0000000..b434dec
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModVer10.java
@@ -0,0 +1,79 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFFlowModVer10 {
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 72;
+
+
+    public final static OFFlowModVer10.Reader READER = new Reader();
+
+    static class Reader implements OFMessageReader<OFFlowMod> {
+        @Override
+        public OFFlowMod readFrom(ChannelBuffer bb) throws OFParseError {
+            if(bb.readableBytes() < MINIMUM_LENGTH)
+                return null;
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 14
+            byte type = bb.readByte();
+            if(type != (byte) 0xe)
+                throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            U32.f(bb.readInt());
+            ChannelUtilsVer10.readOFMatch(bb);
+            U64.ofRaw(bb.readLong());
+            short command = bb.readShort();
+            bb.readerIndex(start);
+            switch(command) {
+               case (short) 0x0:
+                   // discriminator value OFFlowModCommand.ADD=0 for class OFFlowAddVer10
+                   return OFFlowAddVer10.READER.readFrom(bb);
+               case (short) 0x3:
+                   // discriminator value OFFlowModCommand.DELETE=3 for class OFFlowDeleteVer10
+                   return OFFlowDeleteVer10.READER.readFrom(bb);
+               case (short) 0x4:
+                   // discriminator value OFFlowModCommand.DELETE_STRICT=4 for class OFFlowDeleteStrictVer10
+                   return OFFlowDeleteStrictVer10.READER.readFrom(bb);
+               case (short) 0x1:
+                   // discriminator value OFFlowModCommand.MODIFY=1 for class OFFlowModifyVer10
+                   return OFFlowModifyVer10.READER.readFrom(bb);
+               case (short) 0x2:
+                   // discriminator value OFFlowModCommand.MODIFY_STRICT=2 for class OFFlowModifyStrictVer10
+                   return OFFlowModifyStrictVer10.READER.readFrom(bb);
+               default:
+                   throw new OFParseError("Unknown value for discriminator command of class OFFlowModVer10: " + command);
+            }
+        }
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyStrictVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyStrictVer10.java
new file mode 100644
index 0000000..2b72508
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyStrictVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowModifyStrictVer10 implements OFFlowModifyStrict {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowModifyStrictVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 72;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+        private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+        private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+        private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+    // OF message fields
+    private final long xid;
+    private final Match match;
+    private final U64 cookie;
+    private final int idleTimeout;
+    private final int hardTimeout;
+    private final int priority;
+    private final OFBufferId bufferId;
+    private final OFPort outPort;
+    private final Set<OFFlowModFlags> flags;
+    private final List<OFAction> actions;
+//
+    // Immutable default instance
+    final static OFFlowModifyStrictVer10 DEFAULT = new OFFlowModifyStrictVer10(
+        DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowModifyStrictVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+        this.xid = xid;
+        this.match = match;
+        this.cookie = cookie;
+        this.idleTimeout = idleTimeout;
+        this.hardTimeout = hardTimeout;
+        this.priority = priority;
+        this.bufferId = bufferId;
+        this.outPort = outPort;
+        this.flags = flags;
+        this.actions = actions;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.MODIFY_STRICT;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+
+
+    public OFFlowModifyStrict.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowModifyStrict.Builder {
+        final OFFlowModifyStrictVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+        BuilderWithParent(OFFlowModifyStrictVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.MODIFY_STRICT;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowModifyStrict build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+                if(bufferId == null)
+                    throw new NullPointerException("Property bufferId must not be null");
+                OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+                if(outPort == null)
+                    throw new NullPointerException("Property outPort must not be null");
+                Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+                if(actions == null)
+                    throw new NullPointerException("Property actions must not be null");
+
+                //
+                return new OFFlowModifyStrictVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowModifyStrict.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.MODIFY_STRICT;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowModifyStrict.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowModifyStrict build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+            if(bufferId == null)
+                throw new NullPointerException("Property bufferId must not be null");
+            OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+            if(outPort == null)
+                throw new NullPointerException("Property outPort must not be null");
+            Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+            if(actions == null)
+                throw new NullPointerException("Property actions must not be null");
+
+
+            return new OFFlowModifyStrictVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowModifyStrict> {
+        @Override
+        public OFFlowModifyStrict readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 14
+            byte type = bb.readByte();
+            if(type != (byte) 0xe)
+                throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            U64 cookie = U64.ofRaw(bb.readLong());
+            // fixed value property command == 2
+            short command = bb.readShort();
+            if(command != (short) 0x2)
+                throw new OFParseError("Wrong command: Expected=OFFlowModCommand.MODIFY_STRICT(2), got="+command);
+            int idleTimeout = U16.f(bb.readShort());
+            int hardTimeout = U16.f(bb.readShort());
+            int priority = U16.f(bb.readShort());
+            OFBufferId bufferId = OFBufferId.of(bb.readInt());
+            OFPort outPort = OFPort.read2Bytes(bb);
+            Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+            List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+            OFFlowModifyStrictVer10 flowModifyStrictVer10 = new OFFlowModifyStrictVer10(
+                    xid,
+                      match,
+                      cookie,
+                      idleTimeout,
+                      hardTimeout,
+                      priority,
+                      bufferId,
+                      outPort,
+                      flags,
+                      actions
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowModifyStrictVer10);
+            return flowModifyStrictVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowModifyStrictVer10Funnel FUNNEL = new OFFlowModifyStrictVer10Funnel();
+    static class OFFlowModifyStrictVer10Funnel implements Funnel<OFFlowModifyStrictVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowModifyStrictVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 14
+            sink.putByte((byte) 0xe);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            message.match.putTo(sink);
+            message.cookie.putTo(sink);
+            // fixed value property command = 2
+            sink.putShort((short) 0x2);
+            sink.putInt(message.idleTimeout);
+            sink.putInt(message.hardTimeout);
+            sink.putInt(message.priority);
+            message.bufferId.putTo(sink);
+            message.outPort.putTo(sink);
+            OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+            FunnelUtils.putList(message.actions, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowModifyStrictVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowModifyStrictVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 14
+            bb.writeByte((byte) 0xe);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            message.match.writeTo(bb);
+            bb.writeLong(message.cookie.getValue());
+            // fixed value property command = 2
+            bb.writeShort((short) 0x2);
+            bb.writeShort(U16.t(message.idleTimeout));
+            bb.writeShort(U16.t(message.hardTimeout));
+            bb.writeShort(U16.t(message.priority));
+            bb.writeInt(message.bufferId.getInt());
+            message.outPort.write2Bytes(bb);
+            OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+            ChannelUtils.writeList(bb, message.actions);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowModifyStrictVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("hardTimeout=").append(hardTimeout);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("bufferId=").append(bufferId);
+        b.append(", ");
+        b.append("outPort=").append(outPort);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("actions=").append(actions);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowModifyStrictVer10 other = (OFFlowModifyStrictVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if( hardTimeout != other.hardTimeout)
+            return false;
+        if( priority != other.priority)
+            return false;
+        if (bufferId == null) {
+            if (other.bufferId != null)
+                return false;
+        } else if (!bufferId.equals(other.bufferId))
+            return false;
+        if (outPort == null) {
+            if (other.outPort != null)
+                return false;
+        } else if (!outPort.equals(other.outPort))
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (actions == null) {
+            if (other.actions != null)
+                return false;
+        } else if (!actions.equals(other.actions))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        result = prime * result + idleTimeout;
+        result = prime * result + hardTimeout;
+        result = prime * result + priority;
+        result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+        result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyVer10.java
new file mode 100644
index 0000000..86b1f14
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowModifyVer10 implements OFFlowModify {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowModifyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 72;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+        private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+        private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+        private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+    // OF message fields
+    private final long xid;
+    private final Match match;
+    private final U64 cookie;
+    private final int idleTimeout;
+    private final int hardTimeout;
+    private final int priority;
+    private final OFBufferId bufferId;
+    private final OFPort outPort;
+    private final Set<OFFlowModFlags> flags;
+    private final List<OFAction> actions;
+//
+    // Immutable default instance
+    final static OFFlowModifyVer10 DEFAULT = new OFFlowModifyVer10(
+        DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowModifyVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+        this.xid = xid;
+        this.match = match;
+        this.cookie = cookie;
+        this.idleTimeout = idleTimeout;
+        this.hardTimeout = hardTimeout;
+        this.priority = priority;
+        this.bufferId = bufferId;
+        this.outPort = outPort;
+        this.flags = flags;
+        this.actions = actions;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.MODIFY;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+
+
+    public OFFlowModify.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowModify.Builder {
+        final OFFlowModifyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+        BuilderWithParent(OFFlowModifyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowModify.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowModify.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.MODIFY;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowModify.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowModify.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowModify.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowModify.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowModify.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowModify.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowModify.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowModify.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowModify build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+                if(bufferId == null)
+                    throw new NullPointerException("Property bufferId must not be null");
+                OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+                if(outPort == null)
+                    throw new NullPointerException("Property outPort must not be null");
+                Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+                if(actions == null)
+                    throw new NullPointerException("Property actions must not be null");
+
+                //
+                return new OFFlowModifyVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowModify.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean prioritySet;
+        private int priority;
+        private boolean bufferIdSet;
+        private OFBufferId bufferId;
+        private boolean outPortSet;
+        private OFPort outPort;
+        private boolean flagsSet;
+        private Set<OFFlowModFlags> flags;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_MOD;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowModify.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowModify.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public OFFlowModCommand getCommand() {
+        return OFFlowModCommand.MODIFY;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowModify.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowModify.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowModify.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public OFBufferId getBufferId() {
+        return bufferId;
+    }
+
+    @Override
+    public OFFlowModify.Builder setBufferId(OFBufferId bufferId) {
+        this.bufferId = bufferId;
+        this.bufferIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowModify.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowModify.Builder setFlags(Set<OFFlowModFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowModify.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowModify.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowModify.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowModify build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+            if(bufferId == null)
+                throw new NullPointerException("Property bufferId must not be null");
+            OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+            if(outPort == null)
+                throw new NullPointerException("Property outPort must not be null");
+            Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+            if(actions == null)
+                throw new NullPointerException("Property actions must not be null");
+
+
+            return new OFFlowModifyVer10(
+                    xid,
+                    match,
+                    cookie,
+                    idleTimeout,
+                    hardTimeout,
+                    priority,
+                    bufferId,
+                    outPort,
+                    flags,
+                    actions
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowModify> {
+        @Override
+        public OFFlowModify readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 14
+            byte type = bb.readByte();
+            if(type != (byte) 0xe)
+                throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            U64 cookie = U64.ofRaw(bb.readLong());
+            // fixed value property command == 1
+            short command = bb.readShort();
+            if(command != (short) 0x1)
+                throw new OFParseError("Wrong command: Expected=OFFlowModCommand.MODIFY(1), got="+command);
+            int idleTimeout = U16.f(bb.readShort());
+            int hardTimeout = U16.f(bb.readShort());
+            int priority = U16.f(bb.readShort());
+            OFBufferId bufferId = OFBufferId.of(bb.readInt());
+            OFPort outPort = OFPort.read2Bytes(bb);
+            Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+            List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+            OFFlowModifyVer10 flowModifyVer10 = new OFFlowModifyVer10(
+                    xid,
+                      match,
+                      cookie,
+                      idleTimeout,
+                      hardTimeout,
+                      priority,
+                      bufferId,
+                      outPort,
+                      flags,
+                      actions
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowModifyVer10);
+            return flowModifyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowModifyVer10Funnel FUNNEL = new OFFlowModifyVer10Funnel();
+    static class OFFlowModifyVer10Funnel implements Funnel<OFFlowModifyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowModifyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 14
+            sink.putByte((byte) 0xe);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            message.match.putTo(sink);
+            message.cookie.putTo(sink);
+            // fixed value property command = 1
+            sink.putShort((short) 0x1);
+            sink.putInt(message.idleTimeout);
+            sink.putInt(message.hardTimeout);
+            sink.putInt(message.priority);
+            message.bufferId.putTo(sink);
+            message.outPort.putTo(sink);
+            OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+            FunnelUtils.putList(message.actions, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowModifyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowModifyVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 14
+            bb.writeByte((byte) 0xe);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            message.match.writeTo(bb);
+            bb.writeLong(message.cookie.getValue());
+            // fixed value property command = 1
+            bb.writeShort((short) 0x1);
+            bb.writeShort(U16.t(message.idleTimeout));
+            bb.writeShort(U16.t(message.hardTimeout));
+            bb.writeShort(U16.t(message.priority));
+            bb.writeInt(message.bufferId.getInt());
+            message.outPort.write2Bytes(bb);
+            OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+            ChannelUtils.writeList(bb, message.actions);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowModifyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("hardTimeout=").append(hardTimeout);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("bufferId=").append(bufferId);
+        b.append(", ");
+        b.append("outPort=").append(outPort);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("actions=").append(actions);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowModifyVer10 other = (OFFlowModifyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if( hardTimeout != other.hardTimeout)
+            return false;
+        if( priority != other.priority)
+            return false;
+        if (bufferId == null) {
+            if (other.bufferId != null)
+                return false;
+        } else if (!bufferId.equals(other.bufferId))
+            return false;
+        if (outPort == null) {
+            if (other.outPort != null)
+                return false;
+        } else if (!outPort.equals(other.outPort))
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (actions == null) {
+            if (other.actions != null)
+                return false;
+        } else if (!actions.equals(other.actions))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        result = prime * result + idleTimeout;
+        result = prime * result + hardTimeout;
+        result = prime * result + priority;
+        result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+        result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowRemovedReasonSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowRemovedReasonSerializerVer10.java
new file mode 100644
index 0000000..13eb0b3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowRemovedReasonSerializerVer10.java
@@ -0,0 +1,79 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowRemovedReason;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFFlowRemovedReasonSerializerVer10 {
+
+    public final static byte IDLE_TIMEOUT_VAL = (byte) 0x0;
+    public final static byte HARD_TIMEOUT_VAL = (byte) 0x1;
+    public final static byte DELETE_VAL = (byte) 0x2;
+
+    public static OFFlowRemovedReason readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readByte());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFFlowRemovedReason e) {
+        bb.writeByte(toWireValue(e));
+    }
+
+    public static void putTo(OFFlowRemovedReason e, PrimitiveSink sink) {
+        sink.putByte(toWireValue(e));
+    }
+
+    public static OFFlowRemovedReason ofWireValue(byte val) {
+        switch(val) {
+            case IDLE_TIMEOUT_VAL:
+                return OFFlowRemovedReason.IDLE_TIMEOUT;
+            case HARD_TIMEOUT_VAL:
+                return OFFlowRemovedReason.HARD_TIMEOUT;
+            case DELETE_VAL:
+                return OFFlowRemovedReason.DELETE;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFFlowRemovedReason in version 1.0: " + val);
+        }
+    }
+
+
+    public static byte toWireValue(OFFlowRemovedReason e) {
+        switch(e) {
+            case IDLE_TIMEOUT:
+                return IDLE_TIMEOUT_VAL;
+            case HARD_TIMEOUT:
+                return HARD_TIMEOUT_VAL;
+            case DELETE:
+                return DELETE_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFFlowRemovedReason in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowRemovedVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowRemovedVer10.java
new file mode 100644
index 0000000..a9f2d0d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowRemovedVer10.java
@@ -0,0 +1,775 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowRemovedVer10 implements OFFlowRemoved {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowRemovedVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 88;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static short DEFAULT_REASON = (short) 0x0;
+        private final static long DEFAULT_DURATION_SEC = 0x0L;
+        private final static long DEFAULT_DURATION_NSEC = 0x0L;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static U64 DEFAULT_PACKET_COUNT = U64.ZERO;
+        private final static U64 DEFAULT_BYTE_COUNT = U64.ZERO;
+
+    // OF message fields
+    private final long xid;
+    private final Match match;
+    private final U64 cookie;
+    private final int priority;
+    private final short reason;
+    private final long durationSec;
+    private final long durationNsec;
+    private final int idleTimeout;
+    private final U64 packetCount;
+    private final U64 byteCount;
+//
+    // Immutable default instance
+    final static OFFlowRemovedVer10 DEFAULT = new OFFlowRemovedVer10(
+        DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_PRIORITY, DEFAULT_REASON, DEFAULT_DURATION_SEC, DEFAULT_DURATION_NSEC, DEFAULT_IDLE_TIMEOUT, DEFAULT_PACKET_COUNT, DEFAULT_BYTE_COUNT
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowRemovedVer10(long xid, Match match, U64 cookie, int priority, short reason, long durationSec, long durationNsec, int idleTimeout, U64 packetCount, U64 byteCount) {
+        this.xid = xid;
+        this.match = match;
+        this.cookie = cookie;
+        this.priority = priority;
+        this.reason = reason;
+        this.durationSec = durationSec;
+        this.durationNsec = durationNsec;
+        this.idleTimeout = idleTimeout;
+        this.packetCount = packetCount;
+        this.byteCount = byteCount;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_REMOVED;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public short getReason() {
+        return reason;
+    }
+
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public long getDurationSec() {
+        return durationSec;
+    }
+
+    @Override
+    public long getDurationNsec() {
+        return durationNsec;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property hardTimeout not supported in version 1.0");
+    }
+
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+
+
+    public OFFlowRemoved.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowRemoved.Builder {
+        final OFFlowRemovedVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean prioritySet;
+        private int priority;
+        private boolean reasonSet;
+        private short reason;
+        private boolean durationSecSet;
+        private long durationSec;
+        private boolean durationNsecSet;
+        private long durationNsec;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean packetCountSet;
+        private U64 packetCount;
+        private boolean byteCountSet;
+        private U64 byteCount;
+
+        BuilderWithParent(OFFlowRemovedVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_REMOVED;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public short getReason() {
+        return reason;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setReason(short reason) {
+        this.reason = reason;
+        this.reasonSet = true;
+        return this;
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public long getDurationSec() {
+        return durationSec;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setDurationSec(long durationSec) {
+        this.durationSec = durationSec;
+        this.durationSecSet = true;
+        return this;
+    }
+    @Override
+    public long getDurationNsec() {
+        return durationNsec;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setDurationNsec(long durationNsec) {
+        this.durationNsec = durationNsec;
+        this.durationNsecSet = true;
+        return this;
+    }
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property hardTimeout not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setHardTimeout(int hardTimeout) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property hardTimeout not supported in version 1.0");
+    }
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setPacketCount(U64 packetCount) {
+        this.packetCount = packetCount;
+        this.packetCountSet = true;
+        return this;
+    }
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setByteCount(U64 byteCount) {
+        this.byteCount = byteCount;
+        this.byteCountSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowRemoved build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                short reason = this.reasonSet ? this.reason : parentMessage.reason;
+                long durationSec = this.durationSecSet ? this.durationSec : parentMessage.durationSec;
+                long durationNsec = this.durationNsecSet ? this.durationNsec : parentMessage.durationNsec;
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                U64 packetCount = this.packetCountSet ? this.packetCount : parentMessage.packetCount;
+                if(packetCount == null)
+                    throw new NullPointerException("Property packetCount must not be null");
+                U64 byteCount = this.byteCountSet ? this.byteCount : parentMessage.byteCount;
+                if(byteCount == null)
+                    throw new NullPointerException("Property byteCount must not be null");
+
+                //
+                return new OFFlowRemovedVer10(
+                    xid,
+                    match,
+                    cookie,
+                    priority,
+                    reason,
+                    durationSec,
+                    durationNsec,
+                    idleTimeout,
+                    packetCount,
+                    byteCount
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowRemoved.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean matchSet;
+        private Match match;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean prioritySet;
+        private int priority;
+        private boolean reasonSet;
+        private short reason;
+        private boolean durationSecSet;
+        private long durationSec;
+        private boolean durationNsecSet;
+        private long durationNsec;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean packetCountSet;
+        private U64 packetCount;
+        private boolean byteCountSet;
+        private U64 byteCount;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.FLOW_REMOVED;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public short getReason() {
+        return reason;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setReason(short reason) {
+        this.reason = reason;
+        this.reasonSet = true;
+        return this;
+    }
+    @Override
+    public TableId getTableId()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+    }
+    @Override
+    public long getDurationSec() {
+        return durationSec;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setDurationSec(long durationSec) {
+        this.durationSec = durationSec;
+        this.durationSecSet = true;
+        return this;
+    }
+    @Override
+    public long getDurationNsec() {
+        return durationNsec;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setDurationNsec(long durationNsec) {
+        this.durationNsec = durationNsec;
+        this.durationNsecSet = true;
+        return this;
+    }
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property hardTimeout not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setHardTimeout(int hardTimeout) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property hardTimeout not supported in version 1.0");
+    }
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setPacketCount(U64 packetCount) {
+        this.packetCount = packetCount;
+        this.packetCountSet = true;
+        return this;
+    }
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setByteCount(U64 byteCount) {
+        this.byteCount = byteCount;
+        this.byteCountSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowRemoved.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowRemoved build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            short reason = this.reasonSet ? this.reason : DEFAULT_REASON;
+            long durationSec = this.durationSecSet ? this.durationSec : DEFAULT_DURATION_SEC;
+            long durationNsec = this.durationNsecSet ? this.durationNsec : DEFAULT_DURATION_NSEC;
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            U64 packetCount = this.packetCountSet ? this.packetCount : DEFAULT_PACKET_COUNT;
+            if(packetCount == null)
+                throw new NullPointerException("Property packetCount must not be null");
+            U64 byteCount = this.byteCountSet ? this.byteCount : DEFAULT_BYTE_COUNT;
+            if(byteCount == null)
+                throw new NullPointerException("Property byteCount must not be null");
+
+
+            return new OFFlowRemovedVer10(
+                    xid,
+                    match,
+                    cookie,
+                    priority,
+                    reason,
+                    durationSec,
+                    durationNsec,
+                    idleTimeout,
+                    packetCount,
+                    byteCount
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowRemoved> {
+        @Override
+        public OFFlowRemoved readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 11
+            byte type = bb.readByte();
+            if(type != (byte) 0xb)
+                throw new OFParseError("Wrong type: Expected=OFType.FLOW_REMOVED(11), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 88)
+                throw new OFParseError("Wrong length: Expected=88(88), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            U64 cookie = U64.ofRaw(bb.readLong());
+            int priority = U16.f(bb.readShort());
+            short reason = U8.f(bb.readByte());
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            long durationSec = U32.f(bb.readInt());
+            long durationNsec = U32.f(bb.readInt());
+            int idleTimeout = U16.f(bb.readShort());
+            // pad: 2 bytes
+            bb.skipBytes(2);
+            U64 packetCount = U64.ofRaw(bb.readLong());
+            U64 byteCount = U64.ofRaw(bb.readLong());
+
+            OFFlowRemovedVer10 flowRemovedVer10 = new OFFlowRemovedVer10(
+                    xid,
+                      match,
+                      cookie,
+                      priority,
+                      reason,
+                      durationSec,
+                      durationNsec,
+                      idleTimeout,
+                      packetCount,
+                      byteCount
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowRemovedVer10);
+            return flowRemovedVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowRemovedVer10Funnel FUNNEL = new OFFlowRemovedVer10Funnel();
+    static class OFFlowRemovedVer10Funnel implements Funnel<OFFlowRemovedVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowRemovedVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 11
+            sink.putByte((byte) 0xb);
+            // fixed value property length = 88
+            sink.putShort((short) 0x58);
+            sink.putLong(message.xid);
+            message.match.putTo(sink);
+            message.cookie.putTo(sink);
+            sink.putInt(message.priority);
+            sink.putShort(message.reason);
+            // skip pad (1 bytes)
+            sink.putLong(message.durationSec);
+            sink.putLong(message.durationNsec);
+            sink.putInt(message.idleTimeout);
+            // skip pad (2 bytes)
+            message.packetCount.putTo(sink);
+            message.byteCount.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowRemovedVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowRemovedVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 11
+            bb.writeByte((byte) 0xb);
+            // fixed value property length = 88
+            bb.writeShort((short) 0x58);
+            bb.writeInt(U32.t(message.xid));
+            message.match.writeTo(bb);
+            bb.writeLong(message.cookie.getValue());
+            bb.writeShort(U16.t(message.priority));
+            bb.writeByte(U8.t(message.reason));
+            // pad: 1 bytes
+            bb.writeZero(1);
+            bb.writeInt(U32.t(message.durationSec));
+            bb.writeInt(U32.t(message.durationNsec));
+            bb.writeShort(U16.t(message.idleTimeout));
+            // pad: 2 bytes
+            bb.writeZero(2);
+            bb.writeLong(message.packetCount.getValue());
+            bb.writeLong(message.byteCount.getValue());
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowRemovedVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("reason=").append(reason);
+        b.append(", ");
+        b.append("durationSec=").append(durationSec);
+        b.append(", ");
+        b.append("durationNsec=").append(durationNsec);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("packetCount=").append(packetCount);
+        b.append(", ");
+        b.append("byteCount=").append(byteCount);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowRemovedVer10 other = (OFFlowRemovedVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        if( priority != other.priority)
+            return false;
+        if( reason != other.reason)
+            return false;
+        if( durationSec != other.durationSec)
+            return false;
+        if( durationNsec != other.durationNsec)
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if (packetCount == null) {
+            if (other.packetCount != null)
+                return false;
+        } else if (!packetCount.equals(other.packetCount))
+            return false;
+        if (byteCount == null) {
+            if (other.byteCount != null)
+                return false;
+        } else if (!byteCount.equals(other.byteCount))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        result = prime * result + priority;
+        result = prime * result + reason;
+        result = prime *  (int) (durationSec ^ (durationSec >>> 32));
+        result = prime *  (int) (durationNsec ^ (durationNsec >>> 32));
+        result = prime * result + idleTimeout;
+        result = prime * result + ((packetCount == null) ? 0 : packetCount.hashCode());
+        result = prime * result + ((byteCount == null) ? 0 : byteCount.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsEntryVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsEntryVer10.java
new file mode 100644
index 0000000..d3f5ff9
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsEntryVer10.java
@@ -0,0 +1,812 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowStatsEntryVer10 implements OFFlowStatsEntry {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowStatsEntryVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 88;
+
+        private final static TableId DEFAULT_TABLE_ID = TableId.ALL;
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static long DEFAULT_DURATION_SEC = 0x0L;
+        private final static long DEFAULT_DURATION_NSEC = 0x0L;
+        private final static int DEFAULT_PRIORITY = 0x0;
+        private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+        private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+        private final static U64 DEFAULT_COOKIE = U64.ZERO;
+        private final static U64 DEFAULT_PACKET_COUNT = U64.ZERO;
+        private final static U64 DEFAULT_BYTE_COUNT = U64.ZERO;
+        private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+    // OF message fields
+    private final TableId tableId;
+    private final Match match;
+    private final long durationSec;
+    private final long durationNsec;
+    private final int priority;
+    private final int idleTimeout;
+    private final int hardTimeout;
+    private final U64 cookie;
+    private final U64 packetCount;
+    private final U64 byteCount;
+    private final List<OFAction> actions;
+//
+    // Immutable default instance
+    final static OFFlowStatsEntryVer10 DEFAULT = new OFFlowStatsEntryVer10(
+        DEFAULT_TABLE_ID, DEFAULT_MATCH, DEFAULT_DURATION_SEC, DEFAULT_DURATION_NSEC, DEFAULT_PRIORITY, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_COOKIE, DEFAULT_PACKET_COUNT, DEFAULT_BYTE_COUNT, DEFAULT_ACTIONS
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowStatsEntryVer10(TableId tableId, Match match, long durationSec, long durationNsec, int priority, int idleTimeout, int hardTimeout, U64 cookie, U64 packetCount, U64 byteCount, List<OFAction> actions) {
+        this.tableId = tableId;
+        this.match = match;
+        this.durationSec = durationSec;
+        this.durationNsec = durationNsec;
+        this.priority = priority;
+        this.idleTimeout = idleTimeout;
+        this.hardTimeout = hardTimeout;
+        this.cookie = cookie;
+        this.packetCount = packetCount;
+        this.byteCount = byteCount;
+        this.actions = actions;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public long getDurationSec() {
+        return durationSec;
+    }
+
+    @Override
+    public long getDurationNsec() {
+        return durationNsec;
+    }
+
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public Set<OFFlowModFlags> getFlags()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property flags not supported in version 1.0");
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+    public OFFlowStatsEntry.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowStatsEntry.Builder {
+        final OFFlowStatsEntryVer10 parentMessage;
+
+        // OF message fields
+        private boolean tableIdSet;
+        private TableId tableId;
+        private boolean matchSet;
+        private Match match;
+        private boolean durationSecSet;
+        private long durationSec;
+        private boolean durationNsecSet;
+        private long durationNsec;
+        private boolean prioritySet;
+        private int priority;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean packetCountSet;
+        private U64 packetCount;
+        private boolean byteCountSet;
+        private U64 byteCount;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+        BuilderWithParent(OFFlowStatsEntryVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setTableId(TableId tableId) {
+        this.tableId = tableId;
+        this.tableIdSet = true;
+        return this;
+    }
+    @Override
+    public long getDurationSec() {
+        return durationSec;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setDurationSec(long durationSec) {
+        this.durationSec = durationSec;
+        this.durationSecSet = true;
+        return this;
+    }
+    @Override
+    public long getDurationNsec() {
+        return durationNsec;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setDurationNsec(long durationNsec) {
+        this.durationNsec = durationNsec;
+        this.durationNsecSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setPacketCount(U64 packetCount) {
+        this.packetCount = packetCount;
+        this.packetCountSet = true;
+        return this;
+    }
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setByteCount(U64 byteCount) {
+        this.byteCount = byteCount;
+        this.byteCountSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property flags not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setFlags(Set<OFFlowModFlags> flags) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property flags not supported in version 1.0");
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFFlowStatsEntry build() {
+                TableId tableId = this.tableIdSet ? this.tableId : parentMessage.tableId;
+                if(tableId == null)
+                    throw new NullPointerException("Property tableId must not be null");
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                long durationSec = this.durationSecSet ? this.durationSec : parentMessage.durationSec;
+                long durationNsec = this.durationNsecSet ? this.durationNsec : parentMessage.durationNsec;
+                int priority = this.prioritySet ? this.priority : parentMessage.priority;
+                int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+                int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+                U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+                if(cookie == null)
+                    throw new NullPointerException("Property cookie must not be null");
+                U64 packetCount = this.packetCountSet ? this.packetCount : parentMessage.packetCount;
+                if(packetCount == null)
+                    throw new NullPointerException("Property packetCount must not be null");
+                U64 byteCount = this.byteCountSet ? this.byteCount : parentMessage.byteCount;
+                if(byteCount == null)
+                    throw new NullPointerException("Property byteCount must not be null");
+                List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+                if(actions == null)
+                    throw new NullPointerException("Property actions must not be null");
+
+                //
+                return new OFFlowStatsEntryVer10(
+                    tableId,
+                    match,
+                    durationSec,
+                    durationNsec,
+                    priority,
+                    idleTimeout,
+                    hardTimeout,
+                    cookie,
+                    packetCount,
+                    byteCount,
+                    actions
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowStatsEntry.Builder {
+        // OF message fields
+        private boolean tableIdSet;
+        private TableId tableId;
+        private boolean matchSet;
+        private Match match;
+        private boolean durationSecSet;
+        private long durationSec;
+        private boolean durationNsecSet;
+        private long durationNsec;
+        private boolean prioritySet;
+        private int priority;
+        private boolean idleTimeoutSet;
+        private int idleTimeout;
+        private boolean hardTimeoutSet;
+        private int hardTimeout;
+        private boolean cookieSet;
+        private U64 cookie;
+        private boolean packetCountSet;
+        private U64 packetCount;
+        private boolean byteCountSet;
+        private U64 byteCount;
+        private boolean actionsSet;
+        private List<OFAction> actions;
+
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setTableId(TableId tableId) {
+        this.tableId = tableId;
+        this.tableIdSet = true;
+        return this;
+    }
+    @Override
+    public long getDurationSec() {
+        return durationSec;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setDurationSec(long durationSec) {
+        this.durationSec = durationSec;
+        this.durationSecSet = true;
+        return this;
+    }
+    @Override
+    public long getDurationNsec() {
+        return durationNsec;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setDurationNsec(long durationNsec) {
+        this.durationNsec = durationNsec;
+        this.durationNsecSet = true;
+        return this;
+    }
+    @Override
+    public int getPriority() {
+        return priority;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setPriority(int priority) {
+        this.priority = priority;
+        this.prioritySet = true;
+        return this;
+    }
+    @Override
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setIdleTimeout(int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        this.idleTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public int getHardTimeout() {
+        return hardTimeout;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setHardTimeout(int hardTimeout) {
+        this.hardTimeout = hardTimeout;
+        this.hardTimeoutSet = true;
+        return this;
+    }
+    @Override
+    public U64 getCookie() {
+        return cookie;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setCookie(U64 cookie) {
+        this.cookie = cookie;
+        this.cookieSet = true;
+        return this;
+    }
+    @Override
+    public U64 getPacketCount() {
+        return packetCount;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setPacketCount(U64 packetCount) {
+        this.packetCount = packetCount;
+        this.packetCountSet = true;
+        return this;
+    }
+    @Override
+    public U64 getByteCount() {
+        return byteCount;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setByteCount(U64 byteCount) {
+        this.byteCount = byteCount;
+        this.byteCountSet = true;
+        return this;
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+    @Override
+    public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+    }
+    @Override
+    public List<OFAction> getActions() {
+        return actions;
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setActions(List<OFAction> actions) {
+        this.actions = actions;
+        this.actionsSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFFlowModFlags> getFlags()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property flags not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsEntry.Builder setFlags(Set<OFFlowModFlags> flags) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property flags not supported in version 1.0");
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+//
+        @Override
+        public OFFlowStatsEntry build() {
+            TableId tableId = this.tableIdSet ? this.tableId : DEFAULT_TABLE_ID;
+            if(tableId == null)
+                throw new NullPointerException("Property tableId must not be null");
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            long durationSec = this.durationSecSet ? this.durationSec : DEFAULT_DURATION_SEC;
+            long durationNsec = this.durationNsecSet ? this.durationNsec : DEFAULT_DURATION_NSEC;
+            int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+            int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+            int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+            U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+            if(cookie == null)
+                throw new NullPointerException("Property cookie must not be null");
+            U64 packetCount = this.packetCountSet ? this.packetCount : DEFAULT_PACKET_COUNT;
+            if(packetCount == null)
+                throw new NullPointerException("Property packetCount must not be null");
+            U64 byteCount = this.byteCountSet ? this.byteCount : DEFAULT_BYTE_COUNT;
+            if(byteCount == null)
+                throw new NullPointerException("Property byteCount must not be null");
+            List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+            if(actions == null)
+                throw new NullPointerException("Property actions must not be null");
+
+
+            return new OFFlowStatsEntryVer10(
+                    tableId,
+                    match,
+                    durationSec,
+                    durationNsec,
+                    priority,
+                    idleTimeout,
+                    hardTimeout,
+                    cookie,
+                    packetCount,
+                    byteCount,
+                    actions
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowStatsEntry> {
+        @Override
+        public OFFlowStatsEntry readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            TableId tableId = TableId.readByte(bb);
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            long durationSec = U32.f(bb.readInt());
+            long durationNsec = U32.f(bb.readInt());
+            int priority = U16.f(bb.readShort());
+            int idleTimeout = U16.f(bb.readShort());
+            int hardTimeout = U16.f(bb.readShort());
+            // pad: 6 bytes
+            bb.skipBytes(6);
+            U64 cookie = U64.ofRaw(bb.readLong());
+            U64 packetCount = U64.ofRaw(bb.readLong());
+            U64 byteCount = U64.ofRaw(bb.readLong());
+            List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+            OFFlowStatsEntryVer10 flowStatsEntryVer10 = new OFFlowStatsEntryVer10(
+                    tableId,
+                      match,
+                      durationSec,
+                      durationNsec,
+                      priority,
+                      idleTimeout,
+                      hardTimeout,
+                      cookie,
+                      packetCount,
+                      byteCount,
+                      actions
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowStatsEntryVer10);
+            return flowStatsEntryVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowStatsEntryVer10Funnel FUNNEL = new OFFlowStatsEntryVer10Funnel();
+    static class OFFlowStatsEntryVer10Funnel implements Funnel<OFFlowStatsEntryVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowStatsEntryVer10 message, PrimitiveSink sink) {
+            // FIXME: skip funnel of length
+            message.tableId.putTo(sink);
+            // skip pad (1 bytes)
+            message.match.putTo(sink);
+            sink.putLong(message.durationSec);
+            sink.putLong(message.durationNsec);
+            sink.putInt(message.priority);
+            sink.putInt(message.idleTimeout);
+            sink.putInt(message.hardTimeout);
+            // skip pad (6 bytes)
+            message.cookie.putTo(sink);
+            message.packetCount.putTo(sink);
+            message.byteCount.putTo(sink);
+            FunnelUtils.putList(message.actions, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowStatsEntryVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowStatsEntryVer10 message) {
+            int startIndex = bb.writerIndex();
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            message.tableId.writeByte(bb);
+            // pad: 1 bytes
+            bb.writeZero(1);
+            message.match.writeTo(bb);
+            bb.writeInt(U32.t(message.durationSec));
+            bb.writeInt(U32.t(message.durationNsec));
+            bb.writeShort(U16.t(message.priority));
+            bb.writeShort(U16.t(message.idleTimeout));
+            bb.writeShort(U16.t(message.hardTimeout));
+            // pad: 6 bytes
+            bb.writeZero(6);
+            bb.writeLong(message.cookie.getValue());
+            bb.writeLong(message.packetCount.getValue());
+            bb.writeLong(message.byteCount.getValue());
+            ChannelUtils.writeList(bb, message.actions);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowStatsEntryVer10(");
+        b.append("tableId=").append(tableId);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("durationSec=").append(durationSec);
+        b.append(", ");
+        b.append("durationNsec=").append(durationNsec);
+        b.append(", ");
+        b.append("priority=").append(priority);
+        b.append(", ");
+        b.append("idleTimeout=").append(idleTimeout);
+        b.append(", ");
+        b.append("hardTimeout=").append(hardTimeout);
+        b.append(", ");
+        b.append("cookie=").append(cookie);
+        b.append(", ");
+        b.append("packetCount=").append(packetCount);
+        b.append(", ");
+        b.append("byteCount=").append(byteCount);
+        b.append(", ");
+        b.append("actions=").append(actions);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowStatsEntryVer10 other = (OFFlowStatsEntryVer10) obj;
+
+        if (tableId == null) {
+            if (other.tableId != null)
+                return false;
+        } else if (!tableId.equals(other.tableId))
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if( durationSec != other.durationSec)
+            return false;
+        if( durationNsec != other.durationNsec)
+            return false;
+        if( priority != other.priority)
+            return false;
+        if( idleTimeout != other.idleTimeout)
+            return false;
+        if( hardTimeout != other.hardTimeout)
+            return false;
+        if (cookie == null) {
+            if (other.cookie != null)
+                return false;
+        } else if (!cookie.equals(other.cookie))
+            return false;
+        if (packetCount == null) {
+            if (other.packetCount != null)
+                return false;
+        } else if (!packetCount.equals(other.packetCount))
+            return false;
+        if (byteCount == null) {
+            if (other.byteCount != null)
+                return false;
+        } else if (!byteCount.equals(other.byteCount))
+            return false;
+        if (actions == null) {
+            if (other.actions != null)
+                return false;
+        } else if (!actions.equals(other.actions))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime * result + ((tableId == null) ? 0 : tableId.hashCode());
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime *  (int) (durationSec ^ (durationSec >>> 32));
+        result = prime *  (int) (durationNsec ^ (durationNsec >>> 32));
+        result = prime * result + priority;
+        result = prime * result + idleTimeout;
+        result = prime * result + hardTimeout;
+        result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+        result = prime * result + ((packetCount == null) ? 0 : packetCount.hashCode());
+        result = prime * result + ((byteCount == null) ? 0 : byteCount.hashCode());
+        result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsReplyVer10.java
new file mode 100644
index 0000000..2b33174
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsReplyVer10.java
@@ -0,0 +1,407 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowStatsReplyVer10 implements OFFlowStatsReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowStatsReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 12;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Set<OFStatsReplyFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsReplyFlags>of();
+        private final static List<OFFlowStatsEntry> DEFAULT_ENTRIES = ImmutableList.<OFFlowStatsEntry>of();
+
+    // OF message fields
+    private final long xid;
+    private final Set<OFStatsReplyFlags> flags;
+    private final List<OFFlowStatsEntry> entries;
+//
+    // Immutable default instance
+    final static OFFlowStatsReplyVer10 DEFAULT = new OFFlowStatsReplyVer10(
+        DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_ENTRIES
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowStatsReplyVer10(long xid, Set<OFStatsReplyFlags> flags, List<OFFlowStatsEntry> entries) {
+        this.xid = xid;
+        this.flags = flags;
+        this.entries = entries;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.FLOW;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public List<OFFlowStatsEntry> getEntries() {
+        return entries;
+    }
+
+
+
+    public OFFlowStatsReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowStatsReply.Builder {
+        final OFFlowStatsReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsReplyFlags> flags;
+        private boolean entriesSet;
+        private List<OFFlowStatsEntry> entries;
+
+        BuilderWithParent(OFFlowStatsReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowStatsReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.FLOW;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public List<OFFlowStatsEntry> getEntries() {
+        return entries;
+    }
+
+    @Override
+    public OFFlowStatsReply.Builder setEntries(List<OFFlowStatsEntry> entries) {
+        this.entries = entries;
+        this.entriesSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowStatsReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                List<OFFlowStatsEntry> entries = this.entriesSet ? this.entries : parentMessage.entries;
+                if(entries == null)
+                    throw new NullPointerException("Property entries must not be null");
+
+                //
+                return new OFFlowStatsReplyVer10(
+                    xid,
+                    flags,
+                    entries
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowStatsReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsReplyFlags> flags;
+        private boolean entriesSet;
+        private List<OFFlowStatsEntry> entries;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowStatsReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.FLOW;
+    }
+
+    @Override
+    public Set<OFStatsReplyFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public List<OFFlowStatsEntry> getEntries() {
+        return entries;
+    }
+
+    @Override
+    public OFFlowStatsReply.Builder setEntries(List<OFFlowStatsEntry> entries) {
+        this.entries = entries;
+        this.entriesSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowStatsReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            List<OFFlowStatsEntry> entries = this.entriesSet ? this.entries : DEFAULT_ENTRIES;
+            if(entries == null)
+                throw new NullPointerException("Property entries must not be null");
+
+
+            return new OFFlowStatsReplyVer10(
+                    xid,
+                    flags,
+                    entries
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowStatsReply> {
+        @Override
+        public OFFlowStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 17
+            byte type = bb.readByte();
+            if(type != (byte) 0x11)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(17), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property statsType == 1
+            short statsType = bb.readShort();
+            if(statsType != (short) 0x1)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.FLOW(1), got="+statsType);
+            Set<OFStatsReplyFlags> flags = OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+            List<OFFlowStatsEntry> entries = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFFlowStatsEntryVer10.READER);
+
+            OFFlowStatsReplyVer10 flowStatsReplyVer10 = new OFFlowStatsReplyVer10(
+                    xid,
+                      flags,
+                      entries
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowStatsReplyVer10);
+            return flowStatsReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowStatsReplyVer10Funnel FUNNEL = new OFFlowStatsReplyVer10Funnel();
+    static class OFFlowStatsReplyVer10Funnel implements Funnel<OFFlowStatsReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowStatsReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 17
+            sink.putByte((byte) 0x11);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property statsType = 1
+            sink.putShort((short) 0x1);
+            OFStatsReplyFlagsSerializerVer10.putTo(message.flags, sink);
+            FunnelUtils.putList(message.entries, sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowStatsReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowStatsReplyVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 17
+            bb.writeByte((byte) 0x11);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property statsType = 1
+            bb.writeShort((short) 0x1);
+            OFStatsReplyFlagsSerializerVer10.writeTo(bb, message.flags);
+            ChannelUtils.writeList(bb, message.entries);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowStatsReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("entries=").append(entries);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowStatsReplyVer10 other = (OFFlowStatsReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (entries == null) {
+            if (other.entries != null)
+                return false;
+        } else if (!entries.equals(other.entries))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((entries == null) ? 0 : entries.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsRequestVer10.java
new file mode 100644
index 0000000..6672997
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowStatsRequestVer10.java
@@ -0,0 +1,582 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowStatsRequestVer10 implements OFFlowStatsRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFFlowStatsRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 56;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Set<OFStatsRequestFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsRequestFlags>of();
+        private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+        private final static TableId DEFAULT_TABLE_ID = TableId.ALL;
+        private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+
+    // OF message fields
+    private final long xid;
+    private final Set<OFStatsRequestFlags> flags;
+    private final Match match;
+    private final TableId tableId;
+    private final OFPort outPort;
+//
+    // Immutable default instance
+    final static OFFlowStatsRequestVer10 DEFAULT = new OFFlowStatsRequestVer10(
+        DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_MATCH, DEFAULT_TABLE_ID, DEFAULT_OUT_PORT
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFFlowStatsRequestVer10(long xid, Set<OFStatsRequestFlags> flags, Match match, TableId tableId, OFPort outPort) {
+        this.xid = xid;
+        this.flags = flags;
+        this.match = match;
+        this.tableId = tableId;
+        this.outPort = outPort;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.FLOW;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public U64 getCookie()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+
+
+    public OFFlowStatsRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFFlowStatsRequest.Builder {
+        final OFFlowStatsRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsRequestFlags> flags;
+        private boolean matchSet;
+        private Match match;
+        private boolean tableIdSet;
+        private TableId tableId;
+        private boolean outPortSet;
+        private OFPort outPort;
+
+        BuilderWithParent(OFFlowStatsRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.FLOW;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setTableId(TableId tableId) {
+        this.tableId = tableId;
+        this.tableIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookie()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setCookie(U64 cookie) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFFlowStatsRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                Match match = this.matchSet ? this.match : parentMessage.match;
+                if(match == null)
+                    throw new NullPointerException("Property match must not be null");
+                TableId tableId = this.tableIdSet ? this.tableId : parentMessage.tableId;
+                if(tableId == null)
+                    throw new NullPointerException("Property tableId must not be null");
+                OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+                if(outPort == null)
+                    throw new NullPointerException("Property outPort must not be null");
+
+                //
+                return new OFFlowStatsRequestVer10(
+                    xid,
+                    flags,
+                    match,
+                    tableId,
+                    outPort
+                );
+        }
+
+    }
+
+    static class Builder implements OFFlowStatsRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFStatsRequestFlags> flags;
+        private boolean matchSet;
+        private Match match;
+        private boolean tableIdSet;
+        private TableId tableId;
+        private boolean outPortSet;
+        private OFPort outPort;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.STATS_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFStatsType getStatsType() {
+        return OFStatsType.FLOW;
+    }
+
+    @Override
+    public Set<OFStatsRequestFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public TableId getTableId() {
+        return tableId;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setTableId(TableId tableId) {
+        this.tableId = tableId;
+        this.tableIdSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getOutPort() {
+        return outPort;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setOutPort(OFPort outPort) {
+        this.outPort = outPort;
+        this.outPortSet = true;
+        return this;
+    }
+    @Override
+    public OFGroup getOutGroup()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookie()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setCookie(U64 cookie) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+    }
+    @Override
+    public U64 getCookieMask()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+    }
+    @Override
+    public Match getMatch() {
+        return match;
+    }
+
+    @Override
+    public OFFlowStatsRequest.Builder setMatch(Match match) {
+        this.match = match;
+        this.matchSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFFlowStatsRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+            if(match == null)
+                throw new NullPointerException("Property match must not be null");
+            TableId tableId = this.tableIdSet ? this.tableId : DEFAULT_TABLE_ID;
+            if(tableId == null)
+                throw new NullPointerException("Property tableId must not be null");
+            OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+            if(outPort == null)
+                throw new NullPointerException("Property outPort must not be null");
+
+
+            return new OFFlowStatsRequestVer10(
+                    xid,
+                    flags,
+                    match,
+                    tableId,
+                    outPort
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFFlowStatsRequest> {
+        @Override
+        public OFFlowStatsRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 16
+            byte type = bb.readByte();
+            if(type != (byte) 0x10)
+                throw new OFParseError("Wrong type: Expected=OFType.STATS_REQUEST(16), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 56)
+                throw new OFParseError("Wrong length: Expected=56(56), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property statsType == 1
+            short statsType = bb.readShort();
+            if(statsType != (short) 0x1)
+                throw new OFParseError("Wrong statsType: Expected=OFStatsType.FLOW(1), got="+statsType);
+            Set<OFStatsRequestFlags> flags = OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+            Match match = ChannelUtilsVer10.readOFMatch(bb);
+            TableId tableId = TableId.readByte(bb);
+            // pad: 1 bytes
+            bb.skipBytes(1);
+            OFPort outPort = OFPort.read2Bytes(bb);
+
+            OFFlowStatsRequestVer10 flowStatsRequestVer10 = new OFFlowStatsRequestVer10(
+                    xid,
+                      flags,
+                      match,
+                      tableId,
+                      outPort
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", flowStatsRequestVer10);
+            return flowStatsRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFFlowStatsRequestVer10Funnel FUNNEL = new OFFlowStatsRequestVer10Funnel();
+    static class OFFlowStatsRequestVer10Funnel implements Funnel<OFFlowStatsRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFFlowStatsRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 16
+            sink.putByte((byte) 0x10);
+            // fixed value property length = 56
+            sink.putShort((short) 0x38);
+            sink.putLong(message.xid);
+            // fixed value property statsType = 1
+            sink.putShort((short) 0x1);
+            OFStatsRequestFlagsSerializerVer10.putTo(message.flags, sink);
+            message.match.putTo(sink);
+            message.tableId.putTo(sink);
+            // skip pad (1 bytes)
+            message.outPort.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFFlowStatsRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFFlowStatsRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 16
+            bb.writeByte((byte) 0x10);
+            // fixed value property length = 56
+            bb.writeShort((short) 0x38);
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property statsType = 1
+            bb.writeShort((short) 0x1);
+            OFStatsRequestFlagsSerializerVer10.writeTo(bb, message.flags);
+            message.match.writeTo(bb);
+            message.tableId.writeByte(bb);
+            // pad: 1 bytes
+            bb.writeZero(1);
+            message.outPort.write2Bytes(bb);
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFFlowStatsRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("match=").append(match);
+        b.append(", ");
+        b.append("tableId=").append(tableId);
+        b.append(", ");
+        b.append("outPort=").append(outPort);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFFlowStatsRequestVer10 other = (OFFlowStatsRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if (match == null) {
+            if (other.match != null)
+                return false;
+        } else if (!match.equals(other.match))
+            return false;
+        if (tableId == null) {
+            if (other.tableId != null)
+                return false;
+        } else if (!tableId.equals(other.tableId))
+            return false;
+        if (outPort == null) {
+            if (other.outPort != null)
+                return false;
+        } else if (!outPort.equals(other.outPort))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + ((match == null) ? 0 : match.hashCode());
+        result = prime * result + ((tableId == null) ? 0 : tableId.hashCode());
+        result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowWildcardsSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowWildcardsSerializerVer10.java
new file mode 100644
index 0000000..f512fe7
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowWildcardsSerializerVer10.java
@@ -0,0 +1,162 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowWildcards;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFFlowWildcardsSerializerVer10 {
+
+    public final static int IN_PORT_VAL = 0x1;
+    public final static int DL_VLAN_VAL = 0x2;
+    public final static int DL_SRC_VAL = 0x4;
+    public final static int DL_DST_VAL = 0x8;
+    public final static int DL_TYPE_VAL = 0x10;
+    public final static int NW_PROTO_VAL = 0x20;
+    public final static int TP_SRC_VAL = 0x40;
+    public final static int TP_DST_VAL = 0x80;
+    public final static int NW_SRC_ALL_VAL = 0x2000;
+    public final static int NW_SRC_MASK_VAL = 0x3f00;
+    public final static int NW_DST_ALL_VAL = 0x80000;
+    public final static int NW_DST_MASK_VAL = 0xfc000;
+    public final static int DL_VLAN_PCP_VAL = 0x100000;
+    public final static int NW_TOS_VAL = 0x200000;
+    public final static int ALL_VAL = 0x3fffff;
+
+    public static Set<OFFlowWildcards> readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readInt());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, Set<OFFlowWildcards> set) {
+        bb.writeInt(toWireValue(set));
+    }
+
+    public static void putTo(Set<OFFlowWildcards> set, PrimitiveSink sink) {
+        sink.putInt(toWireValue(set));
+    }
+
+
+    public static Set<OFFlowWildcards> ofWireValue(int val) {
+        EnumSet<OFFlowWildcards> set = EnumSet.noneOf(OFFlowWildcards.class);
+
+        if((val & IN_PORT_VAL) != 0)
+            set.add(OFFlowWildcards.IN_PORT);
+        if((val & DL_VLAN_VAL) != 0)
+            set.add(OFFlowWildcards.DL_VLAN);
+        if((val & DL_SRC_VAL) != 0)
+            set.add(OFFlowWildcards.DL_SRC);
+        if((val & DL_DST_VAL) != 0)
+            set.add(OFFlowWildcards.DL_DST);
+        if((val & DL_TYPE_VAL) != 0)
+            set.add(OFFlowWildcards.DL_TYPE);
+        if((val & NW_PROTO_VAL) != 0)
+            set.add(OFFlowWildcards.NW_PROTO);
+        if((val & TP_SRC_VAL) != 0)
+            set.add(OFFlowWildcards.TP_SRC);
+        if((val & TP_DST_VAL) != 0)
+            set.add(OFFlowWildcards.TP_DST);
+        if((val & NW_SRC_ALL_VAL) != 0)
+            set.add(OFFlowWildcards.NW_SRC_ALL);
+        if((val & NW_SRC_MASK_VAL) != 0)
+            set.add(OFFlowWildcards.NW_SRC_MASK);
+        if((val & NW_DST_ALL_VAL) != 0)
+            set.add(OFFlowWildcards.NW_DST_ALL);
+        if((val & NW_DST_MASK_VAL) != 0)
+            set.add(OFFlowWildcards.NW_DST_MASK);
+        if((val & DL_VLAN_PCP_VAL) != 0)
+            set.add(OFFlowWildcards.DL_VLAN_PCP);
+        if((val & NW_TOS_VAL) != 0)
+            set.add(OFFlowWildcards.NW_TOS);
+        if((val & ALL_VAL) != 0)
+            set.add(OFFlowWildcards.ALL);
+        return Collections.unmodifiableSet(set);
+    }
+
+    public static int toWireValue(Set<OFFlowWildcards> set) {
+        int wireValue = 0;
+
+        for(OFFlowWildcards e: set) {
+            switch(e) {
+                case IN_PORT:
+                    wireValue |= IN_PORT_VAL;
+                    break;
+                case DL_VLAN:
+                    wireValue |= DL_VLAN_VAL;
+                    break;
+                case DL_SRC:
+                    wireValue |= DL_SRC_VAL;
+                    break;
+                case DL_DST:
+                    wireValue |= DL_DST_VAL;
+                    break;
+                case DL_TYPE:
+                    wireValue |= DL_TYPE_VAL;
+                    break;
+                case NW_PROTO:
+                    wireValue |= NW_PROTO_VAL;
+                    break;
+                case TP_SRC:
+                    wireValue |= TP_SRC_VAL;
+                    break;
+                case TP_DST:
+                    wireValue |= TP_DST_VAL;
+                    break;
+                case NW_SRC_ALL:
+                    wireValue |= NW_SRC_ALL_VAL;
+                    break;
+                case NW_SRC_MASK:
+                    wireValue |= NW_SRC_MASK_VAL;
+                    break;
+                case NW_DST_ALL:
+                    wireValue |= NW_DST_ALL_VAL;
+                    break;
+                case NW_DST_MASK:
+                    wireValue |= NW_DST_MASK_VAL;
+                    break;
+                case DL_VLAN_PCP:
+                    wireValue |= DL_VLAN_PCP_VAL;
+                    break;
+                case NW_TOS:
+                    wireValue |= NW_TOS_VAL;
+                    break;
+                case ALL:
+                    wireValue |= ALL_VAL;
+                    break;
+                default:
+                    throw new IllegalArgumentException("Illegal enum value for type OFFlowWildcards in version 1.0: " + e);
+            }
+        }
+        return wireValue;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFGetConfigReplyVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFGetConfigReplyVer10.java
new file mode 100644
index 0000000..5b744c6
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFGetConfigReplyVer10.java
@@ -0,0 +1,370 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFGetConfigReplyVer10 implements OFGetConfigReply {
+    private static final Logger logger = LoggerFactory.getLogger(OFGetConfigReplyVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 12;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static Set<OFConfigFlags> DEFAULT_FLAGS = ImmutableSet.<OFConfigFlags>of();
+        private final static int DEFAULT_MISS_SEND_LEN = 0x0;
+
+    // OF message fields
+    private final long xid;
+    private final Set<OFConfigFlags> flags;
+    private final int missSendLen;
+//
+    // Immutable default instance
+    final static OFGetConfigReplyVer10 DEFAULT = new OFGetConfigReplyVer10(
+        DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_MISS_SEND_LEN
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFGetConfigReplyVer10(long xid, Set<OFConfigFlags> flags, int missSendLen) {
+        this.xid = xid;
+        this.flags = flags;
+        this.missSendLen = missSendLen;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.GET_CONFIG_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public Set<OFConfigFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public int getMissSendLen() {
+        return missSendLen;
+    }
+
+
+
+    public OFGetConfigReply.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFGetConfigReply.Builder {
+        final OFGetConfigReplyVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFConfigFlags> flags;
+        private boolean missSendLenSet;
+        private int missSendLen;
+
+        BuilderWithParent(OFGetConfigReplyVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.GET_CONFIG_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFGetConfigReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFConfigFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFGetConfigReply.Builder setFlags(Set<OFConfigFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public int getMissSendLen() {
+        return missSendLen;
+    }
+
+    @Override
+    public OFGetConfigReply.Builder setMissSendLen(int missSendLen) {
+        this.missSendLen = missSendLen;
+        this.missSendLenSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFGetConfigReply build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                Set<OFConfigFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+                if(flags == null)
+                    throw new NullPointerException("Property flags must not be null");
+                int missSendLen = this.missSendLenSet ? this.missSendLen : parentMessage.missSendLen;
+
+                //
+                return new OFGetConfigReplyVer10(
+                    xid,
+                    flags,
+                    missSendLen
+                );
+        }
+
+    }
+
+    static class Builder implements OFGetConfigReply.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean flagsSet;
+        private Set<OFConfigFlags> flags;
+        private boolean missSendLenSet;
+        private int missSendLen;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.GET_CONFIG_REPLY;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFGetConfigReply.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public Set<OFConfigFlags> getFlags() {
+        return flags;
+    }
+
+    @Override
+    public OFGetConfigReply.Builder setFlags(Set<OFConfigFlags> flags) {
+        this.flags = flags;
+        this.flagsSet = true;
+        return this;
+    }
+    @Override
+    public int getMissSendLen() {
+        return missSendLen;
+    }
+
+    @Override
+    public OFGetConfigReply.Builder setMissSendLen(int missSendLen) {
+        this.missSendLen = missSendLen;
+        this.missSendLenSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFGetConfigReply build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            Set<OFConfigFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+            if(flags == null)
+                throw new NullPointerException("Property flags must not be null");
+            int missSendLen = this.missSendLenSet ? this.missSendLen : DEFAULT_MISS_SEND_LEN;
+
+
+            return new OFGetConfigReplyVer10(
+                    xid,
+                    flags,
+                    missSendLen
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFGetConfigReply> {
+        @Override
+        public OFGetConfigReply readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 8
+            byte type = bb.readByte();
+            if(type != (byte) 0x8)
+                throw new OFParseError("Wrong type: Expected=OFType.GET_CONFIG_REPLY(8), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 12)
+                throw new OFParseError("Wrong length: Expected=12(12), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            Set<OFConfigFlags> flags = OFConfigFlagsSerializerVer10.readFrom(bb);
+            int missSendLen = U16.f(bb.readShort());
+
+            OFGetConfigReplyVer10 getConfigReplyVer10 = new OFGetConfigReplyVer10(
+                    xid,
+                      flags,
+                      missSendLen
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", getConfigReplyVer10);
+            return getConfigReplyVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFGetConfigReplyVer10Funnel FUNNEL = new OFGetConfigReplyVer10Funnel();
+    static class OFGetConfigReplyVer10Funnel implements Funnel<OFGetConfigReplyVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFGetConfigReplyVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 8
+            sink.putByte((byte) 0x8);
+            // fixed value property length = 12
+            sink.putShort((short) 0xc);
+            sink.putLong(message.xid);
+            OFConfigFlagsSerializerVer10.putTo(message.flags, sink);
+            sink.putInt(message.missSendLen);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFGetConfigReplyVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFGetConfigReplyVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 8
+            bb.writeByte((byte) 0x8);
+            // fixed value property length = 12
+            bb.writeShort((short) 0xc);
+            bb.writeInt(U32.t(message.xid));
+            OFConfigFlagsSerializerVer10.writeTo(bb, message.flags);
+            bb.writeShort(U16.t(message.missSendLen));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFGetConfigReplyVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("flags=").append(flags);
+        b.append(", ");
+        b.append("missSendLen=").append(missSendLen);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFGetConfigReplyVer10 other = (OFGetConfigReplyVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (flags == null) {
+            if (other.flags != null)
+                return false;
+        } else if (!flags.equals(other.flags))
+            return false;
+        if( missSendLen != other.missSendLen)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+        result = prime * result + missSendLen;
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFGetConfigRequestVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFGetConfigRequestVer10.java
new file mode 100644
index 0000000..d34ecd2
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFGetConfigRequestVer10.java
@@ -0,0 +1,268 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFGetConfigRequestVer10 implements OFGetConfigRequest {
+    private static final Logger logger = LoggerFactory.getLogger(OFGetConfigRequestVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFGetConfigRequestVer10 DEFAULT = new OFGetConfigRequestVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFGetConfigRequestVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.GET_CONFIG_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+
+
+    public OFGetConfigRequest.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFGetConfigRequest.Builder {
+        final OFGetConfigRequestVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFGetConfigRequestVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.GET_CONFIG_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFGetConfigRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFGetConfigRequest build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFGetConfigRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFGetConfigRequest.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.GET_CONFIG_REQUEST;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFGetConfigRequest.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFGetConfigRequest build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFGetConfigRequestVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFGetConfigRequest> {
+        @Override
+        public OFGetConfigRequest readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 7
+            byte type = bb.readByte();
+            if(type != (byte) 0x7)
+                throw new OFParseError("Wrong type: Expected=OFType.GET_CONFIG_REQUEST(7), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+
+            OFGetConfigRequestVer10 getConfigRequestVer10 = new OFGetConfigRequestVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", getConfigRequestVer10);
+            return getConfigRequestVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFGetConfigRequestVer10Funnel FUNNEL = new OFGetConfigRequestVer10Funnel();
+    static class OFGetConfigRequestVer10Funnel implements Funnel<OFGetConfigRequestVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFGetConfigRequestVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 7
+            sink.putByte((byte) 0x7);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            sink.putLong(message.xid);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFGetConfigRequestVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFGetConfigRequestVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 7
+            bb.writeByte((byte) 0x7);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            bb.writeInt(U32.t(message.xid));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFGetConfigRequestVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFGetConfigRequestVer10 other = (OFGetConfigRequestVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloFailedCodeSerializerVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloFailedCodeSerializerVer10.java
new file mode 100644
index 0000000..05611bb
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloFailedCodeSerializerVer10.java
@@ -0,0 +1,74 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFHelloFailedCode;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFHelloFailedCodeSerializerVer10 {
+
+    public final static short INCOMPATIBLE_VAL = (short) 0x0;
+    public final static short EPERM_VAL = (short) 0x1;
+
+    public static OFHelloFailedCode readFrom(ChannelBuffer bb) throws OFParseError {
+        try {
+            return ofWireValue(bb.readShort());
+        } catch (IllegalArgumentException e) {
+            throw new OFParseError(e);
+        }
+    }
+
+    public static void writeTo(ChannelBuffer bb, OFHelloFailedCode e) {
+        bb.writeShort(toWireValue(e));
+    }
+
+    public static void putTo(OFHelloFailedCode e, PrimitiveSink sink) {
+        sink.putShort(toWireValue(e));
+    }
+
+    public static OFHelloFailedCode ofWireValue(short val) {
+        switch(val) {
+            case INCOMPATIBLE_VAL:
+                return OFHelloFailedCode.INCOMPATIBLE;
+            case EPERM_VAL:
+                return OFHelloFailedCode.EPERM;
+            default:
+                throw new IllegalArgumentException("Illegal wire value for type OFHelloFailedCode in version 1.0: " + val);
+        }
+    }
+
+
+    public static short toWireValue(OFHelloFailedCode e) {
+        switch(e) {
+            case INCOMPATIBLE:
+                return INCOMPATIBLE_VAL;
+            case EPERM:
+                return EPERM_VAL;
+            default:
+                throw new IllegalArgumentException("Illegal enum value for type OFHelloFailedCode in version 1.0: " + e);
+        }
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloFailedErrorMsgVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloFailedErrorMsgVer10.java
new file mode 100644
index 0000000..b24d497
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloFailedErrorMsgVer10.java
@@ -0,0 +1,400 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFHelloFailedErrorMsgVer10 implements OFHelloFailedErrorMsg {
+    private static final Logger logger = LoggerFactory.getLogger(OFHelloFailedErrorMsgVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int MINIMUM_LENGTH = 12;
+
+        private final static long DEFAULT_XID = 0x0L;
+        private final static OFErrorCauseData DEFAULT_DATA = OFErrorCauseData.NONE;
+
+    // OF message fields
+    private final long xid;
+    private final OFHelloFailedCode code;
+    private final OFErrorCauseData data;
+//
+
+    // package private constructor - used by readers, builders, and factory
+    OFHelloFailedErrorMsgVer10(long xid, OFHelloFailedCode code, OFErrorCauseData data) {
+        this.xid = xid;
+        this.code = code;
+        this.data = data;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.HELLO_FAILED;
+    }
+
+    @Override
+    public OFHelloFailedCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+
+
+    public OFHelloFailedErrorMsg.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFHelloFailedErrorMsg.Builder {
+        final OFHelloFailedErrorMsgVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFHelloFailedCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+        BuilderWithParent(OFHelloFailedErrorMsgVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFHelloFailedErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.HELLO_FAILED;
+    }
+
+    @Override
+    public OFHelloFailedCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFHelloFailedErrorMsg.Builder setCode(OFHelloFailedCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFHelloFailedErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+
+
+        @Override
+        public OFHelloFailedErrorMsg build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+                OFHelloFailedCode code = this.codeSet ? this.code : parentMessage.code;
+                if(code == null)
+                    throw new NullPointerException("Property code must not be null");
+                OFErrorCauseData data = this.dataSet ? this.data : parentMessage.data;
+                if(data == null)
+                    throw new NullPointerException("Property data must not be null");
+
+                //
+                return new OFHelloFailedErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+    static class Builder implements OFHelloFailedErrorMsg.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+        private boolean codeSet;
+        private OFHelloFailedCode code;
+        private boolean dataSet;
+        private OFErrorCauseData data;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.ERROR;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFHelloFailedErrorMsg.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorType getErrType() {
+        return OFErrorType.HELLO_FAILED;
+    }
+
+    @Override
+    public OFHelloFailedCode getCode() {
+        return code;
+    }
+
+    @Override
+    public OFHelloFailedErrorMsg.Builder setCode(OFHelloFailedCode code) {
+        this.code = code;
+        this.codeSet = true;
+        return this;
+    }
+    @Override
+    public OFErrorCauseData getData() {
+        return data;
+    }
+
+    @Override
+    public OFHelloFailedErrorMsg.Builder setData(OFErrorCauseData data) {
+        this.data = data;
+        this.dataSet = true;
+        return this;
+    }
+//
+        @Override
+        public OFHelloFailedErrorMsg build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+            if(!this.codeSet)
+                throw new IllegalStateException("Property code doesn't have default value -- must be set");
+            if(code == null)
+                throw new NullPointerException("Property code must not be null");
+            OFErrorCauseData data = this.dataSet ? this.data : DEFAULT_DATA;
+            if(data == null)
+                throw new NullPointerException("Property data must not be null");
+
+
+            return new OFHelloFailedErrorMsgVer10(
+                    xid,
+                    code,
+                    data
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFHelloFailedErrorMsg> {
+        @Override
+        public OFHelloFailedErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 1
+            byte type = bb.readByte();
+            if(type != (byte) 0x1)
+                throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length < MINIMUM_LENGTH)
+                throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+            // fixed value property errType == 0
+            short errType = bb.readShort();
+            if(errType != (short) 0x0)
+                throw new OFParseError("Wrong errType: Expected=OFErrorType.HELLO_FAILED(0), got="+errType);
+            OFHelloFailedCode code = OFHelloFailedCodeSerializerVer10.readFrom(bb);
+            OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10);
+
+            OFHelloFailedErrorMsgVer10 helloFailedErrorMsgVer10 = new OFHelloFailedErrorMsgVer10(
+                    xid,
+                      code,
+                      data
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", helloFailedErrorMsgVer10);
+            return helloFailedErrorMsgVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFHelloFailedErrorMsgVer10Funnel FUNNEL = new OFHelloFailedErrorMsgVer10Funnel();
+    static class OFHelloFailedErrorMsgVer10Funnel implements Funnel<OFHelloFailedErrorMsgVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFHelloFailedErrorMsgVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 1
+            sink.putByte((byte) 0x1);
+            // FIXME: skip funnel of length
+            sink.putLong(message.xid);
+            // fixed value property errType = 0
+            sink.putShort((short) 0x0);
+            OFHelloFailedCodeSerializerVer10.putTo(message.code, sink);
+            message.data.putTo(sink);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFHelloFailedErrorMsgVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFHelloFailedErrorMsgVer10 message) {
+            int startIndex = bb.writerIndex();
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 1
+            bb.writeByte((byte) 0x1);
+            // length is length of variable message, will be updated at the end
+            int lengthIndex = bb.writerIndex();
+            bb.writeShort(U16.t(0));
+
+            bb.writeInt(U32.t(message.xid));
+            // fixed value property errType = 0
+            bb.writeShort((short) 0x0);
+            OFHelloFailedCodeSerializerVer10.writeTo(bb, message.code);
+            message.data.writeTo(bb);
+
+            // update length field
+            int length = bb.writerIndex() - startIndex;
+            bb.setShort(lengthIndex, length);
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFHelloFailedErrorMsgVer10(");
+        b.append("xid=").append(xid);
+        b.append(", ");
+        b.append("code=").append(code);
+        b.append(", ");
+        b.append("data=").append(data);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFHelloFailedErrorMsgVer10 other = (OFHelloFailedErrorMsgVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        if (code == null) {
+            if (other.code != null)
+                return false;
+        } else if (!code.equals(other.code))
+            return false;
+        if (data == null) {
+            if (other.data != null)
+                return false;
+        } else if (!data.equals(other.data))
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        result = prime * result + ((code == null) ? 0 : code.hashCode());
+        result = prime * result + ((data == null) ? 0 : data.hashCode());
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloVer10.java
new file mode 100644
index 0000000..d61e3b3
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFHelloVer10.java
@@ -0,0 +1,292 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFHelloVer10 implements OFHello {
+    private static final Logger logger = LoggerFactory.getLogger(OFHelloVer10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 8;
+
+        private final static long DEFAULT_XID = 0x0L;
+
+    // OF message fields
+    private final long xid;
+//
+    // Immutable default instance
+    final static OFHelloVer10 DEFAULT = new OFHelloVer10(
+        DEFAULT_XID
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFHelloVer10(long xid) {
+        this.xid = xid;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.HELLO;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public List<OFHelloElem> getElements()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property elements not supported in version 1.0");
+    }
+
+
+
+    public OFHello.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFHello.Builder {
+        final OFHelloVer10 parentMessage;
+
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+        BuilderWithParent(OFHelloVer10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.HELLO;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFHello.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public List<OFHelloElem> getElements()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property elements not supported in version 1.0");
+    }
+
+    @Override
+    public OFHello.Builder setElements(List<OFHelloElem> elements) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property elements not supported in version 1.0");
+    }
+
+
+        @Override
+        public OFHello build() {
+                long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+                //
+                return new OFHelloVer10(
+                    xid
+                );
+        }
+
+    }
+
+    static class Builder implements OFHello.Builder {
+        // OF message fields
+        private boolean xidSet;
+        private long xid;
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+    @Override
+    public OFType getType() {
+        return OFType.HELLO;
+    }
+
+    @Override
+    public long getXid() {
+        return xid;
+    }
+
+    @Override
+    public OFHello.Builder setXid(long xid) {
+        this.xid = xid;
+        this.xidSet = true;
+        return this;
+    }
+    @Override
+    public List<OFHelloElem> getElements()throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("Property elements not supported in version 1.0");
+    }
+
+    @Override
+    public OFHello.Builder setElements(List<OFHelloElem> elements) throws UnsupportedOperationException {
+            throw new UnsupportedOperationException("Property elements not supported in version 1.0");
+    }
+//
+        @Override
+        public OFHello build() {
+            long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+            return new OFHelloVer10(
+                    xid
+                );
+        }
+
+    }
+
+
+    final static Reader READER = new Reader();
+    static class Reader implements OFMessageReader<OFHello> {
+        @Override
+        public OFHello readFrom(ChannelBuffer bb) throws OFParseError {
+            int start = bb.readerIndex();
+            // fixed value property version == 1
+            byte version = bb.readByte();
+            if(version != (byte) 0x1)
+                throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+            // fixed value property type == 0
+            byte type = bb.readByte();
+            if(type != (byte) 0x0)
+                throw new OFParseError("Wrong type: Expected=OFType.HELLO(0), got="+type);
+            int length = U16.f(bb.readShort());
+            if(length != 8)
+                throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+            if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+                // Buffer does not have all data yet
+                bb.readerIndex(start);
+                return null;
+            }
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - length={}", length);
+            long xid = U32.f(bb.readInt());
+
+            OFHelloVer10 helloVer10 = new OFHelloVer10(
+                    xid
+                    );
+            if(logger.isTraceEnabled())
+                logger.trace("readFrom - read={}", helloVer10);
+            return helloVer10;
+        }
+    }
+
+    public void putTo(PrimitiveSink sink) {
+        FUNNEL.funnel(this, sink);
+    }
+
+    final static OFHelloVer10Funnel FUNNEL = new OFHelloVer10Funnel();
+    static class OFHelloVer10Funnel implements Funnel<OFHelloVer10> {
+        private static final long serialVersionUID = 1L;
+        @Override
+        public void funnel(OFHelloVer10 message, PrimitiveSink sink) {
+            // fixed value property version = 1
+            sink.putByte((byte) 0x1);
+            // fixed value property type = 0
+            sink.putByte((byte) 0x0);
+            // fixed value property length = 8
+            sink.putShort((short) 0x8);
+            sink.putLong(message.xid);
+        }
+    }
+
+
+    public void writeTo(ChannelBuffer bb) {
+        WRITER.write(bb, this);
+    }
+
+    final static Writer WRITER = new Writer();
+    static class Writer implements OFMessageWriter<OFHelloVer10> {
+        @Override
+        public void write(ChannelBuffer bb, OFHelloVer10 message) {
+            // fixed value property version = 1
+            bb.writeByte((byte) 0x1);
+            // fixed value property type = 0
+            bb.writeByte((byte) 0x0);
+            // fixed value property length = 8
+            bb.writeShort((short) 0x8);
+            bb.writeInt(U32.t(message.xid));
+
+
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("OFHelloVer10(");
+        b.append("xid=").append(xid);
+        b.append(")");
+        return b.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        OFHelloVer10 other = (OFHelloVer10) obj;
+
+        if( xid != other.xid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+
+        result = prime *  (int) (xid ^ (xid >>> 32));
+        return result;
+    }
+
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFInstructionIdsVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFInstructionIdsVer10.java
new file mode 100644
index 0000000..1eb5109
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFInstructionIdsVer10.java
@@ -0,0 +1,106 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+
+public class OFInstructionIdsVer10 implements OFInstructionIds {
+    public final static OFInstructionIdsVer10 INSTANCE = new OFInstructionIdsVer10();
+
+
+
+
+    public OFInstructionIdApplyActions applyActions() {
+        throw new UnsupportedOperationException("OFInstructionIdApplyActions not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnArpOffload bsnArpOffload() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnArpOffload not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnDeny bsnDeny() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnDeny not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnDhcpOffload bsnDhcpOffload() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnDhcpOffload not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnDisableSplitHorizonCheck bsnDisableSplitHorizonCheck() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnDisableSplitHorizonCheck not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnDisableSrcMacCheck bsnDisableSrcMacCheck() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnDisableSrcMacCheck not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnDisableVlanCounters bsnDisableVlanCounters() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnDisableVlanCounters not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnPacketOfDeath bsnPacketOfDeath() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnPacketOfDeath not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnPermit bsnPermit() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnPermit not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnPrioritizePdus bsnPrioritizePdus() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnPrioritizePdus not supported in version 1.0");
+    }
+
+    public OFInstructionIdBsnRequireVlanXlate bsnRequireVlanXlate() {
+        throw new UnsupportedOperationException("OFInstructionIdBsnRequireVlanXlate not supported in version 1.0");
+    }
+
+    public OFInstructionIdClearActions clearActions() {
+        throw new UnsupportedOperationException("OFInstructionIdClearActions not supported in version 1.0");
+    }
+
+    public OFInstructionIdGotoTable gotoTable() {
+        throw new UnsupportedOperationException("OFInstructionIdGotoTable not supported in version 1.0");
+    }
+
+    public OFInstructionIdMeter meter() {
+        throw new UnsupportedOperationException("OFInstructionIdMeter not supported in version 1.0");
+    }
+
+    public OFInstructionIdWriteActions writeActions() {
+        throw new UnsupportedOperationException("OFInstructionIdWriteActions not supported in version 1.0");
+    }
+
+    public OFInstructionIdWriteMetadata writeMetadata() {
+        throw new UnsupportedOperationException("OFInstructionIdWriteMetadata not supported in version 1.0");
+    }
+
+    public OFMessageReader<OFInstructionId> getReader() {
+        throw new UnsupportedOperationException("Reader<OFInstructionId> not supported in version 1.0");
+    }
+
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_10;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFInstructionsVer10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFInstructionsVer10.java
new file mode 100644
index 0000000..b1ea65d
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFInstructionsVer10.java
@@ -0,0 +1,122 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+
+
+public class OFInstructionsVer10 implements OFInstructions {
+    public final static OFInstructionsVer10 INSTANCE = new OFInstructionsVer10();
+
+
+
+
+    public OFInstructionApplyActions.Builder buildApplyActions() {
+        throw new UnsupportedOperationException("OFInstructionApplyActions not supported in version 1.0");
+    }
+    public OFInstructionApplyActions applyActions(List<OFAction> actions) {
+        throw new UnsupportedOperationException("OFInstructionApplyActions not supported in version 1.0");
+    }
+
+    public OFInstructionClearActions clearActions() {
+        throw new UnsupportedOperationException("OFInstructionClearActions not supported in version 1.0");
+    }
+
+    public OFInstructionGotoTable.Builder buildGotoTable() {
+        throw new UnsupportedOperationException("OFInstructionGotoTable not supported in version 1.0");
+    }
+    public OFInstructionGotoTable gotoTable(TableId tableId) {
+        throw new UnsupportedOperationException("OFInstructionGotoTable not supported in version 1.0");
+    }
+
+    public OFInstructionWriteActions.Builder buildWriteActions() {
+        throw new UnsupportedOperationException("OFInstructionWriteActions not supported in version 1.0");
+    }
+    public OFInstructionWriteActions writeActions(List<OFAction> actions) {
+        throw new UnsupportedOperationException("OFInstructionWriteActions not supported in version 1.0");
+    }
+
+    public OFInstructionWriteMetadata.Builder buildWriteMetadata() {
+        throw new UnsupportedOperationException("OFInstructionWriteMetadata not supported in version 1.0");
+    }
+    public OFInstructionWriteMetadata writeMetadata(U64 metadata, U64 metadataMask) {
+        throw new UnsupportedOperationException("OFInstructionWriteMetadata not supported in version 1.0");
+    }
+
+    public OFInstructionBsnArpOffload bsnArpOffload() {
+        throw new UnsupportedOperationException("OFInstructionBsnArpOffload not supported in version 1.0");
+    }
+
+    public OFInstructionBsnDeny bsnDeny() {
+        throw new UnsupportedOperationException("OFInstructionBsnDeny not supported in version 1.0");
+    }
+
+    public OFInstructionBsnDhcpOffload bsnDhcpOffload() {
+        throw new UnsupportedOperationException("OFInstructionBsnDhcpOffload not supported in version 1.0");
+    }
+
+    public OFInstructionBsnDisableSplitHorizonCheck bsnDisableSplitHorizonCheck() {
+        throw new UnsupportedOperationException("OFInstructionBsnDisableSplitHorizonCheck not supported in version 1.0");
+    }
+
+    public OFInstructionBsnDisableSrcMacCheck bsnDisableSrcMacCheck() {
+        throw new UnsupportedOperationException("OFInstructionBsnDisableSrcMacCheck not supported in version 1.0");
+    }
+
+    public OFInstructionBsnDisableVlanCounters bsnDisableVlanCounters() {
+        throw new UnsupportedOperationException("OFInstructionBsnDisableVlanCounters not supported in version 1.0");
+    }
+
+    public OFInstructionBsnPacketOfDeath bsnPacketOfDeath() {
+        throw new UnsupportedOperationException("OFInstructionBsnPacketOfDeath not supported in version 1.0");
+    }
+
+    public OFInstructionBsnPermit bsnPermit() {
+        throw new UnsupportedOperationException("OFInstructionBsnPermit not supported in version 1.0");
+    }
+
+    public OFInstructionBsnPrioritizePdus bsnPrioritizePdus() {
+        throw new UnsupportedOperationException("OFInstructionBsnPrioritizePdus not supported in version 1.0");
+    }
+
+    public OFInstructionBsnRequireVlanXlate bsnRequireVlanXlate() {
+        throw new UnsupportedOperationException("OFInstructionBsnRequireVlanXlate not supported in version 1.0");
+    }
+
+    public OFInstructionMeter.Builder buildMeter() {
+        throw new UnsupportedOperationException("OFInstructionMeter not supported in version 1.0");
+    }
+    public OFInstructionMeter meter(long meterId) {
+        throw new UnsupportedOperationException("OFInstructionMeter not supported in version 1.0");
+    }
+
+    public OFMessageReader<OFInstruction> getReader() {
+        throw new UnsupportedOperationException("Reader<OFInstruction> not supported in version 1.0");
+    }
+
+
+    public OFVersion getVersion() {
+            return OFVersion.OF_10;
+    }
+}
diff --git a/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFMatchV1Ver10.java b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFMatchV1Ver10.java
new file mode 100644
index 0000000..14e829c
--- /dev/null
+++ b/of/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFMatchV1Ver10.java
@@ -0,0 +1,2434 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFMatchV1Ver10 implements OFMatchV1 {
+    private static final Logger logger = LoggerFactory.getLogger(OFMatchV1Ver10.class);
+    // version: 1.0
+    final static byte WIRE_VERSION = 1;
+    final static int LENGTH = 40;
+
+        private final static int DEFAULT_WILDCARDS = OFFlowWildcardsSerializerVer10.ALL_VAL;
+        private final static OFPort DEFAULT_IN_PORT = OFPort.ZERO;
+        private final static MacAddress DEFAULT_ETH_SRC = MacAddress.NONE;
+        private final static MacAddress DEFAULT_ETH_DST = MacAddress.NONE;
+        private final static OFVlanVidMatch DEFAULT_VLAN_VID = OFVlanVidMatch.NONE;
+        private final static VlanPcp DEFAULT_VLAN_PCP = VlanPcp.NONE;
+        private final static EthType DEFAULT_ETH_TYPE = EthType.NONE;
+        private final static IpDscp DEFAULT_IP_DSCP = IpDscp.NONE;
+        private final static IpProtocol DEFAULT_IP_PROTO = IpProtocol.NONE;
+        private final static IPv4Address DEFAULT_IPV4_SRC = IPv4Address.NONE;
+        private final static IPv4Address DEFAULT_IPV4_DST = IPv4Address.NONE;
+        private final static TransportPort DEFAULT_TCP_SRC = TransportPort.NONE;
+        private final static TransportPort DEFAULT_TCP_DST = TransportPort.NONE;
+
+    // OF message fields
+    private final int wildcards;
+    private final OFPort inPort;
+    private final MacAddress ethSrc;
+    private final MacAddress ethDst;
+    private final OFVlanVidMatch vlanVid;
+    private final VlanPcp vlanPcp;
+    private final EthType ethType;
+    private final IpDscp ipDscp;
+    private final IpProtocol ipProto;
+    private final IPv4Address ipv4Src;
+    private final IPv4Address ipv4Dst;
+    private final TransportPort tcpSrc;
+    private final TransportPort tcpDst;
+//
+    // Immutable default instance
+    final static OFMatchV1Ver10 DEFAULT = new OFMatchV1Ver10(
+        DEFAULT_WILDCARDS, DEFAULT_IN_PORT, DEFAULT_ETH_SRC, DEFAULT_ETH_DST, DEFAULT_VLAN_VID, DEFAULT_VLAN_PCP, DEFAULT_ETH_TYPE, DEFAULT_IP_DSCP, DEFAULT_IP_PROTO, DEFAULT_IPV4_SRC, DEFAULT_IPV4_DST, DEFAULT_TCP_SRC, DEFAULT_TCP_DST
+    );
+
+    // package private constructor - used by readers, builders, and factory
+    OFMatchV1Ver10(int wildcards, OFPort inPort, MacAddress ethSrc, MacAddress ethDst, OFVlanVidMatch vlanVid, VlanPcp vlanPcp, EthType ethType, IpDscp ipDscp, IpProtocol ipProto, IPv4Address ipv4Src, IPv4Address ipv4Dst, TransportPort tcpSrc, TransportPort tcpDst) {
+        this.wildcards = wildcards;
+        this.inPort = inPort;
+        this.ethSrc = ethSrc;
+        this.ethDst = ethDst;
+        this.vlanVid = vlanVid;
+        this.vlanPcp = vlanPcp;
+        this.ethType = ethType;
+        this.ipDscp = ipDscp;
+        this.ipProto = ipProto;
+        this.ipv4Src = ipv4Src;
+        this.ipv4Dst = ipv4Dst;
+        this.tcpSrc = tcpSrc;
+        this.tcpDst = tcpDst;
+    }
+
+    // Accessors for OF message fields
+    @Override
+    public int getWildcards() {
+        return wildcards;
+    }
+
+    @Override
+    public OFPort getInPort() {
+        return inPort;
+    }
+
+    @Override
+    public MacAddress getEthSrc() {
+        return ethSrc;
+    }
+
+    @Override
+    public MacAddress getEthDst() {
+        return ethDst;
+    }
+
+    @Override
+    public OFVlanVidMatch getVlanVid() {
+        return vlanVid;
+    }
+
+    @Override
+    public VlanPcp getVlanPcp() {
+        return vlanPcp;
+    }
+
+    @Override
+    public EthType getEthType() {
+        return ethType;
+    }
+
+    @Override
+    public IpDscp getIpDscp() {
+        return ipDscp;
+    }
+
+    @Override
+    public IpProtocol getIpProto() {
+        return ipProto;
+    }
+
+    @Override
+    public IPv4Address getIpv4Src() {
+        return ipv4Src;
+    }
+
+    @Override
+    public IPv4Address getIpv4Dst() {
+        return ipv4Dst;
+    }
+
+    @Override
+    public TransportPort getTcpSrc() {
+        return tcpSrc;
+    }
+
+    @Override
+    public TransportPort getTcpDst() {
+        return tcpDst;
+    }
+
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+    final public static int OFPFW_ALL = ((1 << 22) - 1);
+
+    final public static int OFPFW_IN_PORT = 1 << 0; /* Switch input port. */
+    final public static int OFPFW_DL_VLAN = 1 << 1; /* VLAN id. */
+    final public static int OFPFW_DL_SRC = 1 << 2; /* Ethernet source address. */
+    final public static int OFPFW_DL_DST = 1 << 3; /*
+                                                    * Ethernet destination
+                                                    * address.
+                                                    */
+    final public static int OFPFW_DL_TYPE = 1 << 4; /* Ethernet frame type. */
+    final public static int OFPFW_NW_PROTO = 1 << 5; /* IP protocol. */
+    final public static int OFPFW_TP_SRC = 1 << 6; /* TCP/UDP source port. */
+    final public static int OFPFW_TP_DST = 1 << 7; /* TCP/UDP destination port. */
+
+    /*
+     * IP source address wildcard bit count. 0 is exact match, 1 ignores the
+     * LSB, 2 ignores the 2 least-significant bits, ..., 32 and higher wildcard
+     * the entire field. This is the *opposite* of the usual convention where
+     * e.g. /24 indicates that 8 bits (not 24 bits) are wildcarded.
+     */
+    final public static int OFPFW_NW_SRC_SHIFT = 8;
+    final public static int OFPFW_NW_SRC_BITS = 6;
+    final public static int OFPFW_NW_SRC_MASK = ((1 << OFPFW_NW_SRC_BITS) - 1) << OFPFW_NW_SRC_SHIFT;
+    final public static int OFPFW_NW_SRC_ALL = 32 << OFPFW_NW_SRC_SHIFT;
+
+    /* IP destination address wildcard bit count. Same format as source. */
+    final public static int OFPFW_NW_DST_SHIFT = 14;
+    final public static int OFPFW_NW_DST_BITS = 6;
+    final public static int OFPFW_NW_DST_MASK = ((1 << OFPFW_NW_DST_BITS) - 1) << OFPFW_NW_DST_SHIFT;
+    final public static int OFPFW_NW_DST_ALL = 32 << OFPFW_NW_DST_SHIFT;
+
+    final public static int OFPFW_DL_VLAN_PCP = 1 << 20; /* VLAN priority. */
+    final public static int OFPFW_NW_TOS = 1 << 21; /* IP ToS (DSCP field, 6bits) */
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <F extends OFValueType<F>> F get(MatchField<F> field)
+            throws UnsupportedOperationException {
+        if (isFullyWildcarded(field))
+            return null;
+        if (!field.arePrerequisitesOK(this))
+            return null;
+
+        Object result;
+        switch (field.id) {
+            case IN_PORT:
+                result = inPort;
+                break;
+            case ETH_DST:
+                result = ethDst;
+                break;
+            case ETH_SRC:
+                result = ethSrc;
+                break;
+            case ETH_TYPE:
+                result = ethType;
+                break;
+            case VLAN_VID:
+                result = vlanVid;
+                break;
+            case VLAN_PCP:
+                result = vlanPcp;
+                break;
+            case ARP_OP:
+                result = ArpOpcode.of(ipProto.getIpProtocolNumber());
+                break;
+            case ARP_SPA:
+                result = ipv4Src;
+                break;
+            case ARP_TPA:
+                result = ipv4Dst;
+                break;
+            case IP_DSCP:
+                result = ipDscp;
+                break;
+            case IP_PROTO:
+                result = ipProto;
+                break;
+            case IPV4_SRC:
+                result = ipv4Src;
+                break;
+            case IPV4_DST:
+                result = ipv4Dst;
+                break;
+            case TCP_SRC:
+                result = tcpSrc;
+                break;
+            case TCP_DST:
+                result = tcpDst;
+                break;
+            case UDP_SRC:
+                result = tcpSrc;
+                break;
+            case UDP_DST:
+                result = tcpDst;
+                break;
+            case SCTP_SRC:
+                result = tcpSrc;
+                break;
+            case SCTP_DST:
+                result = tcpDst;
+                break;
+            case ICMPV4_TYPE:
+                result = tcpSrc;
+                break;
+            case ICMPV4_CODE:
+                result = tcpDst;
+                break;
+            // NOT SUPPORTED:
+            default:
+                throw new UnsupportedOperationException("OFMatch does not support matching on field " + field.getName());
+        }
+        return (F)result;
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <F extends OFValueType<F>> Masked<F> getMasked(MatchField<F> field)
+            throws UnsupportedOperationException {
+        if (!isPartiallyMasked(field))
+            return null;
+        if (!field.arePrerequisitesOK(this))
+            return null;
+        Object result;
+        switch (field.id) {
+            case ARP_SPA:
+            case IPV4_SRC:
+                int srcBitMask = (-1) << (32 - getIpv4SrcCidrMaskLen());
+                result = IPv4AddressWithMask.of(ipv4Src, IPv4Address.of(srcBitMask));
+                break;
+            case ARP_TPA:
+            case IPV4_DST:
+                int dstBitMask = (-1) << (32 - getIpv4DstCidrMaskLen());
+
+                result = IPv4AddressWithMask.of(ipv4Dst, IPv4Address.of(dstBitMask));
+                break;
+            default:
+                throw new UnsupportedOperationException("OFMatch does not support masked matching on field " + field.getName());
+        }
+        return (Masked<F>)result;
+    }
+
+    @Override
+    public boolean supports(MatchField<?> field) {
+        switch (field.id) {
+            case IN_PORT:
+            case ETH_DST:
+            case ETH_SRC:
+            case ETH_TYPE:
+            case VLAN_VID:
+            case VLAN_PCP:
+            case ARP_OP:
+            case ARP_SPA:
+            case ARP_TPA:
+            case IP_DSCP:
+            case IP_PROTO:
+            case IPV4_SRC:
+            case IPV4_DST:
+            case TCP_SRC:
+            case TCP_DST:
+            case UDP_SRC:
+            case UDP_DST:
+            case SCTP_SRC:
+            case SCTP_DST:
+            case ICMPV4_TYPE:
+            case ICMPV4_CODE:
+                return true;
+            default:
+                return false;
+        }
+    }
+
+    @Override
+    public boolean supportsMasked(MatchField<?> field) {
+        switch (field.id) {
+            case ARP_SPA:
+            case ARP_TPA:
+            case IPV4_SRC:
+            case IPV4_DST:
+                return true;
+            default:
+                return false;
+        }
+    }
+
+    @Override
+    public boolean isExact(MatchField<?> field) {
+        if (!field.arePrerequisitesOK(this))
+            return false;
+
+        switch (field.id) {
+            case IN_PORT:
+                return (this.wildcards & OFPFW_IN_PORT) == 0;
+            case ETH_DST:
+                return (this.wildcards & OFPFW_DL_DST) == 0;
+            case ETH_SRC:
+                return (this.wildcards & OFPFW_DL_SRC) == 0;
+            case ETH_TYPE:
+                return (this.wildcards & OFPFW_DL_TYPE) == 0;
+            case VLAN_VID:
+                return (this.wildcards & OFPFW_DL_VLAN) == 0;
+            case VLAN_PCP:
+                return (this.wildcards & OFPFW_DL_VLAN_PCP) == 0;
+            case ARP_OP:
+                return (this.wildcards & OFPFW_NW_PROTO) == 0;
+            case ARP_SPA:
+                return this.getIpv4SrcCidrMaskLen() >= 32;
+            case ARP_TPA:
+                return this.getIpv4DstCidrMaskLen() >= 32;
+            case IP_DSCP:
+                return (this.wildcards & OFPFW_NW_TOS) == 0;
+            case IP_PROTO:
+                return (this.wildcards & OFPFW_NW_PROTO) == 0;
+            case IPV4_SRC:
+                return this.getIpv4SrcCidrMaskLen() >= 32;
+            case IPV4_DST:
+                return this.getIpv4DstCidrMaskLen() >= 32;
+            case TCP_SRC:
+                return (this.wildcards & OFPFW_TP_SRC) == 0;
+            case TCP_DST:
+                return (this.wildcards & OFPFW_TP_DST) == 0;
+            case UDP_SRC:
+                return (this.wildcards & OFPFW_TP_SRC) == 0;
+            case UDP_DST:
+                return (this.wildcards & OFPFW_TP_DST) == 0;
+            case SCTP_SRC:
+                return (this.wildcards & OFPFW_TP_SRC) == 0;
+            case SCTP_DST:
+                return (this.wildcards & OFPFW_TP_DST) == 0;
+            case ICMPV4_TYPE:
+                return (this.wildcards & OFPFW_TP_SRC) == 0;
+            case ICMPV4_CODE:
+                return (this.wildcards & OFPFW_TP_DST) == 0;
+            default:
+                throw new UnsupportedOperationException("OFMatch does not support matching on field " + field.getName());
+        }
+    }
+
+    /**
+     * Parse this match's wildcard fields and return the number of significant
+     * bits in the IP destination field. NOTE: this returns the number of bits
+     * that are fixed, i.e., like CIDR, not the number of bits that are free
+     * like OpenFlow encodes.
+     *
+     * @return A number between 0 (matches all IPs) and 32 (exact match)
+     */
+    public int getIpv4DstCidrMaskLen() {
+        return Math.max(32 - ((wildcards & OFPFW_NW_DST_MASK) >> OFPFW_NW_DST_SHIFT),
+                        0);
+    }
+
+    /**
+     * Parse this match's wildcard fields and return the number of significant
+     * bits in the IP destination field. NOTE: this returns the number of bits
+     * that are fixed, i.e., like CIDR, not the number of bits that are free
+     * like OpenFlow encodes.
+     *
+     * @return A number between 0 (matches all IPs) and 32 (exact match)
+     */
+    public int getIpv4SrcCidrMaskLen() {
+        return Math.max(32 - ((wildcards & OFPFW_NW_SRC_MASK) >> OFPFW_NW_SRC_SHIFT),
+                        0);
+    }
+
+
+    @Override
+    public boolean isFullyWildcarded(MatchField<?> field) {
+        if (!field.arePrerequisitesOK(this))
+            return true;
+
+        switch (field.id) {
+            case IN_PORT:
+                return (this.wildcards & OFPFW_IN_PORT) != 0;
+            case ETH_DST:
+                return (this.wildcards & OFPFW_DL_DST) != 0;
+            case ETH_SRC:
+                return (this.wildcards & OFPFW_DL_SRC) != 0;
+            case ETH_TYPE:
+                return (this.wildcards & OFPFW_DL_TYPE) != 0;
+            case VLAN_VID:
+                return (this.wildcards & OFPFW_DL_VLAN) != 0;
+            case VLAN_PCP:
+                return (this.wildcards & OFPFW_DL_VLAN_PCP) != 0;
+            case ARP_OP:
+                return (this.wildcards & OFPFW_NW_PROTO) != 0;
+            case ARP_SPA:
+                return this.getIpv4SrcCidrMaskLen() <= 0;
+            case ARP_TPA:
+                return this.getIpv4DstCidrMaskLen() <= 0;
+            case IP_DSCP:
+                return (this.wildcards & OFPFW_NW_TOS) != 0;
+            case IP_PROTO:
+                return (this.wildcards & OFPFW_NW_PROTO) != 0;
+            case TCP_SRC:
+                return (this.wildcards & OFPFW_TP_SRC) != 0;
+            case TCP_DST:
+                return (this.wildcards & OFPFW_TP_DST) != 0;
+            case UDP_SRC:
+                return (this.wildcards & OFPFW_TP_SRC) != 0;
+            case UDP_DST:
+                return (this.wildcards & OFPFW_TP_DST) != 0;
+            case SCTP_SRC:
+                return (this.wildcards & OFPFW_TP_SRC) != 0;
+            case SCTP_DST:
+                return (this.wildcards & OFPFW_TP_DST) != 0;
+            case ICMPV4_TYPE:
+                return (this.wildcards & OFPFW_TP_SRC) != 0;
+            case ICMPV4_CODE:
+                return (this.wildcards & OFPFW_TP_DST) != 0;
+            case IPV4_SRC:
+                return this.getIpv4SrcCidrMaskLen() <= 0;
+            case IPV4_DST:
+                return this.getIpv4DstCidrMaskLen() <= 0;
+            default:
+                throw new UnsupportedOperationException("OFMatch does not support matching on field " + field.getName());
+        }
+    }
+
+    @Override
+    public boolean isPartiallyMasked(MatchField<?> field) {
+        if (!field.arePrerequisitesOK(this))
+            return false;
+
+        switch (field.id) {
+            case ARP_SPA:
+            case IPV4_SRC:
+                int srcCidrLen = getIpv4SrcCidrMaskLen();
+                return srcCidrLen > 0 && srcCidrLen < 32;
+            case ARP_TPA:
+            case IPV4_DST:
+                int dstCidrLen = getIpv4DstCidrMaskLen();
+                return dstCidrLen > 0 && dstCidrLen < 32;
+            default:
+                return false;
+        }
+    }
+
+    @Override
+    public Iterable<MatchField<?>> getMatchFields() {
+        ImmutableList.Builder<MatchField<?>> builder = ImmutableList.builder();
+        if ((wildcards & OFPFW_IN_PORT) == 0)
+            builder.add(MatchField.IN_PORT);
+        if ((wildcards & OFPFW_DL_VLAN) == 0)
+            builder.add(MatchField.VLAN_VID);
+        if ((wildcards & OFPFW_DL_SRC) == 0)
+            builder.add(MatchField.ETH_SRC);
+        if ((wildcards & OFPFW_DL_DST) == 0)
+            builder.add(MatchField.ETH_DST);
+        if ((wildcards & OFPFW_DL_TYPE) == 0)
+            builder.add(MatchField.ETH_TYPE);
+        if ((wildcards & OFPFW_NW_PROTO) == 0) {
+            if (ethType == EthType.ARP) {
+                builder.add(MatchField.ARP_OP);
+            } else if (ethType == EthType.IPv4) {
+                builder.add(MatchField.IP_PROTO);
+            } else {
+                throw new UnsupportedOperationException(
+                        "Unsupported Ethertype for matching on network protocol " + ethType);
+            }
+        }
+        if ((wildcards & OFPFW_TP_SRC) == 0) {
+            if (ipProto == IpProtocol.UDP) {
+                builder.add(MatchField.UDP_SRC);
+            } else if (ipProto == IpProtocol.TCP) {
+                builder.add(MatchField.TCP_SRC);
+            } else if (ipProto == IpProtocol.SCTP) {
+                builder.add(MatchField.SCTP_SRC);
+            } else {
+                throw new UnsupportedOperationException(
+                        "Unsupported IP protocol for matching on source port " + ipProto);
+            }
+        }
+        if ((wildcards & OFPFW_TP_DST) == 0) {
+            if (ipProto == IpProtocol.UDP) {
+                builder.add(MatchField.UDP_DST);
+            } else if (ipProto == IpProtocol.TCP) {
+                builder.add(MatchField.TCP_DST);
+            } else if (ipProto == IpProtocol.SCTP) {
+                builder.add(MatchField.SCTP_DST);
+            } else {
+                throw new UnsupportedOperationException(
+                        "Unsupported IP protocol for matching on destination port " + ipProto);
+            }
+        }
+        if (((wildcards & OFPFW_NW_SRC_MASK) >> OFPFW_NW_SRC_SHIFT) < 32) {
+            if (ethType == EthType.ARP) {
+                builder.add(MatchField.ARP_SPA);
+            } else if (ethType == EthType.IPv4) {
+                builder.add(MatchField.IPV4_SRC);
+            } else {
+                throw new UnsupportedOperationException(
+                        "Unsupported Ethertype for matching on source IP " + ethType);
+            }
+        }
+        if (((wildcards & OFPFW_NW_DST_MASK) >> OFPFW_NW_DST_SHIFT) < 32) {
+            if (ethType == EthType.ARP) {
+                builder.add(MatchField.ARP_TPA);
+            } else if (ethType == EthType.IPv4) {
+                builder.add(MatchField.IPV4_DST);
+            } else {
+                throw new UnsupportedOperationException(
+                        "Unsupported Ethertype for matching on destination IP " + ethType);
+            }
+        }
+        if ((wildcards & OFPFW_DL_VLAN_PCP) == 0)
+            builder.add(MatchField.VLAN_PCP);
+        if ((wildcards & OFPFW_NW_TOS) == 0)
+            builder.add(MatchField.IP_DSCP);
+        return builder.build();
+    }
+
+    public OFMatchV1.Builder createBuilder() {
+        return new BuilderWithParent(this);
+    }
+
+    static class BuilderWithParent implements OFMatchV1.Builder {
+        final OFMatchV1Ver10 parentMessage;
+
+        // OF message fields
+        private boolean wildcardsSet;
+        private int wildcards;
+        private boolean inPortSet;
+        private OFPort inPort;
+        private boolean ethSrcSet;
+        private MacAddress ethSrc;
+        private boolean ethDstSet;
+        private MacAddress ethDst;
+        private boolean vlanVidSet;
+        private OFVlanVidMatch vlanVid;
+        private boolean vlanPcpSet;
+        private VlanPcp vlanPcp;
+        private boolean ethTypeSet;
+        private EthType ethType;
+        private boolean ipDscpSet;
+        private IpDscp ipDscp;
+        private boolean ipProtoSet;
+        private IpProtocol ipProto;
+        private boolean ipv4SrcSet;
+        private IPv4Address ipv4Src;
+        private boolean ipv4DstSet;
+        private IPv4Address ipv4Dst;
+        private boolean tcpSrcSet;
+        private TransportPort tcpSrc;
+        private boolean tcpDstSet;
+        private TransportPort tcpDst;
+
+        BuilderWithParent(OFMatchV1Ver10 parentMessage) {
+            this.parentMessage = parentMessage;
+        }
+
+    @Override
+    public int getWildcards() {
+        return wildcards;
+    }
+
+    @Override
+    public OFMatchV1.Builder setWildcards(int wildcards) {
+        this.wildcards = wildcards;
+        this.wildcardsSet = true;
+        return this;
+    }
+    @Override
+    public OFPort getInPort() {
+        return inPort;
+    }
+
+    @Override
+    public OFMatchV1.Builder setInPort(OFPort inPort) {
+        this.inPort = inPort;
+        this.inPortSet = true;
+        return this;
+    }
+    @Override
+    public MacAddress getEthSrc() {
+        return ethSrc;
+    }
+
+    @Override
+    public OFMatchV1.Builder setEthSrc(MacAddress ethSrc) {
+        this.ethSrc = ethSrc;
+        this.ethSrcSet = true;
+        return this;
+    }
+    @Override
+    public MacAddress getEthDst() {
+        return ethDst;
+    }
+
+    @Override
+    public OFMatchV1.Builder setEthDst(MacAddress ethDst) {
+        this.ethDst = ethDst;
+        this.ethDstSet = true;
+        return this;
+    }
+    @Override
+    public OFVlanVidMatch getVlanVid() {
+        return vlanVid;
+    }
+
+    @Override
+    public OFMatchV1.Builder setVlanVid(OFVlanVidMatch vlanVid) {
+        this.vlanVid = vlanVid;
+        this.vlanVidSet = true;
+        return this;
+    }
+    @Override
+    public VlanPcp getVlanPcp() {
+        return vlanPcp;
+    }
+
+    @Override
+    public OFMatchV1.Builder setVlanPcp(VlanPcp vlanPcp) {
+        this.vlanPcp = vlanPcp;
+        this.vlanPcpSet = true;
+        return this;
+    }
+    @Override
+    public EthType getEthType() {
+        return ethType;
+    }
+
+    @Override
+    public OFMatchV1.Builder setEthType(EthType ethType) {
+        this.ethType = ethType;
+        this.ethTypeSet = true;
+        return this;
+    }
+    @Override
+    public IpDscp getIpDscp() {
+        return ipDscp;
+    }
+
+    @Override
+    public OFMatchV1.Builder setIpDscp(IpDscp ipDscp) {
+        this.ipDscp = ipDscp;
+        this.ipDscpSet = true;
+        return this;
+    }
+    @Override
+    public IpProtocol getIpProto() {
+        return ipProto;
+    }
+
+    @Override
+    public OFMatchV1.Builder setIpProto(IpProtocol ipProto) {
+        this.ipProto = ipProto;
+        this.ipProtoSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getIpv4Src() {
+        return ipv4Src;
+    }
+
+    @Override
+    public OFMatchV1.Builder setIpv4Src(IPv4Address ipv4Src) {
+        this.ipv4Src = ipv4Src;
+        this.ipv4SrcSet = true;
+        return this;
+    }
+    @Override
+    public IPv4Address getIpv4Dst() {
+        return ipv4Dst;
+    }
+
+    @Override
+    public OFMatchV1.Builder setIpv4Dst(IPv4Address ipv4Dst) {
+        this.ipv4Dst = ipv4Dst;
+        this.ipv4DstSet = true;
+        return this;
+    }
+    @Override
+    public TransportPort getTcpSrc() {
+        return tcpSrc;
+    }
+
+    @Override
+    public OFMatchV1.Builder setTcpSrc(TransportPort tcpSrc) {
+        this.tcpSrc = tcpSrc;
+        this.tcpSrcSet = true;
+        return this;
+    }
+    @Override
+    public TransportPort getTcpDst() {
+        return tcpDst;
+    }
+
+    @Override
+    public OFMatchV1.Builder setTcpDst(TransportPort tcpDst) {
+        this.tcpDst = tcpDst;
+        this.tcpDstSet = true;
+        return this;
+    }
+    @Override
+    public OFVersion getVersion() {
+        return OFVersion.OF_10;
+    }
+
+
+
+        @Override
+        public OFMatchV1 build() {
+                int wildcards = this.wildcardsSet ? this.wildcards : parentMessage.wildcards;
+                OFPort inPort = this.inPortSet ? this.inPort : parentMessage.inPort;
+                if(inPort == null)
+                    throw new NullPointerException("Property inPort must not be null");
+                MacAddress ethSrc = this.ethSrcSet ? this.ethSrc : parentMessage.ethSrc;
+                if(ethSrc == null)
+                    throw new NullPointerException("Property ethSrc must not be null");
+                MacAddress ethDst = this.ethDstSet ? this.ethDst : parentMessage.ethDst;
+                if(ethDst == null)
+                    throw new NullPointerException("Property ethDst must not be null");
+                OFVlanVidMatch vlanVid = this.vlanVidSet ? this.vlanVid : parentMessage.vlanVid;
+                if(vlanVid == null)
+                    throw new NullPointerException("Property vlanVid must not be null");
+                VlanPcp vlanPcp = this.vlanPcpSet ? this.vlanPcp : parentMessage.vlanPcp;
+                if(vlanPcp == null)
+                    throw new NullPointerException("Property vlanPcp must not be null");
+                EthType ethType = this.ethTypeSet ? this.ethType : parentMessage.ethType;
+                if(ethType == null)
+                    throw new NullPointerException("Property ethType must not be null");
+                IpDscp ipDscp = this.ipDscpSet ? this.ipDscp : parentMessage.ipDscp;
+                if(ipDscp == null)
+                    throw new NullPointerException("Property ipDscp must not be null");
+                IpProtocol ipProto = this.ipProtoSet ? this.ipProto : parentMessage.ipProto;
+                if(ipProto == null)
+                    throw new NullPointerException("Property ipProto must not be null");
+                IPv4Address ipv4Src = this.ipv4SrcSet ? this.ipv4Src : parentMessage.ipv4Src;
+                if(ipv4Src == null)
+                    throw new NullPointerException("Property ipv4Src must not be null");
+                IPv4Address ipv4Dst = this.ipv4DstSet ? this.ipv4Dst : parentMessage.ipv4Dst;
+                if(ipv4Dst == null)
+                    throw new NullPointerException("Property ipv4Dst must not be null");
+                TransportPort tcpSrc = this.tcpSrcSet ? this.tcpSrc : parentMessage.tcpSrc;
+                if(tcpSrc == null)
+                    throw new NullPointerException("Property tcpSrc must not be null");
+                TransportPort tcpDst = this.tcpDstSet ? this.tcpDst : parentMessage.tcpDst;
+                if(tcpDst == null)
+                    throw new NullPointerException("Property tcpDst must not be null");
+
+                //
+            // normalize match fields according to current OpenVSwitch behavior. When prerequisites for a field are not met
+            // e.g., eth_type is not set to 0x800, OVS sets the value of corresponding ignored fields (e.g.,
+            // ip_src, tcp_dst) to 0, and sets the wildcard bit to 1.
+            if(ethType.equals(EthType.IPv4)) {
+                // IP
+                if(ipProto.equals(IpProtocol.TCP) || ipProto.equals(IpProtocol.UDP) || ipProto.equals(IpProtocol.ICMP)) {
+                    // fully speced, wildcards and all values are fine
+                    // normalize 32-63 ipv4 src 'mask' to a full bitmask
+                    if((wildcards & OFPFW_NW_SRC_ALL) != 0)
+                        wildcards |= OFPFW_NW_SRC_MASK;
+
+                    // normalize 32-63 ipv4 dst 'mask' to a full bitmask
+                    if((wildcards & OFPFW_NW_DST_ALL) != 0)
+                        wildcards |= OFPFW_NW_DST_MASK;
+
+                } else {
+                    // normalize 32-63 ipv4 src 'mask' to a full bitmask
+                    if((wildcards & OFPFW_NW_SRC_ALL) != 0)
+                        wildcards |= OFPFW_NW_SRC_MASK;
+
+                    // normalize 32-63 ipv4 dst 'mask' to a full bitmask
+                    if((wildcards & OFPFW_NW_DST_ALL) != 0)
+                        wildcards |= OFPFW_NW_DST_MASK;
+
+                    // not TCP/UDP/ICMP -> Clear TP wildcards for the wire
+                    wildcards |= (OFPFW_TP_SRC | OFPFW_TP_DST);
+                    tcpSrc = TransportPort.NONE;
+                    tcpDst = TransportPort.NONE;
+                }
+            } else if (ethType.equals(EthType.ARP)) {
+                // normalize 32-63 ipv4 src 'mask' to a full bitmask
+                if((wildcards & OFPFW_NW_SRC_ALL) != 0)
+                    wildcards |= OFPFW_NW_SRC_MASK;
+
+                // normalize 32-63 ipv4 dst 'mask' to a full bitmask
+                if((wildcards & OFPFW_NW_DST_ALL) != 0)
+                    wildcards |= OFPFW_NW_DST_MASK;
+
+                // ARP: clear NW_TOS / TP wildcards for the wire
+                wildcards |= ( OFPFW_NW_TOS | OFPFW_TP_SRC | OFPFW_TP_DST);
+                ipDscp = IpDscp.NONE;
+                tcpSrc = TransportPort.NONE;
+                tcpDst = TransportPort.NONE;
+            } else {
+                // not even IP. Clear NW/TP wildcards for the wire
+                wildcards |= ( OFPFW_NW_TOS | OFPFW_NW_PROTO | OFPFW_NW_SRC_MASK | OFPFW_NW_DST_MASK | OFPFW_TP_SRC | OFPFW_TP_DST);
+                ipDscp = IpDscp.NONE;
+                ipProto = IpProtocol.NONE;
+                ipv4Src = IPv4Address.NONE;
+                ipv4Dst = IPv4Address.NONE;
+                tcpSrc = TransportPort.NONE;
+                tcpDst = TransportPort.NONE;
+            }
+                return new OFMatchV1Ver10(
+                    wildcards,
+                    inPort,
+                    ethSrc,
+                    ethDst,
+                    vlanVid,
+                    vlanPcp,
+                    ethType,
+                    ipDscp,
+                    ipProto,
+                    ipv4Src,
+                    ipv4Dst,
+                    tcpSrc,
+                    tcpDst
+                );
+        }
+        @SuppressWarnings("unchecked")
+        @Override
+        public <F extends OFValueType<F>> F get(MatchField<F> field)
+                throws UnsupportedOperationException {
+            if (isFullyWildcarded(field))
+                return null;
+
+            Object result;
+            switch (field.id) {
+                case IN_PORT:
+                    result = inPort;
+                    break;
+                case ETH_DST:
+                    result = ethDst;
+                    break;
+                case ETH_SRC:
+                    result = ethSrc;
+                    break;
+                case ETH_TYPE:
+                    result = ethType;
+                    break;
+                case VLAN_VID:
+                    result = vlanVid;
+                    break;
+                case VLAN_PCP:
+                    result = vlanPcp;
+                    break;
+                case ARP_OP:
+                    result = ArpOpcode.of(ipProto.getIpProtocolNumber());
+                    break;
+                case ARP_SPA:
+                    result = ipv4Src;
+                    break;
+                case ARP_TPA:
+                    result = ipv4Dst;
+                    break;
+                case IP_DSCP:
+                    result = ipDscp;
+                    break;
+                case IP_PROTO:
+                    result = ipProto;
+                    break;
+                case IPV4_SRC:
+                    result = ipv4Src;
+                    break;
+                case IPV4_DST:
+                    result = ipv4Dst;
+                    break;
+                case TCP_SRC:
+                    result = tcpSrc;
+                    break;
+                case TCP_DST:
+                    result = tcpDst;
+                    break;
+                case UDP_SRC:
+                    result = tcpSrc;
+                    break;
+                case UDP_DST:
+                    result = tcpDst;
+                    break;
+                case SCTP_SRC:
+                    result = tcpSrc;
+                    break;
+                case SCTP_DST:
+                    result = tcpDst;
+                    break;
+                case ICMPV4_TYPE:
+                    result = tcpSrc;
+                    break;
+                case ICMPV4_CODE:
+                    result = tcpDst;
+                    break;
+                // NOT SUPPORTED:
+                default:
+                    throw new UnsupportedOperationException("OFMatch does not support matching on field " + field.getName());
+            }
+            return (F)result;
+        }
+
+        @SuppressWarnings("unchecked")
+        @Override
+        public <F extends OFValueType<F>> Masked<F> getMasked(MatchField<F> field)
+                throws UnsupportedOperationException {
+            if (!isPartiallyMasked(field))
+                return null;
+            Object result;
+            switch (field.id) {
+                case IPV4_SRC:
+                case ARP_SPA:
+                    int srcBitMask = (-1) << (32 - getIpv4SrcCidrMaskLen());
+                    result = IPv4AddressWithMask.of(ipv4Src, IPv4Address.of(srcBitMask));
+                    break;
+                case IPV4_DST:
+                case ARP_TPA:
+                    int dstMaskedBits = Math.min(32, (wildcards & OFPFW_NW_DST_MASK) >> OFPFW_NW_DST_SHIFT);
+                    int dstBitMask = (-1) << (32 - getIpv4DstCidrMaskLen());
+
+                    result = IPv4AddressWithMask.of(ipv4Dst, IPv4Address.of(dstBitMask));
+                    break;
+                default:
+                    throw new UnsupportedOperationException("OFMatch does not support masked matching on field " + field.getName());
+            }
+            return (Masked<F>)result;
+        }
+
+        @Override
+        public boolean supports(MatchField<?> field) {
+            switch (field.id) {
+                case IN_PORT:
+                case ETH_DST:
+                case ETH_SRC:
+                case ETH_TYPE:
+                case VLAN_VID:
+                case VLAN_PCP:
+                case ARP_OP:
+                case ARP_SPA:
+                case ARP_TPA:
+                case IP_DSCP:
+                case IP_PROTO:
+                case IPV4_SRC:
+                case IPV4_DST:
+                case TCP_SRC:
+                case TCP_DST:
+                case UDP_SRC:
+                case UDP_DST:
+                case SCTP_SRC:
+                case SCTP_DST:
+                case ICMPV4_TYPE:
+                case ICMPV4_CODE:
+                    return true;
+                default:
+                    return false;
+            }
+        }
+
+        @Override
+        public boolean supportsMasked(MatchField<?> field) {
+            switch (field.id) {
+                case ARP_SPA:
+                case ARP_TPA:
+                case IPV4_SRC:
+                case IPV4_DST:
+                    return true;
+                default:
+                    return false;
+            }
+        }
+
+        @Override
+        public boolean isExact(MatchField<?> field) {
+            switch (field.id) {
+                case IN_PORT:
+                    return (this.wildcards & OFPFW_IN_PORT) == 0;
+                case ETH_DST:
+                    return (this.wildcards & OFPFW_DL_DST) == 0;
+                case ETH_SRC:
+                    return (this.wildcards & OFPFW_DL_SRC) == 0;
+                case ETH_TYPE:
+                    return (this.wildcards & OFPFW_DL_TYPE) == 0;
+                case VLAN_VID:
+                    return (this.wildcards & OFPFW_DL_VLAN) == 0;
+                case VLAN_PCP:
+                    return (this.wildcards & OFPFW_DL_VLAN_PCP) == 0;
+                case ARP_OP:
+                    return (this.wildcards & OFPFW_NW_PROTO) == 0;
+                case ARP_SPA:
+                    return this.getIpv4SrcCidrMaskLen() >= 32;
+                case ARP_TPA:
+                    return this.getIpv4DstCidrMaskLen() >= 32;
+                case IP_DSCP:
+                    return (this.wildcards & OFPFW_NW_TOS) == 0;
+                case IP_PROTO:
+                    return (this.wildcards & OFPFW_NW_PROTO) == 0;
+                case IPV4_SRC:
+                    return this.getIpv4SrcCidrMaskLen() >= 32;
+                case IPV4_DST:
+                    return this.getIpv4DstCidrMaskLen() >= 32;
+                case TCP_SRC:
+                    return (this.wildcards & OFPFW_TP_SRC) == 0;
+                case TCP_DST:
+                    return (this.wildcards & OFPFW_TP_DST) == 0;
+                case UDP_SRC:
+                    return (this.wildcards & OFPFW_TP_SRC) == 0;
+                case UDP_DST:
+                    return (this.wildcards & OFPFW_TP_DST) == 0;
+                case SCTP_SRC:
+                    return (this.wildcards & OFPFW_TP_SRC) == 0;
+                case SCTP_DST:
+                    return (this.wildcards & OFPFW_TP_DST) == 0;
+                case ICMPV4_TYPE:
+                    return (this.wildcards & OFPFW_TP_SRC) == 0;
+                case ICMPV4_CODE:
+                    return (this.wildcards & OFPFW_TP_DST) == 0;
+                default:
+                    throw new UnsupportedOperationException("OFMatch does not support matching on field " + field.getName());
+            }
+        }
+
+        /**
+         * Parse this match's wildcard fields and return the number of significant
+         * bits in the IP destination field. NOTE: this returns the number of bits
+         * that are fixed, i.e., like CIDR, not the number of bits that are free
+         * like OpenFlow encodes.
+         *
+         * @return A number between 0 (matches all IPs) and 32 (exact match)
+         */
+        public int getIpv4DstCidrMaskLen() {
+            return Math.max(32 - ((wildcards & OFPFW_NW_DST_MASK) >> OFPFW_NW_DST_SHIFT),
+                            0);
+        }
+
+        /**
+         * Parse this match's wildcard fields and return the number of significant
+         * bits in the IP destination field. NOTE: this returns the number of bits
+         * that are fixed, i.e., like CIDR, not the number of bits that are free
+         * like OpenFlow encodes.
+         *
+         * @return A number between 0 (matches all IPs) and 32 (exact match)
+         */
+        public int getIpv4SrcCidrMaskLen() {
+            return Math.max(32 - ((wildcards & OFPFW_NW_SRC_MASK) >> OFPFW_NW_SRC_SHIFT),
+                            0);
+        }
+
+
+        @Override
+        public boolean isFullyWildcarded(MatchField<?> field) {
+            switch (field.id) {
+                case IN_PORT:
+                    return (this.wildcards & OFPFW_IN_PORT) != 0;
+                case ETH_DST:
+                    return (this.wildcards & OFPFW_DL_DST) != 0;
+                case ETH_SRC:
+                    return (this.wildcards & OFPFW_DL_SRC) != 0;
+                case ETH_TYPE:
+                    return (this.wildcards & OFPFW_DL_TYPE) != 0;
+                case VLAN_VID:
+                    return (this.wildcards & OFPFW_DL_VLAN) != 0;
+                case VLAN_PCP:
+                    return (this.wildcards & OFPFW_DL_VLAN_PCP) != 0;
+                case ARP_OP:
+                    return (this.wildcards & OFPFW_NW_PROTO) != 0;
+                case ARP_SPA:
+                    return this.getIpv4SrcCidrMaskLen() <= 0;
+                case ARP_TPA:
+                    return this.getIpv4DstCidrMaskLen() <= 0;
+                case IP_DSCP:
+                    return (this.wildcards & OFPFW_NW_TOS) != 0;
+                case IP_PROTO:
+                    return (this.wildcards & OFPFW_NW_PROTO) != 0;
+                case TCP_SRC:
+                    return (this.wildcards & OFPFW_TP_SRC) != 0;
+                case TCP_DST:
+                    return (this.wildcards & OFPFW_TP_DST) != 0;
+                case UDP_SRC:
+                    return (this.wildcards & OFPFW_TP_SRC) != 0;
+                case UDP_DST:
+                    return (this.wildcards & OFPFW_TP_DST) != 0;
+                case SCTP_SRC:
+                    return (this.wildcards & OFPFW_TP_SRC) != 0;
+                case SCTP_DST:
+                    return (this.wildcards & OFPFW_TP_DST) != 0;
+                case ICMPV4_TYPE:
+                    return (this.wildcards & OFPFW_TP_SRC) != 0;
+                case ICMPV4_CODE:
+                    return (this.wildcards & OFPFW_TP_DST) != 0;
+                case IPV4_SRC:
+                    return this.getIpv4SrcCidrMaskLen() <= 0;
+                case IPV4_DST:
+                    return this.getIpv4DstCidrMaskLen() <= 0;
+                default:
+                    throw new UnsupportedOperationException("OFMatch does not support matching on field " + field.getName());
+            }
+        }
+
+        @Override
+        public boolean isPartiallyMasked(MatchField<?> field) {
+            switch (field.id) {
+                case ARP_SPA:
+                case IPV4_SRC:
+                    int srcCidrLen = getIpv4SrcCidrMaskLen();
+                    return srcCidrLen > 0 && srcCidrLen < 32;
+                case ARP_TPA:
+                case IPV4_DST:
+                    int dstCidrLen = getIpv4DstCidrMaskLen();
+                    return dstCidrLen > 0 && dstCidrLen < 32;
+                default:
+                    throw new UnsupportedOperationException("OFMatch does not support masked matching on field " + field.getName());
+            }
+        }
+
+        private final void initWildcards() {
+            if(!wildcardsSet) {
+                wildcards = parentMessage.wildcards;
+                wildcardsSet = true;
+            }
+        }
+
+        @Override
+        public <F extends OFValueType<F>> Match.Builder setExact(MatchField<F> field,
+                F value) {
+            initWildcards();
+            Object val = value;
+            switch (field.id) {
+                case ETH_DST:
+                    setEthDst((MacAddress) value);
+                    wildcards &= ~OFPFW_DL_DST;
+                    break;
+                case ETH_SRC:
+                    setEthSrc((MacAddress) value);
+                    wildcards &= ~OFPFW_DL_SRC;
+                    break;
+                case ETH_TYPE:
+                    setEthType((EthType) value);
+                    wildcards &= ~OFPFW_DL_TYPE;
+                    break;
+                case ICMPV4_CODE:
+                    setTcpDst(TransportPort.of(((ICMPv4Code)value).getCode()));
+                    wildcards &= ~OFPFW_TP_DST;
+                    break;
+                case ICMPV4_TYPE:
+                    setTcpSrc(TransportPort.of(((ICMPv4Type)value).getType()));
+                    wildcards &= ~OFPFW_TP_SRC;
+                    break;
+                case IN_PORT:
+                    setInPort((OFPort) value);
+                    wildcards &= ~OFPFW_IN_PORT;
+                    break;
+                case ARP_OP:
+                    setIpProto(IpProtocol.of((short)((ArpOpcode)value).getOpcode()));
+                    wildcards &= ~OFPFW_NW_PROTO;
+                    break;
+                case ARP_TPA:
+                case IPV4_DST:
+                    setIpv4Dst((IPv4Address) value);
+                    wildcards &= ~OFPFW_NW_DST_MASK;
+                    break;
+                case ARP_SPA:
+                case IPV4_SRC:
+                    setIpv4Src((IPv4Address) value);
+                    wildcards &= ~OFPFW_NW_SRC_MASK;
+                    break;
+                case IP_DSCP:
+                    setIpDscp((IpDscp) value);
+                    wildcards &= ~OFPFW_NW_TOS;
+                    break;
+                case IP_PROTO:
+                    setIpProto((IpProtocol) value);
+                    wildcards &= ~OFPFW_NW_PROTO;
+                    break;
+                case SCTP_DST:
+                    setTcpDst((TransportPort) value);
+                    wildcards &= ~OFPFW_TP_DST;
+                    break;
+                case SCTP_SRC:
+                    setTcpSrc((TransportPort) value);
+                    wildcards &= ~OFPFW_TP_SRC;
+                    break;
+                case TCP_DST:
+                    setTcpDst((TransportPort) value);
+                    wildcards &= ~OFPFW_TP_DST;
+                    break;
+                case TCP_SRC:
+                    setTcpSrc((TransportPort) value);
+                    wildcards &= ~OFPFW_TP_SRC;
+                    break;
+                case UDP_DST:
+                    setTcpDst((TransportPort) value);
+                    wildcards &= ~OFPFW_TP_DST;
+                    break;
+                case UDP_SRC:
+                    setTcpSrc((TransportPort) value);
+                    wildcards &= ~OFPFW_TP_SRC;
+                    break;
+                case VLAN_PCP:
+                    setVlanPcp((VlanPcp) value);
+                    wildcards &= ~OFPFW_DL_VLAN_PCP;
+                    break;
+                case VLAN_VID:
+                    setVlanVid((OFVlanVidMatch) value);
+                    wildcards &= ~OFPFW_DL_VLAN;
+                    break;
+                default:
+                    throw new UnsupportedOperationException(
+                            "OFMatch does not support matching on field " + field.getName());
+            }
+            return this;
+        }
+
+        @Override
+        public <F extends OFValueType<F>> Match.Builder setMasked(MatchField<F> field,
+                F value, F mask) {
+            initWildcards();
+            switch (field.id) {
+                case ARP_SPA:
+                case ARP_TPA:
+                case IPV4_DST:
+                case IPV4_SRC:
+                    Object valObj = value;
+                    Object masObj = mask;
+                    IPv4Address ip = ((IPv4Address)valObj);
+                    int maskval = ((IPv4Address)masObj).getInt();
+                    if (Integer.bitCount(~maskval + 1) != 1)
+                        throw new UnsupportedOperationException("OFMatch only supports CIDR masks for IPv4");
+                    int maskLen = 32 - Integer.bitCount(maskval);
+                    switch(field.id) {
+                        case ARP_TPA:
+                        case IPV4_DST:
+                            setIpv4Dst(ip);
+                            wildcards = (wildcards &~OFPFW_NW_DST_MASK) | (maskLen << OFPFW_NW_DST_SHIFT);
+                            break;
+                        case ARP_SPA:
+                        case IPV4_SRC:
+                            setIpv4Src(ip);
+                            wildcards = (wildcards &~OFPFW_NW_SRC_MASK) | (maskLen << OFPFW_NW_SRC_SHIFT);
+                            break;
+                        default:
+                            // Cannot really get here
+                            break;
+                    }
+                    break;
+                default:
+                    throw new UnsupportedOperationException("OFMatch does not support masked matching on field " + field.getName());
+            }
+            return this;
+        }
+
+        @Override
+        public <F extends OFValueType<F>> Match.Builder setMasked(MatchField<F> field, Masked<F> valueWithMask)
+                                                                       throws UnsupportedOperationException {
+            return this.setMasked(field, valueWithMask.getValue(), valueWithMask.getMask());
+        }
+
+        @Override
+        public <F extends OFValueType<F>> Match.Builder wildcard(MatchField<F> field) {
+            initWildcards();
+            switch (field.id) {
+                case ETH_DST:
+                    setEthDst(MacAddress.NONE);
+                    wildcards |= OFPFW_DL_DST;
+                    break;
+                case ETH_SRC:
+                    setEthSrc(MacAddress.NONE);
+                    wildcards |= OFPFW_DL_SRC;
+                    break;
+                case ETH_TYPE:
+                    setEthType(EthType.NONE);
+                    wildcards |= OFPFW_DL_TYPE;
+                    break;
+                case ICMPV4_CODE:
+                case TCP_DST:
+                case UDP_DST:
+                case SCTP_DST:
+                    setTcpDst(TransportPort.NONE);
+                    wildcards |= OFPFW_TP_DST;
+                    break;
+                case ICMPV4_TYPE:
+                case TCP_SRC:
+                case UDP_SRC:
+                case SCTP_SRC:
+                    setTcpSrc(TransportPort.NONE);
+                    wildcards |= OFPFW_TP_SRC;
+                    break;
+                case IN_PORT:
+                    setInPort(OFPort.of(0)); // NOTE: not 'NONE' -- that is 0xFF for ports
+                    wildcards |= OFPFW_IN_PORT;
+                    break;
+                case ARP_TPA:
+                case IPV4_DST:
+                    setIpv4Dst(IPv4Address.NONE);
+                    wildcards |= OFPFW_NW_DST_MASK;
+                    break;
+                case ARP_SPA:
+                case IPV4_SRC:
+                    setIpv4Src(IPv4Address.NONE);
+                    wildcards |= OFPFW_NW_SRC_MASK;
+                    break;
+                case IP_DSCP:
+                    setIpDscp(IpDscp.NONE);
+                    wildcards |= OFPFW_NW_TOS;
+                    break;
+                case IP_PROTO:
+                    setIpProto(IpProtocol.NONE);
+                    wildcards |= OFPFW_NW_PROTO;
+                    break;
+                case VLAN_PCP:
+                    setVlanPcp(VlanPcp.NONE);
+                    wildcards |= OFPFW_DL_VLAN_PCP;
+                    break;
+                case VLAN_VID:
+                    setVlanVid(OFVlanVidMatch.NONE);
+                    wildcards |= OFPFW_DL_VLAN;
+                    break;
+                default:
+                    throw new UnsupportedOperationException("OFMatch does not support matching on field " + field.getName());
+            }
+            return this;
+        }
+
+    }
+
+    static class Builder implements OFMatchV1.Builder {
+        // OF message fields
+        private boolean wildcardsSet;
+        private int wildcards;
+        private boolean inPortSet;
+        private OFPort inPort;
+        private boolean ethSrcSet;
+        private MacAddress ethSrc;
+        private boolean ethDstSet;
+        private MacAddress ethDst;
+        private boolean vlanVidSet;
+        private OFVlanVidMatch vlanVid;
+        private boolean vlanPcpSet;