Bug 202708

Summary: netstat(1) output depends on options order
Product: Base System Reporter: Dmitry Sivachenko <demon>
Component: binAssignee: freebsd-bugs (Nobody) <bugs>
Status: New ---    
Severity: Affects Many People CC: hiren
Priority: ---    
Version: 10.1-STABLE   
Hardware: amd64   
OS: Any   

Description Dmitry Sivachenko freebsd_committer 2015-08-28 09:31:53 UTC
I get different numbers in netstat(1) output when using different order of options:

# netstat -I em0 -i 1
            input           net0           output
   packets  errs idrops      bytes    packets  errs      bytes colls
    156271     0     0   17092074     154604     0   20191073     0
    157305     0     0   17249790     155758     0   20542298     0
    157213     0     0   17161068     155536     0   20388553     0
    156019     0     0   16867807     154341     0   19934722     0

At the same time:
# netstat  -i 1 -I em0
            input        (Total)           output
   packets  errs idrops      bytes    packets  errs      bytes colls
    508079     0     0   54256010     506328     0   57473424     0
    509058     0     0   53768771     507231     0   56816927     0
    508992     0     0   54059333     507435     0   57132934     0

I suppose that in second form it silently ignores -I em0 and shows statistics including loopback.
Comment 1 Hiren Panchasara freebsd_committer 2015-08-28 23:59:16 UTC
I think it works as expected. '-i' means 'all interfaces' and not 'interval'. You can get data each second for em0 by just 'netstat -I em0 1'

When you say 'netstat -i 1....' it'd go and display it for all combined each second.

(This is as per my understanding and read of man 1 netstat)
Comment 2 Dmitry Sivachenko freebsd_committer 2015-08-29 08:15:16 UTC
Yes, I understands that, the point was that when options are mutually exclusive, an error should be produces instead, and not silently change behaviour.