diff --git a/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/Interface.java b/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/Interface.java
index 4e9c656..b8aaa6a 100644
--- a/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/Interface.java
+++ b/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/Interface.java
@@ -46,7 +46,7 @@
         LACPCURRENT("lacp_current"), OTHERCONFIG("other_config"),
         STATISTICS("statistics"), STATUS("status"), ADMINSTATE("admin_state"),
         LINKSTATE("link_state"), LINKRESETS("link_resets"),
-        LINKSPEED("link_speed"), DUPLEX("duplex"), MTU("mtu"), ERROR("error");
+        LINKSPEED("link_speed"), DUPLEX("duplex"), MTU("mtu"), MTU_REQUEST("mtu_request"), ERROR("error");
 
         private final String columnName;
 
@@ -980,6 +980,20 @@
     }
 
     /**
+     * Get the Column entity which column name is "mtuRequest" from the Row entity of
+     * attributes.
+     * @return the Column entity which column name is "mtuRequest"
+     */
+    public Column getMtuRequestColumn() {
+        ColumnDescription columndesc = new ColumnDescription(
+                                                             InterfaceColumn.MTU_REQUEST
+                                                             .columnName(),
+                                                            "getMtuRequestColumn",
+                                                             VersionNum.VERSION7140);
+        return (Column) super.getColumnHandler(columndesc);
+    }
+
+    /**
      * Add a Column entity which column name is "mtu" to the Row entity of
      * attributes.
      * @param mtu the column data which column name is "mtu"
@@ -994,6 +1008,20 @@
     }
 
     /**
+     * Add a Column entity which column name is "mtuRequest" to the Row entity of
+     * attributes.
+     * @param mtuRequest the column data which column name is "mtuRequest"
+     */
+    public void setMtuRequest(Set<Long> mtuRequest) {
+        ColumnDescription columndesc = new ColumnDescription(
+                                                             InterfaceColumn.MTU_REQUEST
+                                                                     .columnName(),
+                                                             "setMtuRequest",
+                                                             VersionNum.VERSION7140);
+        super.setDataHandler(columndesc, mtuRequest);
+    }
+
+    /**
      * Get the Column entity which column name is "error" from the Row entity of
      * attributes.
      * @return the Column entity which column name is "error"
diff --git a/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/VersionNum.java b/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/VersionNum.java
index ad2c77e..00aa763 100644
--- a/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/VersionNum.java
+++ b/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/table/VersionNum.java
@@ -29,7 +29,10 @@
     VERSION670("6.7.0"), VERSION680("6.8.0"), VERSION690("6.9.0"),
     VERSION6100("6.10.0"), VERSION6111("6.11.1"), VERSION710("7.1.0"),
     VERSION720("7.2.0"), VERSION721("7.2.1"), VERSION730("7.3.0"),
-    VERSION740("7.4.0"), VERSION750("7.5.0"), VERSION770("7.7.0");
+    VERSION740("7.4.0"), VERSION750("7.5.0"), VERSION760("7.6.0"),
+    VERSION770("7.7.0"), VERSION780("7.8.0"), VERSION790("7.9.0"),
+    VERSION7100("7.10.0"), VERSION7110("7.11.0"), VERSION7120("7.12.0"),
+    VERSION7130("7.13.0"), VERSION7140("7.14.0");
 
     private final String versionNum;
 
