separate bsn_port_counter from bsn_vlan_counter
diff --git a/openflow_input/bsn_counter b/openflow_input/bsn_port_counter
similarity index 62%
rename from openflow_input/bsn_counter
rename to openflow_input/bsn_port_counter
index 45242b1..f9ebaa7 100644
--- a/openflow_input/bsn_counter
+++ b/openflow_input/bsn_port_counter
@@ -34,10 +34,6 @@
     of_port_no_t port_no;
 };
 
-struct of_bsn_vlan_entry {
-    uint16_t vlan_id;
-};
-
 struct of_bsn_port_counter_stats_request : of_bsn_stats_request {
     uint8_t version;
     uint8_t type == 18;
@@ -51,41 +47,21 @@
     list(of_bsn_port_entry_t) port_entries; //if port_entries is empty, reply counters of all ports.
 };
 
-struct of_bsn_vlan_counter_stats_request : of_bsn_stats_request {
-    uint8_t version;
-    uint8_t type == 18;
-    uint16_t length;
-    uint32_t xid;
-    uint16_t stats_type == 0xffff;
-    enum ofp_stats_request_flags flags;
-    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.
-};
-
 struct of_bsn_port_counter_stats_entry {
     of_port_no_t port_no;
-    uint32_t rx_bytes;
-    uint32_t rx_packets_unicast;
-    uint32_t rx_packets_broadcast;
-    uint32_t rx_packets_multicast;
-    uint32_t rx_drops;
-    uint32_t rx_errors;
-    uint32_t tx_bytes;
-    uint32_t tx_packets_unicast;
-    uint32_t tx_packets_broadcast;
-    uint32_t tx_packets_multicast;
-    uint32_t tx_drops;
-    uint32_t tx_errors;
-};
-
-struct of_bsn_vlan_counter_stats_entry {
-   uint16_t vlan_id;
-   uint32_t rx_bytes;
-   uint32_t rx_packets;
-   uint32_t tx_bytes;
-   uint32_t tx_packets;  
+    pad(4);
+    uint64_t rx_bytes;
+    uint64_t rx_packets_unicast;
+    uint64_t rx_packets_broadcast;
+    uint64_t rx_packets_multicast;
+    uint64_t rx_dropped;
+    uint64_t rx_errors;
+    uint64_t tx_bytes;
+    uint64_t tx_packets_unicast;
+    uint64_t tx_packets_broadcast;
+    uint64_t tx_packets_multicast;
+    uint64_t tx_dropped;
+    uint64_t tx_errors;
 };
 
 struct of_bsn_port_counter_stats_reply : of_bsn_stats_reply {
@@ -100,16 +76,3 @@
     uint32_t subtype == 8;
     list(of_bsn_port_counter_stats_entry_t) port_counter_entries;
 };
-
-struct of_bsn_vlan_counter_stats_reply : of_bsn_stats_reply {
-    uint8_t version;
-    uint8_t type == 19;
-    uint16_t length;
-    uint32_t xid;
-    uint16_t stats_type == 0xffff;
-    enum ofp_stats_reply_flags flags;
-    pad(4);
-    uint32_t experimenter == 0x5c16c7;
-    uint32_t subtype == 9;
-    list(of_bsn_vlan_counter_stats_entry_t) vlan_counter_entries;
-};
diff --git a/openflow_input/bsn_counter b/openflow_input/bsn_vlan_counter
similarity index 61%
copy from openflow_input/bsn_counter
copy to openflow_input/bsn_vlan_counter
index 45242b1..b775df4 100644
--- a/openflow_input/bsn_counter
+++ b/openflow_input/bsn_vlan_counter
@@ -30,25 +30,8 @@
 
 #version 4
 
-struct of_bsn_port_entry {
-    of_port_no_t port_no;
-};
-
 struct of_bsn_vlan_entry {
-    uint16_t vlan_id;
-};
-
-struct of_bsn_port_counter_stats_request : of_bsn_stats_request {
-    uint8_t version;
-    uint8_t type == 18;
-    uint16_t length;
-    uint32_t xid;
-    uint16_t stats_type == 0xffff;
-    enum ofp_stats_request_flags flags;
-    pad(4);
-    uint32_t experimenter == 0x5c16c7;
-    uint32_t subtype == 8;
-    list(of_bsn_port_entry_t) port_entries; //if port_entries is empty, reply counters of all ports.
+    uint16_t vlan_vid;
 };
 
 struct of_bsn_vlan_counter_stats_request : of_bsn_stats_request {
@@ -64,41 +47,14 @@
     list(of_bsn_vlan_entry_t) vlan_entries; //if vlan_entries is empty, reply counters of all vlans.
 };
 
-struct of_bsn_port_counter_stats_entry {
-    of_port_no_t port_no;
-    uint32_t rx_bytes;
-    uint32_t rx_packets_unicast;
-    uint32_t rx_packets_broadcast;
-    uint32_t rx_packets_multicast;
-    uint32_t rx_drops;
-    uint32_t rx_errors;
-    uint32_t tx_bytes;
-    uint32_t tx_packets_unicast;
-    uint32_t tx_packets_broadcast;
-    uint32_t tx_packets_multicast;
-    uint32_t tx_drops;
-    uint32_t tx_errors;
-};
-
 struct of_bsn_vlan_counter_stats_entry {
-   uint16_t vlan_id;
-   uint32_t rx_bytes;
-   uint32_t rx_packets;
-   uint32_t tx_bytes;
-   uint32_t tx_packets;  
-};
-
-struct of_bsn_port_counter_stats_reply : of_bsn_stats_reply {
-    uint8_t version;
-    uint8_t type == 19;
-    uint16_t length;
-    uint32_t xid;
-    uint16_t stats_type == 0xffff;
-    enum ofp_stats_reply_flags flags;
-    pad(4);
-    uint32_t experimenter == 0x5c16c7;
-    uint32_t subtype == 8;
-    list(of_bsn_port_counter_stats_entry_t) port_counter_entries;
+   uint16_t vlan_vid;
+   pad(2);
+   pad(4);
+   uint64_t rx_bytes;
+   uint64_t rx_packets;
+   uint64_t tx_bytes;
+   uint64_t tx_packets;
 };
 
 struct of_bsn_vlan_counter_stats_reply : of_bsn_stats_reply {