aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>2016-08-17 06:53:10 -0400
committerDavid S. Miller <davem@davemloft.net>2016-08-19 02:18:42 -0400
commit61ba1a2da9693b88bf5f2bb8e7a99a29cd139122 (patch)
tree72e93abc50fa837e1e73b0a4601c84ef5ebe10a8
parentd5ff8c41b5f7289aee44df817023328295bc8463 (diff)
net: bridge: export vlan flags with the stats
Use one of the vlan xstats padding fields to export the vlan flags. This is needed in order to be able to distinguish between master (bridge) and port vlan entries in user-space when dumping the bridge vlan stats. Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/uapi/linux/if_bridge.h2
-rw-r--r--net/bridge/br_netlink.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
index c186f64fffca..ab92bca6d448 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -140,7 +140,7 @@ struct bridge_vlan_xstats {
140 __u64 tx_bytes; 140 __u64 tx_bytes;
141 __u64 tx_packets; 141 __u64 tx_packets;
142 __u16 vid; 142 __u16 vid;
143 __u16 pad1; 143 __u16 flags;
144 __u32 pad2; 144 __u32 pad2;
145}; 145};
146 146
diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
index 493ab9b3d51a..872d4c0deb59 100644
--- a/net/bridge/br_netlink.c
+++ b/net/bridge/br_netlink.c
@@ -1321,6 +1321,7 @@ static int br_fill_linkxstats(struct sk_buff *skb,
1321 continue; 1321 continue;
1322 memset(&vxi, 0, sizeof(vxi)); 1322 memset(&vxi, 0, sizeof(vxi));
1323 vxi.vid = v->vid; 1323 vxi.vid = v->vid;
1324 vxi.flags = v->flags;
1324 br_vlan_get_stats(v, &stats); 1325 br_vlan_get_stats(v, &stats);
1325 vxi.rx_bytes = stats.rx_bytes; 1326 vxi.rx_bytes = stats.rx_bytes;
1326 vxi.rx_packets = stats.rx_packets; 1327 vxi.rx_packets = stats.rx_packets;