On 21/06/16 18:10, Nikolay Aleksandrov wrote:
> On 21/06/16 18:01, Stephen Hemminger wrote:
>> On Mon, 20 Jun 2016 12:13:19 +0200
>> Nikolay Aleksandrov <niko...@cumulusnetworks.com> wrote:
>>
>>> This patch adds support for the -statistics (-s) argument to the bridge
>>> vlan show command which will display the per-vlan statistics and the bridge
>>> device each vlan belongs to. The show command filtering options are both
>>> supported, also the man page is updated to explain the new option.
>>> This patch uses the new RTM_GETSTATS interface with a filter_mask to dump
>>> only the bridge vlans. Later we can add support for using the per-device
>>> dump and filter it in the kernel instead.
>>>
>>> Example:
>>> $ bridge -s vlan
>>> port        vlan id stats
>>> br0  1       RX: 33724730 bytes 492075 packets TX: 67409922 bytes 984029 
>>> packets
>>>      100     RX: 0 bytes 0 packets TX: 0 bytes 0 packets
>>>      200     RX: 0 bytes 0 packets TX: 0 bytes 0 packets
>>>      300     RX: 0 bytes 0 packets TX: 0 bytes 0 packets
>>>      301     RX: 169562135 bytes 790877 packets TX: 169550926 bytes 790824 
>>> packets
>>> br1  1       RX: 0 bytes 0 packets TX: 0 bytes 0 packets
>>>
>>> Note that it will print the per-vlan statistics for all vlans in a bridge
>>> even if the vlan is only added to ports. Later when we add per-port
>>> per-vlan statistics support, we'll be able to print the exact ports each
>>> vlan belongs to, not only the bridge.
>>>
>>> Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com>
>>
>> Thanks, this is a useful tool, but I think the formatting of output may need 
>> to be
>> reworked.  The bridge tool works similar to ip command. And in the ip 
>> command the
>> -s flag causes additional lines, but does not change the output format.
> 
> Indeed, I agree that it needs refinement.
> 

Or alternatively I can make it:
$ bridge vlan stats
a subcommand instead of using the "-s" argument in order to be consistent.
So it can have its own format.

>>
>> There is also double line spacing in current output, which scrolls off when
>> managing in little VM windows. Plush the port name is too narrow a field 
>> width
> 
> The port name width is the same as vlan show - 1 tab and a space.
> 
>>
>> Why not something like:
>>
>> $ bridge vlan
>> port    vlan ids
>> virbr1          1 PVID Egress Untagged
>> virbr4          1 PVID Egress Untagged
>> virbr0          1 PVID Egress Untagged
>>
>> $ bridge -s vlan
>> virbr1          1 PVID Egress Untagged
>>              RX: 33724730 bytes 492075 packets
>>              TX: 67409922 bytes 984029 packets
>> virbr0          1 PVID Egress Untagged
>>              RX: 169562135 bytes 790877 packets 
>>              TX: 169550926 bytes 790824 packets
>>
>> The -d detail flag would also be useful to implement
>>
> 
> Yep, this was one of the formats I tested. The only thing that we currently
> cannot implement is the flags printing as they're not exported via the stats
> utility and really can't be because some of these entries may not exist on
> the bridge device itself and it will get too confusing.
> I left a few padding fields and I can export the flags if the entry exists
> on the bridge device, then some will have the flags while others
> will not, but it still sounds confusing to me. I'd prefer to just leave the
> flags to the normal vlan show. What do you think ?
> 
> With your example:
>  $ bridge -s vlan
>  virbr1               1 
>               RX: 33724730 bytes 492075 packets
>               TX: 67409922 bytes 984029 packets
> 
> This way we can later add more fields like broadcast packets or multicast if
> we ever start counting them.
> 
> I'll later add the "-brief" flag and print them on one line since with
> thousands of vlans it comes in handy.
> 
> Cheers,
>  Nik
> 

Reply via email to