Bug 202708 - netstat(1) output depends on options order
Summary: netstat(1) output depends on options order
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 10.1-STABLE
Hardware: amd64 Any
: --- Affects Many People
Assignee: freebsd-bugs mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-28 09:31 UTC by Dmitry Sivachenko
Modified: 2015-08-29 08:15 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.