diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
index 01a1fa5..9fb3fd4 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
@@ -236,23 +236,23 @@
     public final static MatchField<ClassId> BSN_VLAN_XLATE_PORT_GROUP_ID =
             new MatchField<ClassId>("bsn_vlan_xlate_port_group_id", MatchFields.BSN_VLAN_XLATE_PORT_GROUP_ID);
 
-    
-    public final static MatchField<CircuitSignalID> OCH_SIGID =
-            new MatchField<CircuitSignalID>("och_sigid",
-                                    MatchFields.OCH_SIGID);
 
     public final static MatchField<U8> OCH_SIGTYPE =
             new MatchField<U8>("och_sigtype",
                                     MatchFields.OCH_SIGTYPE);
-    
-    public final static MatchField<CircuitSignalID> OCH_SIGID_BASIC =
-            new MatchField<CircuitSignalID>("och_sigid_basic",
-                                    MatchFields.OCH_SIGID);
 
     public final static MatchField<U8> OCH_SIGTYPE_BASIC =
             new MatchField<U8>("och_sigtype_basic",
                                     MatchFields.OCH_SIGTYPE_BASIC);
-	 
+
+
+    public final static MatchField<CircuitSignalID> OCH_SIGID =
+            new MatchField<CircuitSignalID>("och_sigid",
+                                    MatchFields.OCH_SIGID);
+
+    public final static MatchField<CircuitSignalID> OCH_SIGID_BASIC =
+            new MatchField<CircuitSignalID>("och_sigid_basic",
+                                    MatchFields.OCH_SIGID);
     
     public String getName() {
         return name;
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
index ccf56b2..3bf717b 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
@@ -57,9 +57,8 @@
     BSN_UDF7,
     BSN_TCP_FLAGS,
     BSN_VLAN_XLATE_PORT_GROUP_ID,
-    OCH_SIGID,
     OCH_SIGTYPE,
-    OCH_SIGID_BASIC,
     OCH_SIGTYPE_BASIC,
-;
+    OCH_SIGID,
+    OCH_SIGID_BASIC,;
 }
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/CircuitSignalID.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/CircuitSignalID.java
index f347387..7a304f6 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/CircuitSignalID.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/CircuitSignalID.java
@@ -37,6 +37,21 @@
         return length;
     }
 
+    public byte getGridType() {
+        return gridType;
+    }
+
+    public byte getChannelSpacing() {
+        return channelSpacing;
+    }
+
+    public short getChannelNumber() {
+        return channelNumber;
+    }
+
+    public short getSpectralWidth() {
+        return spectralWidth;
+    }
 
     public void write6Bytes(ChannelBuffer c) {
         c.writeByte(gridType);
diff --git a/openflow_input/circuit b/openflow_input/circuit
index 01a1432..0f436a4 100644
--- a/openflow_input/circuit
+++ b/openflow_input/circuit
@@ -114,7 +114,6 @@
     list(of_port_optical_t) entries;	
 };
 
-
 struct of_port_optical {
     of_port_no_t port_no;
     uint16_t length;
@@ -132,9 +131,33 @@
    uint16_t length;
    uint8_t port_signal_type; 
    uint8_t reserved;
-   pad(2);
+   pad(1);
+   uint8_t port_type;	
 };
 
+struct of_circuit_port_status : of_experimenter {
+    uint8_t version;
+    uint8_t type == 4;
+    uint16_t length;
+    uint32_t xid;
+    uint32_t experimenter == 0x748771;
+    uint32_t exp_type == 12;
+    enum ofp_port_reason reason;
+    pad(7);
+    of_port_no_t port_no;
+    uint16_t lengths;
+    pad(2);
+    of_mac_addr_t hw_addr;
+    pad(2);
+    of_port_name_t name;
+    enum ofp_port_config config;
+    enum ofp_port_state state;
+    uint64_t ignore;	
+};
+
+ 
+
+
 struct of_port_optical_transport_application_code 
 {
    uint16_t feature_type; 
