Add rate limit to l2gre vport.
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()
     );