diff --git a/c_gen/templates/loci_show.h b/c_gen/templates/loci_show.h
index 370dca0..3624bcd 100644
--- a/c_gen/templates/loci_show.h
+++ b/c_gen/templates/loci_show.h
@@ -408,6 +408,7 @@
 #define LOCI_SHOW_u8_dscp(writer, cookie, val) LOCI_SHOW_u8(writer, cookie, val)
 #define LOCI_SHOW_u8_ttl(writer, cookie, val) LOCI_SHOW_u8(writer, cookie, val)
 #define LOCI_SHOW_u32_vpn(writer, cookie, val) LOCI_SHOW_u32(writer, cookie, val)
+#define LOCI_SHOW_u32_rate_limit(writer, cookie, val) LOCI_SHOW_u32(writer, cookie, val)
 #define LOCI_SHOW_u32_flags(writer, cookie, val) LOCI_SHOW_u32(writer, cookie, val)
 #define LOCI_SHOW_desc_str_image_checksum(write, cookie, val) LOCI_SHOW_desc_str(writer, cookie, val)
 #define LOCI_SHOW_desc_str_startup_config_checksum(write, cookie, val) LOCI_SHOW_desc_str(writer, cookie, val)
diff --git a/openflow_input/bsn_vport b/openflow_input/bsn_vport
index 4f06462..6137a57 100644
--- a/openflow_input/bsn_vport
+++ b/openflow_input/bsn_vport
@@ -50,6 +50,8 @@
     OF_BSN_VPORT_L2GRE_DSCP_COPY = 0x4,
 
     OF_BSN_VPORT_L2GRE_LOOPBACK_IS_VALID = 0x8,
+
+    OF_BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID = 0x10,
 };
 
 // BSN Virtual port object header
@@ -91,6 +93,7 @@
     uint8_t ttl;
     pad(2);
     uint32_t vpn;                   /* VPN ID (for GRE Key) */
+    uint32_t rate_limit;            /* Rate limit in Kbps */
     of_port_name_t if_name;         /* Virtual Interface Name */
 };
 
diff --git a/test_data/of13/bsn_virtual_port_create_request__l2gre.data b/test_data/of13/bsn_virtual_port_create_request__l2gre.data
index 9d90293..661fea1 100644
--- a/test_data/of13/bsn_virtual_port_create_request__l2gre.data
+++ b/test_data/of13/bsn_virtual_port_create_request__l2gre.data
@@ -1,12 +1,12 @@
 -- binary
 04 04               # version, type
-00 4c               # len
+00 50               # len
 01 02 03 04         # xid
 00 5c 16 c7         # experimenter
 00 00 00 0f         # subtype
 00 01               # vport type
-00 3c               # vport len
-00 00 00 03         # vport flags
+00 40               # vport len
+00 00 00 1b         # vport flags
 00 00 00 01         # parent port no
 00 00 00 02         # loopback port no
 0a 0b 0c 0d 0e 0f   # local mac
@@ -15,11 +15,13 @@
 c0 00 10 02         # dst ip
 01 40 00 00         # dscp, ttl, pad(2)
 00 00 be ef         # vpn
+00 00 04 00         # rate limit
 66 6f 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 # vport if name
 -- python
 ofp.message.bsn_virtual_port_create_request(
 xid=0x01020304, vport=ofp.bsn_vport_l2gre(
-flags=ofp.OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID | ofp.OF_BSN_VPORT_L2GRE_DSCP_ASSIGN,
+flags=ofp.OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID | ofp.OF_BSN_VPORT_L2GRE_DSCP_ASSIGN | \
+ofp.OF_BSN_VPORT_L2GRE_LOOPBACK_IS_VALID | ofp.OF_BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID,
 port_no=1,
 loopback_port_no=2,
 local_mac=[0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f],
@@ -29,6 +31,7 @@
 dscp=1,
 ttl=64,
 vpn=0xbeef,
+rate_limit=0x400,
 if_name="foo"
 ))
 -- c
@@ -42,7 +45,9 @@
         of_mac_addr_t nh_mac = { { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 } };
         of_bsn_vport_l2gre_flags_set(vport,
             OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID |
-            OF_BSN_VPORT_L2GRE_DSCP_ASSIGN);
+            OF_BSN_VPORT_L2GRE_DSCP_ASSIGN |
+            OF_BSN_VPORT_L2GRE_LOOPBACK_IS_VALID |
+            OF_BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID);
         of_bsn_vport_l2gre_port_no_set(vport, 1);
         of_bsn_vport_l2gre_loopback_port_no_set(vport, 2);
         of_bsn_vport_l2gre_local_mac_set(vport, local_mac);
@@ -52,6 +57,7 @@
         of_bsn_vport_l2gre_dscp_set(vport, 1);
         of_bsn_vport_l2gre_ttl_set(vport, 64);
         of_bsn_vport_l2gre_vpn_set(vport, 0xbeef);
+        of_bsn_vport_l2gre_rate_limit_set(vport, 0x400);
         of_bsn_vport_l2gre_if_name_set(vport, if_name);
     }
     of_bsn_virtual_port_create_request_vport_set(obj, vport);
@@ -64,7 +70,9 @@
             .setFlags(
                 ImmutableSet.<OFBsnVportL2GreFlags>of(
                     OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID,
-                    OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_DSCP_ASSIGN
+                    OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_DSCP_ASSIGN,
+                    OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_LOOPBACK_IS_VALID,
+                    OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID
                 )
             )
             .setPortNo(OFPort.of(1))
@@ -76,6 +84,7 @@
             .setDscp((short)1)
             .setTtl((short)64)
             .setVpn(0xbeef)
+            .setRateLimit(0x400)
             .setIfName("foo")
             .build()
     );
