add bsn_port/vlan_counter_stats_request/reply
diff --git a/openflow_input/bsn_vlan_counter b/openflow_input/bsn_vlan_counter
index b775df4..fb37bc2 100644
--- a/openflow_input/bsn_vlan_counter
+++ b/openflow_input/bsn_vlan_counter
@@ -30,8 +30,11 @@
 
 #version 4
 
-struct of_bsn_vlan_entry {
-    uint16_t vlan_vid;
+enum of_bsn_vlan_counter_t(wire_type=uint8_t, complete=False) {
+  OFP_RX_BYTES = 0,
+  OFP_RX_PACKETS = 1,
+  OFP_TX_BYTES = 2,
+  OFP_TX_PACKETS = 3,
 };
 
 struct of_bsn_vlan_counter_stats_request : of_bsn_stats_request {
@@ -44,17 +47,14 @@
     pad(4);
     uint32_t experimenter == 0x5c16c7;
     uint32_t subtype == 9;
-    list(of_bsn_vlan_entry_t) vlan_entries; //if vlan_entries is empty, reply counters of all vlans.
+    uint16_t vlan_vid;
 };
 
 struct of_bsn_vlan_counter_stats_entry {
-   uint16_t vlan_vid;
-   pad(2);
-   pad(4);
-   uint64_t rx_bytes;
-   uint64_t rx_packets;
-   uint64_t tx_bytes;
-   uint64_t tx_packets;
+    uint16_t length;
+    uint16_t vlan_vid;
+    pad(4);
+    list(of_uint64_t) vlan_values;
 };
 
 struct of_bsn_vlan_counter_stats_reply : of_bsn_stats_reply {