1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
package main
import (
"flag"
"fmt"
"log"
"github.com/safchain/ethtool"
)
func main() {
name := flag.String("interface", "", "Interface name")
flag.Parse()
if *name == "" {
log.Fatal("interface is not specified")
}
e, err := ethtool.NewEthtool()
if err != nil {
panic(err.Error())
}
defer e.Close()
features, err := e.Features(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("features: %+v\n", features)
stats, err := e.Stats(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("stats: %+v\n", stats)
busInfo, err := e.BusInfo(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("bus info: %+v\n", busInfo)
drvr, err := e.DriverName(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("driver name: %+v\n", drvr)
cmdGet, err := e.CmdGetMapped(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("cmd get: %+v\n", cmdGet)
fmt.Printf("max capacity: %+v\n", ethtool.SupportedSpeed(cmdGet["Supported"]))
msgLvlGet, err := e.MsglvlGet(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("msg lvl get: %+v\n", msgLvlGet)
drvInfo, err := e.DriverInfo(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("drvrinfo: %+v\n", drvInfo)
permAddr, err := e.PermAddr(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("permaddr: %+v\n", permAddr)
ts, err := e.GetTimestampingInformation(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("timestamping information: %+v\n", ts)
eeprom, err := e.ModuleEepromHex(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("module eeprom: %+v\n", eeprom)
linkSettings, err := e.GetLinkSettings(*name)
if err != nil {
panic(err.Error())
}
fmt.Printf("link settings: %+v\n", linkSettings)
}
|