net: bridge: export also pvid flag in the xstats flags
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Thu, 25 Aug 2016 12:27:51 +0000 (14:27 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Aug 2016 18:45:28 +0000 (11:45 -0700)
When I added support to export the vlan entry flags via xstats I forgot to
add support for the pvid since it is manually matched, so check if the
entry matches the vlan_group's pvid and set the flag appropriately.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_netlink.c

index 872d4c0deb59de778759b849ed2f8f3c9eadc119..190a5bc00f4a3896e449a91b2b0e66d7adc5f35c 100644 (file)
@@ -1313,6 +1313,9 @@ static int br_fill_linkxstats(struct sk_buff *skb,
                return -EMSGSIZE;
 
        if (vg) {
+               u16 pvid;
+
+               pvid = br_get_pvid(vg);
                list_for_each_entry(v, &vg->vlan_list, vlist) {
                        struct bridge_vlan_xstats vxi;
                        struct br_vlan_stats stats;
@@ -1322,6 +1325,8 @@ static int br_fill_linkxstats(struct sk_buff *skb,
                        memset(&vxi, 0, sizeof(vxi));
                        vxi.vid = v->vid;
                        vxi.flags = v->flags;
+                       if (v->vid == pvid)
+                               vxi.flags |= BRIDGE_VLAN_INFO_PVID;
                        br_vlan_get_stats(v, &stats);
                        vxi.rx_bytes = stats.rx_bytes;
                        vxi.rx_packets = stats.rx_packets;