Skip to content

ip: Support bridge VLAN stats in `ip stats'

Petr Machata bridge netdev 3 versions – Applied

Status from this message: applied to iproute2-next. Thanks

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest4 patches 2 repliesApplied
  2. v24 patches 8 repliesSuperseded
  3. v14 patches 9 repliesSuperseded

Changes in v3 from the cover letter

- Patch #4:
- Add man page coverage.
- Order the VLAN suite at the end in both master and slave subgroups.
- Retain Nik's Acked-by for these.

Patches in v3 Applied

#Subject and filesSizeRepliesApplied
1/4ip: ipstats: Iterate all xstats attributesip/ipstats.c+7 -100 replies
2/4ip: ip_common: Drop ipstats_stat_desc_xstats::inner_maxip/ip_common.h ip/iplink_bond.c ip/iplink_bridge.c+0 -70 replies
3/4lib: bridge: Add a module for bridge-related helpersMAINTAINERS bridge/vlan.c include/bridge.h +2 more+67 -460 replies
4/4ip: iplink_bridge: Support bridge VLAN stats in `ip stats'ip/iplink_bridge.c man/man8/ip-stats.8+57 -31 reply

Reviews trailers per patch

All 4 patches have a Reviewed-by or Acked-by.

PatchIdo SchimmelNikolay Aleksandrov
1/4R-b A-b
2/4R-b A-b
3/4R-b A-b
4/4R-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH iproute2-next v3 0/4] ip: Support bridge VLAN stats in `ip stats'

ip stats displays bridge-related multicast and STP stats, but not VLAN stats. There is code for requesting, decoding and formatting these stats accessible through bridge -s vlan', but the ip stats' suite lacks it. In this patchset, extract the bridge vlan' code to a generally accessible place and extend ip stats' to use it.

This reuses the existing display and JSON format, and plugs it into the existing `ip stats' hierarchy:

 # ip stats show dev v2 group xstats_slave subgroup bridge suite vlan
 2: v2: group xstats_slave subgroup bridge suite vlan
                   10
                     RX: 3376 bytes 50 packets
                     TX: 2824 bytes 44 packets

20
RX: 684 bytes 7 packets
TX: 0 bytes 0 packets

 # ip -j -p stats show dev v2 group xstats_slave subgroup bridge suite vlan
 [ {
         "ifindex": 2,
         "ifname": "v2",
         "group": "xstats_slave",
         "subgroup": "bridge",
         "suite": "vlan",
         "vlans": [ {
                 "vid": 10,
                 "rx_bytes": 3376,
                 "rx_packets": 50,
                 "tx_bytes": 2824,
                 "tx_packets": 44
             },{
                 "vid": 20,
                 "rx_bytes": 684,
                 "rx_packets": 7,
                 "tx_bytes": 0,
                 "tx_packets": 0
             } ]
     } ]

Similarly for the master stats:

 # ip stats show dev br1 group xstats subgroup bridge suite vlan
 211: br1: group xstats subgroup bridge suite vlan
                   10
                     RX: 3376 bytes 50 packets
                     TX: 2824 bytes 44 packets

20
RX: 684 bytes 7 packets
TX: 0 bytes 0 packets

 # ip -j -p stats show dev br1 group xstats subgroup bridge suite vlan
 [ {
         "ifindex": 211,
         "ifname": "br1",
         "group": "xstats",
         "subgroup": "bridge",
         "suite": "vlan",
         "vlans": [ {
                 "vid": 10,
                 "flags": [ ],
                 "rx_bytes": 3376,
                 "rx_packets": 50,
                 "tx_bytes": 2824,
                 "tx_packets": 44
             },{
                 "vid": 20,
                 "flags": [ ],
                 "rx_bytes": 684,
                 "rx_packets": 7,
                 "tx_bytes": 0,
                 "tx_packets": 0
             } ]
     } ]

v3:
- Patch #4:
- Add man page coverage.
- Order the VLAN suite at the end in both master and slave subgroups.
- Retain Nik's Acked-by for these.

v2:
- Patch #1:
- Use rtattr_for_each_nested
- Drop #include <alloca.h>, it's not used anymore
- Patch #3:
- Add MAINTAINERS entry for the module
- Patch #4:
- Add the master stats as well.

Petr Machata (4):
ip: ipstats: Iterate all xstats attributes
ip: ip_common: Drop ipstats_stat_desc_xstats::inner_max
lib: bridge: Add a module for bridge-related helpers
ip: iplink_bridge: Support bridge VLAN stats in `ip stats'

 MAINTAINERS         |  2 ++
 bridge/vlan.c       | 50 +++++--------------------------------------
 include/bridge.h    | 11 ++++++++++
 ip/ip_common.h      |  1 -
 ip/iplink_bond.c    |  2 --
 ip/iplink_bridge.c  | 52 +++++++++++++++++++++++++++++++++++++++++----
 ip/ipstats.c        | 17 ++++++---------
 lib/Makefile        |  3 ++-
 lib/bridge.c        | 47 ++++++++++++++++++++++++++++++++++++++++
 man/man8/ip-stats.8 | 12 ++++++++---
 10 files changed, 131 insertions(+), 66 deletions(-)
 create mode 100644 include/bridge.h
 create mode 100644 lib/bridge.c
Signature · 1 line
2.49.0