diff --git a/core/unifi/uap_influx.go b/core/unifi/uap_influx.go index a5731e19..d5b3bf63 100644 --- a/core/unifi/uap_influx.go +++ b/core/unifi/uap_influx.go @@ -169,7 +169,8 @@ func (u UAP) Points() ([]*influx.Point, error) { tags = make(map[string]string) fields = make(map[string]interface{}) - // Loop each virtual AP (ESSID) and extract data for it from radio_tables and radio_table_stats. + // Loop each virtual AP (ESSID) and extract data for it + // from radio_tables and radio_table_stats. for _, s := range u.VapTable { tags["device_name"] = u.Name tags["device_id"] = u.ID @@ -226,6 +227,7 @@ func (u UAP) Points() ([]*influx.Point, error) { fields["wifi_tx_latency_mov_min"] = s.WifiTxLatencyMov.Min.Val fields["wifi_tx_latency_mov_total"] = s.WifiTxLatencyMov.Total.Val fields["wifi_tx_latency_mov_cuont"] = s.WifiTxLatencyMov.TotalCount.Val + for _, p := range u.RadioTable { if p.Name != s.RadioName { continue @@ -242,9 +244,8 @@ func (u UAP) Points() ([]*influx.Point, error) { fields["radio_caps"] = p.RadioCaps.Val fields["tx_power"] = p.TxPower.Val } + for _, p := range u.RadioTableStats { - // This may be a tad slower but it allows putting - // all the radio stats into one table. if p.Name != s.RadioName { continue } @@ -263,6 +264,7 @@ func (u UAP) Points() ([]*influx.Point, error) { fields["tx_retries"] = p.TxRetries.Val fields["user-num_sta"] = p.UserNumSta.Val } + pt, err := influx.NewPoint("uap_vaps", tags, fields, time.Now()) if err != nil { return points, err diff --git a/core/unifi/usw_influx.go b/core/unifi/usw_influx.go index 505812ee..a48a8e3e 100644 --- a/core/unifi/usw_influx.go +++ b/core/unifi/usw_influx.go @@ -18,16 +18,10 @@ func (u USW) Points() ([]*influx.Point, error) { "site_name": u.SiteName, "name": u.Name, "adopted": u.Adopted.Txt, - "adopt_ip": u.AdoptIP, - "adopt_url": u.AdoptURL, "cfgversion": u.Cfgversion, "config_network_ip": u.ConfigNetwork.IP, "config_network_type": u.ConfigNetwork.Type, - "connect_request_ip": u.ConnectRequestIP, - "connect_request_port": u.ConnectRequestPort, - "default": u.Default.Txt, "device_id": u.DeviceID, - "discovered_via": u.DiscoveredVia, "inform_ip": u.InformIP, "last_uplink_mac": u.LastUplink.UplinkMac, "known_cfgversion": u.KnownCfgversion, @@ -37,7 +31,6 @@ func (u USW) Points() ([]*influx.Point, error) { "outdoor_mode_override": u.OutdoorModeOverride, "serial": u.Serial, "type": u.Type, - "version_incompatible": u.VersionIncompatible.Txt, "dot1x_portctrl_enabled": u.Dot1XPortctrlEnabled.Txt, "flowctrl_enabled": u.FlowctrlEnabled.Txt, "has_fan": u.HasFan.Txt, @@ -47,58 +40,56 @@ func (u USW) Points() ([]*influx.Point, error) { "stp_version": u.StpVersion, } fields := map[string]interface{}{ - "fw_caps": u.FwCaps, - "guest-num_sta": u.GuestNumSta, + "fw_caps": u.FwCaps.Val, + "guest-num_sta": u.GuestNumSta.Val, "ip": u.IP, - "bytes": u.Bytes, - "fan_level": u.FanLevel, - "general_temperature": u.GeneralTemperature, - "last_seen": u.LastSeen, + "bytes": u.Bytes.Val, + "fan_level": u.FanLevel.Val, + "general_temperature": u.GeneralTemperature.Val, + "last_seen": u.LastSeen.Val, "license_state": u.LicenseState, "overheating": u.Overheating.Val, - "rx_bytes": u.RxBytes, - "tx_bytes": u.TxBytes, - "uptime": u.Uptime, - "considered_lost_at": u.ConsideredLostAt, - "next_heartbeat_at": u.NextHeartbeatAt, + "rx_bytes": u.RxBytes.Val, + "tx_bytes": u.TxBytes.Val, + "uptime": u.Uptime.Val, "roll_upgrade": u.Rollupgrade.Val, - "state": u.State, + "state": u.State.Val, "upgradable": u.Upgradable.Val, - "user-num_sta": u.UserNumSta, + "user-num_sta": u.UserNumSta.Val, "version": u.Version, - "loadavg_1": u.SysStats.Loadavg1, - "loadavg_5": u.SysStats.Loadavg5, - "loadavg_15": u.SysStats.Loadavg15, - "mem_buffer": u.SysStats.MemBuffer, - "mem_used": u.SysStats.MemUsed, - "mem_total": u.SysStats.MemTotal, - "cpu": u.SystemStats.CPU, - "mem": u.SystemStats.Mem, - "system_uptime": u.SystemStats.Uptime, - "stat_bytes": u.Stat.Bytes, - "stat_duration": u.Stat.Duration, - "stat_guest-rx_bytes": u.Stat.RxBytes, - "stat_guest-rx_crypts": u.Stat.RxCrypts, - "stat_guest-rx_dropped": u.Stat.RxDropped, - "stat_guest-rx_errors": u.Stat.RxErrors, - "stat_guest-rx_frags": u.Stat.RxFrags, - "stat_guest-rx_packets": u.Stat.RxPackets, - "stat_guest-tx_bytes": u.Stat.TxBytes, - "stat_guest-tx_dropped": u.Stat.TxDropped, - "stat_guest-tx_errors": u.Stat.TxErrors, - "stat_guest-tx_packets": u.Stat.TxPackets, - "stat_guest-tx_retries": u.Stat.TxRetries, - "stat_rx_bytes": u.Stat.RxBytes, - "stat_rx_crypts": u.Stat.RxCrypts, - "stat_rx_dropped": u.Stat.RxDropped, - "stat_rx_errors": u.Stat.RxErrors, - "stat_rx_frags": u.Stat.RxFrags, - "stat_rx_packets": u.Stat.TxPackets, - "stat_tx_bytes": u.Stat.TxBytes, - "stat_tx_dropped": u.Stat.TxDropped, - "stat_tx_errors": u.Stat.TxErrors, - "stat_tx_packets": u.Stat.TxPackets, - "stat_tx_retries": u.Stat.TxRetries, + "loadavg_1": u.SysStats.Loadavg1.Val, + "loadavg_5": u.SysStats.Loadavg5.Val, + "loadavg_15": u.SysStats.Loadavg15.Val, + "mem_buffer": u.SysStats.MemBuffer.Val, + "mem_used": u.SysStats.MemUsed.Val, + "mem_total": u.SysStats.MemTotal.Val, + "cpu": u.SystemStats.CPU.Val, + "mem": u.SystemStats.Mem.Val, + "system_uptime": u.SystemStats.Uptime.Val, + "stat_bytes": u.Stat.Bytes.Val, + "stat_duration": u.Stat.Duration.Val, + "stat_guest-rx_bytes": u.Stat.RxBytes.Val, + "stat_guest-rx_crypts": u.Stat.RxCrypts.Val, + "stat_guest-rx_dropped": u.Stat.RxDropped.Val, + "stat_guest-rx_errors": u.Stat.RxErrors.Val, + "stat_guest-rx_frags": u.Stat.RxFrags.Val, + "stat_guest-rx_packets": u.Stat.RxPackets.Val, + "stat_guest-tx_bytes": u.Stat.TxBytes.Val, + "stat_guest-tx_dropped": u.Stat.TxDropped.Val, + "stat_guest-tx_errors": u.Stat.TxErrors.Val, + "stat_guest-tx_packets": u.Stat.TxPackets.Val, + "stat_guest-tx_retries": u.Stat.TxRetries.Val, + "stat_rx_bytes": u.Stat.RxBytes.Val, + "stat_rx_crypts": u.Stat.RxCrypts.Val, + "stat_rx_dropped": u.Stat.RxDropped.Val, + "stat_rx_errors": u.Stat.RxErrors.Val, + "stat_rx_frags": u.Stat.RxFrags.Val, + "stat_rx_packets": u.Stat.TxPackets.Val, + "stat_tx_bytes": u.Stat.TxBytes.Val, + "stat_tx_dropped": u.Stat.TxDropped.Val, + "stat_tx_errors": u.Stat.TxErrors.Val, + "stat_tx_packets": u.Stat.TxPackets.Val, + "stat_tx_retries": u.Stat.TxRetries.Val, "uplink_depth": u.UplinkDepth.Txt, // Add the port stats too. } diff --git a/core/unifi/usw_type.go b/core/unifi/usw_type.go index c912f5d2..c2dc14ad 100644 --- a/core/unifi/usw_type.go +++ b/core/unifi/usw_type.go @@ -1,416 +1,368 @@ package unifi +import "time" + // USW represents all the data from the Ubiquiti Controller for a Unifi Switch. type USW struct { + SiteName string `json:"-"` ID string `json:"_id"` - UUptime float64 `json:"_uptime"` - AdoptIP string `json:"adopt_ip"` - AdoptURL string `json:"adopt_url"` Adopted FlexBool `json:"adopted"` - BoardRev float64 `json:"board_rev"` - Bytes float64 `json:"bytes"` + BoardRev FlexInt `json:"board_rev"` Cfgversion string `json:"cfgversion"` ConfigNetwork struct { - IP string `json:"ip"` Type string `json:"type"` + IP string `json:"ip"` } `json:"config_network"` - ConnectRequestIP string `json:"connect_request_ip"` - ConnectRequestPort string `json:"connect_request_port"` - ConsideredLostAt float64 `json:"considered_lost_at"` - Default FlexBool `json:"default"` - DeviceID string `json:"device_id"` - DhcpServerTable []interface{} `json:"dhcp_server_table"` - DiscoveredVia string `json:"discovered_via"` - Dot1XPortctrlEnabled FlexBool `json:"dot1x_portctrl_enabled"` - DownlinkTable []struct { - FullDuplex FlexBool `json:"full_duplex"` - Mac string `json:"mac"` - PortIdx float64 `json:"port_idx"` - Speed float64 `json:"speed"` - } `json:"downlink_table"` - EthernetTable []struct { + Dot1XPortctrlEnabled FlexBool `json:"dot1x_portctrl_enabled"` + EthernetTable []struct { Mac string `json:"mac"` + NumPort FlexInt `json:"num_port,omitempty"` Name string `json:"name"` - NumPort float64 `json:"num_port,omitempty"` } `json:"ethernet_table"` - FanLevel float64 `json:"fan_level"` - FlowctrlEnabled FlexBool `json:"flowctrl_enabled"` - FwCaps float64 `json:"fw_caps"` - GeneralTemperature float64 `json:"general_temperature"` - GuestNumSta float64 `json:"guest-num_sta"` - HasFan FlexBool `json:"has_fan"` - HasTemperature FlexBool `json:"has_temperature"` - InformIP string `json:"inform_ip"` - InformURL string `json:"inform_url"` - IP string `json:"ip"` - JumboframeEnabled FlexBool `json:"jumboframe_enabled"` - KnownCfgversion string `json:"known_cfgversion"` - LastSeen float64 `json:"last_seen"` - LastUplink struct { - UplinkMac string `json:"uplink_mac"` - } `json:"last_uplink"` + FlowctrlEnabled FlexBool `json:"flowctrl_enabled"` + FwCaps FlexInt `json:"fw_caps"` + HasFan FlexBool `json:"has_fan"` + HasTemperature FlexBool `json:"has_temperature"` + InformIP string `json:"inform_ip"` + InformURL string `json:"inform_url"` + IP string `json:"ip"` + JumboframeEnabled FlexBool `json:"jumboframe_enabled"` LedOverride string `json:"led_override"` LicenseState string `json:"license_state"` - Locating FlexBool `json:"locating"` Mac string `json:"mac"` Model string `json:"model"` Name string `json:"name"` - NextHeartbeatAt float64 `json:"next_heartbeat_at"` - NumSta float64 `json:"num_sta"` OutdoorModeOverride string `json:"outdoor_mode_override"` - Overheating FlexBool `json:"overheating"` PortOverrides []struct { Name string `json:"name,omitempty"` PoeMode string `json:"poe_mode,omitempty"` - PortIdx float64 `json:"port_idx"` + PortIdx FlexInt `json:"port_idx"` PortconfID string `json:"portconf_id"` } `json:"port_overrides"` PortTable []struct { - AggregatedBy FlexBool `json:"aggregated_by"` - Autoneg FlexBool `json:"autoneg"` - BytesR FlexInt `json:"bytes-r"` - Dot1XMode string `json:"dot1x_mode"` - Dot1XStatus string `json:"dot1x_status"` - Enable FlexBool `json:"enable"` - FlowctrlRx FlexBool `json:"flowctrl_rx"` - FlowctrlTx FlexBool `json:"flowctrl_tx"` - FullDuplex FlexBool `json:"full_duplex"` - IsUplink FlexBool `json:"is_uplink"` - Jumbo FlexBool `json:"jumbo"` - LldpTable []interface{} `json:"lldp_table"` - Masked FlexBool `json:"masked"` - Media string `json:"media"` - Name string `json:"name"` - OpMode string `json:"op_mode"` - PoeCaps FlexInt `json:"poe_caps"` - PoeClass string `json:"poe_class,omitempty"` - PoeCurrent FlexInt `json:"poe_current,omitempty"` - PoeEnable FlexBool `json:"poe_enable,omitempty"` - PoeGood FlexBool `json:"poe_good,omitempty"` - PoeMode string `json:"poe_mode,omitempty"` - PoePower FlexInt `json:"poe_power,omitempty"` - PoeVoltage FlexInt `json:"poe_voltage,omitempty"` - PortIdx FlexInt `json:"port_idx"` - PortPoe FlexBool `json:"port_poe"` - PortconfID string `json:"portconf_id"` - RxBroadcast FlexInt `json:"rx_broadcast"` - RxBytes FlexInt `json:"rx_bytes"` - RxBytesR FlexInt `json:"rx_bytes-r"` - RxDropped FlexInt `json:"rx_dropped"` - RxErrors FlexInt `json:"rx_errors"` - RxMulticast FlexInt `json:"rx_multicast"` - RxPackets FlexInt `json:"rx_packets"` - Speed FlexInt `json:"speed"` - StpPathcost FlexInt `json:"stp_pathcost"` - StpState string `json:"stp_state"` - TxBroadcast FlexInt `json:"tx_broadcast"` - TxBytes FlexInt `json:"tx_bytes"` - TxBytesR FlexInt `json:"tx_bytes-r"` - TxDropped FlexInt `json:"tx_dropped"` - TxErrors FlexInt `json:"tx_errors"` - TxMulticast FlexInt `json:"tx_multicast"` - TxPackets FlexInt `json:"tx_packets"` - Up FlexBool `json:"up"` - SfpFound FlexBool `json:"sfp_found,omitempty"` + PortIdx FlexInt `json:"port_idx"` + Media string `json:"media"` + PortPoe FlexBool `json:"port_poe"` + PoeCaps FlexInt `json:"poe_caps"` + SpeedCaps FlexInt `json:"speed_caps"` + OpMode string `json:"op_mode"` + PortconfID string `json:"portconf_id"` + PoeMode string `json:"poe_mode,omitempty"` + Autoneg FlexBool `json:"autoneg"` + Dot1XMode string `json:"dot1x_mode"` + Dot1XStatus string `json:"dot1x_status"` + Enable FlexBool `json:"enable"` + FlowctrlRx FlexBool `json:"flowctrl_rx"` + FlowctrlTx FlexBool `json:"flowctrl_tx"` + FullDuplex FlexBool `json:"full_duplex"` + IsUplink FlexBool `json:"is_uplink"` + Jumbo FlexBool `json:"jumbo"` + PoeClass string `json:"poe_class,omitempty"` + PoeCurrent FlexInt `json:"poe_current,omitempty"` + PoeEnable FlexBool `json:"poe_enable,omitempty"` + PoeGood FlexBool `json:"poe_good,omitempty"` + PoePower FlexInt `json:"poe_power,omitempty"` + PoeVoltage FlexInt `json:"poe_voltage,omitempty"` + RxBroadcast FlexInt `json:"rx_broadcast"` + RxBytes FlexInt `json:"rx_bytes"` + RxDropped FlexInt `json:"rx_dropped"` + RxErrors FlexInt `json:"rx_errors"` + RxMulticast FlexInt `json:"rx_multicast"` + RxPackets FlexInt `json:"rx_packets"` + Satisfaction FlexInt `json:"satisfaction"` + Speed FlexInt `json:"speed"` + StpPathcost FlexInt `json:"stp_pathcost"` + StpState string `json:"stp_state"` + TxBroadcast FlexInt `json:"tx_broadcast"` + TxBytes FlexInt `json:"tx_bytes"` + TxDropped FlexInt `json:"tx_dropped"` + TxErrors FlexInt `json:"tx_errors"` + TxMulticast FlexInt `json:"tx_multicast"` + TxPackets FlexInt `json:"tx_packets"` + Up FlexBool `json:"up"` + TxBytesR FlexInt `json:"tx_bytes-r"` + RxBytesR FlexInt `json:"rx_bytes-r"` + BytesR FlexInt `json:"bytes-r"` + Name string `json:"name"` + Masked FlexBool `json:"masked"` + AggregatedBy FlexBool `json:"aggregated_by"` + SfpFound FlexBool `json:"sfp_found,omitempty"` } `json:"port_table"` - Rollupgrade FlexBool `json:"rollupgrade"` - RxBytes float64 `json:"rx_bytes"` - Serial string `json:"serial"` - SiteID string `json:"site_id"` - SiteName string `json:"-"` - SSHSessionTable []interface{} `json:"ssh_session_table"` - - Stat struct { - Bytes float64 `json:"bytes"` - Datetime string `json:"datetime"` - Duration float64 `json:"duration"` - O string `json:"o"` - Oid string `json:"oid"` - Port1RxBroadcast float64 `json:"port_1-rx_broadcast"` - Port1RxBytes float64 `json:"port_1-rx_bytes"` - Port1RxDropped float64 `json:"port_1-rx_dropped"` - Port1RxMulticast float64 `json:"port_1-rx_multicast"` - Port1RxPackets float64 `json:"port_1-rx_packets"` - Port1TxBroadcast float64 `json:"port_1-tx_broadcast"` - Port1TxBytes float64 `json:"port_1-tx_bytes"` - Port1TxMulticast float64 `json:"port_1-tx_multicast"` - Port1TxPackets float64 `json:"port_1-tx_packets"` - Port2RxBroadcast float64 `json:"port_2-rx_broadcast"` - Port2RxBytes float64 `json:"port_2-rx_bytes"` - Port2RxDropped float64 `json:"port_2-rx_dropped"` - Port2RxMulticast float64 `json:"port_2-rx_multicast"` - Port2RxPackets float64 `json:"port_2-rx_packets"` - Port2TxBroadcast float64 `json:"port_2-tx_broadcast"` - Port2TxBytes float64 `json:"port_2-tx_bytes"` - Port2TxMulticast float64 `json:"port_2-tx_multicast"` - Port2TxPackets float64 `json:"port_2-tx_packets"` - Port3RxBroadcast float64 `json:"port_3-rx_broadcast"` - Port3RxBytes float64 `json:"port_3-rx_bytes"` - Port3RxDropped float64 `json:"port_3-rx_dropped"` - Port3RxMulticast float64 `json:"port_3-rx_multicast"` - Port3RxPackets float64 `json:"port_3-rx_packets"` - Port3TxBroadcast float64 `json:"port_3-tx_broadcast"` - Port3TxBytes float64 `json:"port_3-tx_bytes"` - Port3TxMulticast float64 `json:"port_3-tx_multicast"` - Port3TxPackets float64 `json:"port_3-tx_packets"` - Port4RxBroadcast float64 `json:"port_4-rx_broadcast"` - Port4RxBytes float64 `json:"port_4-rx_bytes"` - Port4RxDropped float64 `json:"port_4-rx_dropped"` - Port4RxMulticast float64 `json:"port_4-rx_multicast"` - Port4RxPackets float64 `json:"port_4-rx_packets"` - Port4TxBroadcast float64 `json:"port_4-tx_broadcast"` - Port4TxBytes float64 `json:"port_4-tx_bytes"` - Port4TxMulticast float64 `json:"port_4-tx_multicast"` - Port4TxPackets float64 `json:"port_4-tx_packets"` - Port5RxBroadcast float64 `json:"port_5-rx_broadcast"` - Port5RxBytes float64 `json:"port_5-rx_bytes"` - Port5RxDropped float64 `json:"port_5-rx_dropped"` - Port5RxMulticast float64 `json:"port_5-rx_multicast"` - Port5RxPackets float64 `json:"port_5-rx_packets"` - Port5TxBroadcast float64 `json:"port_5-tx_broadcast"` - Port5TxBytes float64 `json:"port_5-tx_bytes"` - Port5TxMulticast float64 `json:"port_5-tx_multicast"` - Port5TxPackets float64 `json:"port_5-tx_packets"` - Port6RxBroadcast float64 `json:"port_6-rx_broadcast"` - Port6RxBytes float64 `json:"port_6-rx_bytes"` - Port6RxDropped float64 `json:"port_6-rx_dropped"` - Port6RxMulticast float64 `json:"port_6-rx_multicast"` - Port6RxPackets float64 `json:"port_6-rx_packets"` - Port6TxBroadcast float64 `json:"port_6-tx_broadcast"` - Port6TxBytes float64 `json:"port_6-tx_bytes"` - Port6TxMulticast float64 `json:"port_6-tx_multicast"` - Port6TxPackets float64 `json:"port_6-tx_packets"` - Port7RxBroadcast float64 `json:"port_7-rx_broadcast"` - Port7RxBytes float64 `json:"port_7-rx_bytes"` - Port7RxDropped float64 `json:"port_7-rx_dropped"` - Port7RxMulticast float64 `json:"port_7-rx_multicast"` - Port7RxPackets float64 `json:"port_7-rx_packets"` - Port7TxBroadcast float64 `json:"port_7-tx_broadcast"` - Port7TxBytes float64 `json:"port_7-tx_bytes"` - Port7TxMulticast float64 `json:"port_7-tx_multicast"` - Port7TxPackets float64 `json:"port_7-tx_packets"` - Port8RxBroadcast float64 `json:"port_8-rx_broadcast"` - Port8RxBytes float64 `json:"port_8-rx_bytes"` - Port8RxDropped float64 `json:"port_8-rx_dropped"` - Port8RxMulticast float64 `json:"port_8-rx_multicast"` - Port8RxPackets float64 `json:"port_8-rx_packets"` - Port8TxBroadcast float64 `json:"port_8-tx_broadcast"` - Port8TxBytes float64 `json:"port_8-tx_bytes"` - Port8TxMulticast float64 `json:"port_8-tx_multicast"` - Port8TxPackets float64 `json:"port_8-tx_packets"` - Port9RxBroadcast float64 `json:"port_9-rx_broadcast"` - Port9RxBytes float64 `json:"port_9-rx_bytes"` - Port9RxDropped float64 `json:"port_9-rx_dropped"` - Port9RxMulticast float64 `json:"port_9-rx_multicast"` - Port9RxPackets float64 `json:"port_9-rx_packets"` - Port9TxBroadcast float64 `json:"port_9-tx_broadcast"` - Port9TxBytes float64 `json:"port_9-tx_bytes"` - Port9TxMulticast float64 `json:"port_9-tx_multicast"` - Port9TxPackets float64 `json:"port_9-tx_packets"` - Port10RxBroadcast float64 `json:"port_10-rx_broadcast"` - Port10RxBytes float64 `json:"port_10-rx_bytes"` - Port10RxDropped float64 `json:"port_10-rx_dropped"` - Port10RxMulticast float64 `json:"port_10-rx_multicast"` - Port10RxPackets float64 `json:"port_10-rx_packets"` - Port10TxBroadcast float64 `json:"port_10-tx_broadcast"` - Port10TxBytes float64 `json:"port_10-tx_bytes"` - Port10TxMulticast float64 `json:"port_10-tx_multicast"` - Port10TxPackets float64 `json:"port_10-tx_packets"` - Port11RxBroadcast float64 `json:"port_11-rx_broadcast"` - Port11RxBytes float64 `json:"port_11-rx_bytes"` - Port11RxDropped float64 `json:"port_11-rx_dropped"` - Port11RxMulticast float64 `json:"port_11-rx_multicast"` - Port11RxPackets float64 `json:"port_11-rx_packets"` - Port11TxBroadcast float64 `json:"port_11-tx_broadcast"` - Port11TxBytes float64 `json:"port_11-tx_bytes"` - Port11TxMulticast float64 `json:"port_11-tx_multicast"` - Port11TxPackets float64 `json:"port_11-tx_packets"` - Port12RxBroadcast float64 `json:"port_12-rx_broadcast"` - Port12RxBytes float64 `json:"port_12-rx_bytes"` - Port12RxDropped float64 `json:"port_12-rx_dropped"` - Port12RxMulticast float64 `json:"port_12-rx_multicast"` - Port12RxPackets float64 `json:"port_12-rx_packets"` - Port12TxBroadcast float64 `json:"port_12-tx_broadcast"` - Port12TxBytes float64 `json:"port_12-tx_bytes"` - Port12TxMulticast float64 `json:"port_12-tx_multicast"` - Port12TxPackets float64 `json:"port_12-tx_packets"` - Port13RxBroadcast float64 `json:"port_13-rx_broadcast"` - Port13RxBytes float64 `json:"port_13-rx_bytes"` - Port13RxDropped float64 `json:"port_13-rx_dropped"` - Port13RxMulticast float64 `json:"port_13-rx_multicast"` - Port13RxPackets float64 `json:"port_13-rx_packets"` - Port13TxBroadcast float64 `json:"port_13-tx_broadcast"` - Port13TxBytes float64 `json:"port_13-tx_bytes"` - Port13TxMulticast float64 `json:"port_13-tx_multicast"` - Port13TxPackets float64 `json:"port_13-tx_packets"` - Port14RxBroadcast float64 `json:"port_14-rx_broadcast"` - Port14RxBytes float64 `json:"port_14-rx_bytes"` - Port14RxDropped float64 `json:"port_14-rx_dropped"` - Port14RxMulticast float64 `json:"port_14-rx_multicast"` - Port14RxPackets float64 `json:"port_14-rx_packets"` - Port14TxBroadcast float64 `json:"port_14-tx_broadcast"` - Port14TxBytes float64 `json:"port_14-tx_bytes"` - Port14TxMulticast float64 `json:"port_14-tx_multicast"` - Port14TxPackets float64 `json:"port_14-tx_packets"` - Port15RxBroadcast float64 `json:"port_15-rx_broadcast"` - Port15RxBytes float64 `json:"port_15-rx_bytes"` - Port15RxDropped float64 `json:"port_15-rx_dropped"` - Port15RxMulticast float64 `json:"port_15-rx_multicast"` - Port15RxPackets float64 `json:"port_15-rx_packets"` - Port15TxBroadcast float64 `json:"port_15-tx_broadcast"` - Port15TxBytes float64 `json:"port_15-tx_bytes"` - Port15TxMulticast float64 `json:"port_15-tx_multicast"` - Port15TxPackets float64 `json:"port_15-tx_packets"` - Port16RxBroadcast float64 `json:"port_16-rx_broadcast"` - Port16RxBytes float64 `json:"port_16-rx_bytes"` - Port16RxDropped float64 `json:"port_16-rx_dropped"` - Port16RxMulticast float64 `json:"port_16-rx_multicast"` - Port16RxPackets float64 `json:"port_16-rx_packets"` - Port16TxBroadcast float64 `json:"port_16-tx_broadcast"` - Port16TxBytes float64 `json:"port_16-tx_bytes"` - Port16TxMulticast float64 `json:"port_16-tx_multicast"` - Port16TxPackets float64 `json:"port_16-tx_packets"` - Port17RxBroadcast float64 `json:"port_17-rx_broadcast"` - Port17RxBytes float64 `json:"port_17-rx_bytes"` - Port17RxDropped float64 `json:"port_17-rx_dropped"` - Port17RxMulticast float64 `json:"port_17-rx_multicast"` - Port17RxPackets float64 `json:"port_17-rx_packets"` - Port17TxBroadcast float64 `json:"port_17-tx_broadcast"` - Port17TxBytes float64 `json:"port_17-tx_bytes"` - Port17TxMulticast float64 `json:"port_17-tx_multicast"` - Port17TxPackets float64 `json:"port_17-tx_packets"` - Port18RxBroadcast float64 `json:"port_18-rx_broadcast"` - Port18RxBytes float64 `json:"port_18-rx_bytes"` - Port18RxDropped float64 `json:"port_18-rx_dropped"` - Port18RxMulticast float64 `json:"port_18-rx_multicast"` - Port18RxPackets float64 `json:"port_18-rx_packets"` - Port18TxBroadcast float64 `json:"port_18-tx_broadcast"` - Port18TxBytes float64 `json:"port_18-tx_bytes"` - Port18TxMulticast float64 `json:"port_18-tx_multicast"` - Port18TxPackets float64 `json:"port_18-tx_packets"` - Port19RxBroadcast float64 `json:"port_19-rx_broadcast"` - Port19RxBytes float64 `json:"port_19-rx_bytes"` - Port19RxDropped float64 `json:"port_19-rx_dropped"` - Port19RxMulticast float64 `json:"port_19-rx_multicast"` - Port19RxPackets float64 `json:"port_19-rx_packets"` - Port19TxBroadcast float64 `json:"port_19-tx_broadcast"` - Port19TxBytes float64 `json:"port_19-tx_bytes"` - Port19TxMulticast float64 `json:"port_19-tx_multicast"` - Port19TxPackets float64 `json:"port_19-tx_packets"` - Port20RxBroadcast float64 `json:"port_20-rx_broadcast"` - Port20RxBytes float64 `json:"port_20-rx_bytes"` - Port20RxDropped float64 `json:"port_20-rx_dropped"` - Port20RxMulticast float64 `json:"port_20-rx_multicast"` - Port20RxPackets float64 `json:"port_20-rx_packets"` - Port20TxBroadcast float64 `json:"port_20-tx_broadcast"` - Port20TxBytes float64 `json:"port_20-tx_bytes"` - Port20TxMulticast float64 `json:"port_20-tx_multicast"` - Port20TxPackets float64 `json:"port_20-tx_packets"` - Port21RxBroadcast float64 `json:"port_21-rx_broadcast"` - Port21RxBytes float64 `json:"port_21-rx_bytes"` - Port21RxDropped float64 `json:"port_21-rx_dropped"` - Port21RxMulticast float64 `json:"port_21-rx_multicast"` - Port21RxPackets float64 `json:"port_21-rx_packets"` - Port21TxBroadcast float64 `json:"port_21-tx_broadcast"` - Port21TxBytes float64 `json:"port_21-tx_bytes"` - Port21TxMulticast float64 `json:"port_21-tx_multicast"` - Port21TxPackets float64 `json:"port_21-tx_packets"` - Port22RxBroadcast float64 `json:"port_22-rx_broadcast"` - Port22RxBytes float64 `json:"port_22-rx_bytes"` - Port22RxDropped float64 `json:"port_22-rx_dropped"` - Port22RxMulticast float64 `json:"port_22-rx_multicast"` - Port22RxPackets float64 `json:"port_22-rx_packets"` - Port22TxBroadcast float64 `json:"port_22-tx_broadcast"` - Port22TxBytes float64 `json:"port_22-tx_bytes"` - Port22TxMulticast float64 `json:"port_22-tx_multicast"` - Port22TxPackets float64 `json:"port_22-tx_packets"` - Port23RxBroadcast float64 `json:"port_23-rx_broadcast"` - Port23RxBytes float64 `json:"port_23-rx_bytes"` - Port23RxDropped float64 `json:"port_23-rx_dropped"` - Port23RxMulticast float64 `json:"port_23-rx_multicast"` - Port23RxPackets float64 `json:"port_23-rx_packets"` - Port23TxBroadcast float64 `json:"port_23-tx_broadcast"` - Port23TxBytes float64 `json:"port_23-tx_bytes"` - Port23TxMulticast float64 `json:"port_23-tx_multicast"` - Port23TxPackets float64 `json:"port_23-tx_packets"` - Port24RxBroadcast float64 `json:"port_24-rx_broadcast"` - Port24RxBytes float64 `json:"port_24-rx_bytes"` - Port24RxDropped float64 `json:"port_24-rx_dropped"` - Port24RxMulticast float64 `json:"port_24-rx_multicast"` - Port24RxPackets float64 `json:"port_24-rx_packets"` - Port24TxBroadcast float64 `json:"port_24-tx_broadcast"` - Port24TxBytes float64 `json:"port_24-tx_bytes"` - Port24TxMulticast float64 `json:"port_24-tx_multicast"` - Port24TxPackets float64 `json:"port_24-tx_packets"` - // Have a 48 port switch? How 'bout a pull request. :D - RxBroadcast float64 `json:"rx_broadcast"` - RxBytes float64 `json:"rx_bytes"` - RxCrypts float64 `json:"rx_crypts"` - RxDropped float64 `json:"rx_dropped"` - RxErrors float64 `json:"rx_errors"` - RxFrags float64 `json:"rx_frags"` - RxMulticast float64 `json:"rx_multicast"` - RxPackets float64 `json:"rx_packets"` - SiteID string `json:"site_id"` - Sw string `json:"sw"` - Time float64 `json:"time"` - TxBroadcast float64 `json:"tx_broadcast"` - TxBytes float64 `json:"tx_bytes"` - TxDropped float64 `json:"tx_dropped"` - TxErrors float64 `json:"tx_errors"` - TxMulticast float64 `json:"tx_multicast"` - TxPackets float64 `json:"tx_packets"` - TxRetries float64 `json:"tx_retries"` - } `json:"stat"` - - State float64 `json:"state"` - StpPriority string `json:"stp_priority"` - StpVersion string `json:"stp_version"` - SysStats struct { - Loadavg1 float64 `json:"loadavg_1,string"` - Loadavg15 float64 `json:"loadavg_15,string"` - Loadavg5 float64 `json:"loadavg_5,string"` - MemBuffer float64 `json:"mem_buffer"` - MemTotal float64 `json:"mem_total"` - MemUsed float64 `json:"mem_used"` + Serial string `json:"serial"` + SiteID string `json:"site_id"` + StpPriority string `json:"stp_priority"` + StpVersion string `json:"stp_version"` + Type string `json:"type"` + Version string `json:"version"` + RequiredVersion string `json:"required_version"` + SwitchCaps struct { + FeatureCaps FlexInt `json:"feature_caps"` + MaxMirrorSessions FlexInt `json:"max_mirror_sessions"` + MaxAggregateSessions FlexInt `json:"max_aggregate_sessions"` + } `json:"switch_caps"` + HwCaps FlexInt `json:"hw_caps"` + Unsupported FlexBool `json:"unsupported"` + UnsupportedReason FlexInt `json:"unsupported_reason"` + SysErrorCaps FlexInt `json:"sys_error_caps"` + DeviceID string `json:"device_id"` + State FlexInt `json:"state"` + LastSeen FlexInt `json:"last_seen"` + Upgradable FlexBool `json:"upgradable"` + AdoptableWhenUpgraded FlexBool `json:"adoptable_when_upgraded"` + Rollupgrade FlexBool `json:"rollupgrade"` + KnownCfgversion string `json:"known_cfgversion"` + Uptime FlexInt `json:"uptime"` + Locating FlexBool `json:"locating"` + ConnectRequestIP string `json:"connect_request_ip"` + ConnectRequestPort string `json:"connect_request_port"` + SysStats struct { + Loadavg1 FlexInt `json:"loadavg_1"` + Loadavg15 FlexInt `json:"loadavg_15"` + Loadavg5 FlexInt `json:"loadavg_5"` + MemBuffer FlexInt `json:"mem_buffer"` + MemTotal FlexInt `json:"mem_total"` + MemUsed FlexInt `json:"mem_used"` } `json:"sys_stats"` SystemStats struct { - CPU float64 `json:"cpu,string"` - Mem float64 `json:"mem,string"` - Uptime float64 `json:"uptime,string"` + CPU FlexInt `json:"cpu"` + Mem FlexInt `json:"mem"` + Uptime FlexInt `json:"uptime"` } `json:"system-stats"` - TxBytes float64 `json:"tx_bytes"` - Type string `json:"type"` - Upgradable FlexBool `json:"upgradable"` - Uplink struct { + FanLevel FlexInt `json:"fan_level"` + GeneralTemperature FlexInt `json:"general_temperature"` + Overheating FlexBool `json:"overheating"` + TotalMaxPower FlexInt `json:"total_max_power"` + DownlinkTable []struct { + PortIdx FlexInt `json:"port_idx"` + Speed FlexInt `json:"speed"` + FullDuplex FlexBool `json:"full_duplex"` + Mac string `json:"mac"` + } `json:"downlink_table"` + Uplink struct { FullDuplex FlexBool `json:"full_duplex"` IP string `json:"ip"` Mac string `json:"mac"` - MaxSpeed float64 `json:"max_speed"` - Media string `json:"media"` Name string `json:"name"` Netmask string `json:"netmask"` - NumPort float64 `json:"num_port"` - PortIdx float64 `json:"port_idx"` - RxBytes float64 `json:"rx_bytes"` - RxBytesR float64 `json:"rx_bytes-r"` - RxDropped float64 `json:"rx_dropped"` - RxErrors float64 `json:"rx_errors"` - RxMulticast float64 `json:"rx_multicast"` - RxPackets float64 `json:"rx_packets"` - Speed float64 `json:"speed"` - TxBytes float64 `json:"tx_bytes"` - TxBytesR float64 `json:"tx_bytes-r"` - TxDropped float64 `json:"tx_dropped"` - TxErrors float64 `json:"tx_errors"` - TxPackets float64 `json:"tx_packets"` - Type string `json:"type"` + NumPort FlexInt `json:"num_port"` + RxBytes FlexInt `json:"rx_bytes"` + RxDropped FlexInt `json:"rx_dropped"` + RxErrors FlexInt `json:"rx_errors"` + RxMulticast FlexInt `json:"rx_multicast"` + RxPackets FlexInt `json:"rx_packets"` + Speed FlexInt `json:"speed"` + TxBytes FlexInt `json:"tx_bytes"` + TxDropped FlexInt `json:"tx_dropped"` + TxErrors FlexInt `json:"tx_errors"` + TxPackets FlexInt `json:"tx_packets"` Up FlexBool `json:"up"` + PortIdx FlexInt `json:"port_idx"` + Media string `json:"media"` + MaxSpeed FlexInt `json:"max_speed"` UplinkMac string `json:"uplink_mac"` + Type string `json:"type"` + TxBytesR FlexInt `json:"tx_bytes-r"` + RxBytesR FlexInt `json:"rx_bytes-r"` } `json:"uplink"` - UplinkDepth FlexInt `json:"uplink_depth"` - Uptime float64 `json:"uptime"` - UserNumSta float64 `json:"user-num_sta"` - Version string `json:"version"` - VersionIncompatible FlexBool `json:"version_incompatible"` + LastUplink struct { + UplinkMac string `json:"uplink_mac"` + } `json:"last_uplink"` + UplinkDepth FlexInt `json:"uplink_depth"` + Stat struct { + SiteID string `json:"site_id"` + O string `json:"o"` + Oid string `json:"oid"` + Sw string `json:"sw"` + Time FlexInt `json:"time"` + Datetime time.Time `json:"datetime"` + RxPackets FlexInt `json:"rx_packets"` + RxBytes FlexInt `json:"rx_bytes"` + RxErrors FlexInt `json:"rx_errors"` + RxDropped FlexInt `json:"rx_dropped"` + RxCrypts FlexInt `json:"rx_crypts"` + RxFrags FlexInt `json:"rx_frags"` + TxPackets FlexInt `json:"tx_packets"` + TxBytes FlexInt `json:"tx_bytes"` + TxErrors FlexInt `json:"tx_errors"` + TxDropped FlexInt `json:"tx_dropped"` + TxRetries FlexInt `json:"tx_retries"` + RxMulticast FlexInt `json:"rx_multicast"` + RxBroadcast FlexInt `json:"rx_broadcast"` + TxMulticast FlexInt `json:"tx_multicast"` + TxBroadcast FlexInt `json:"tx_broadcast"` + Bytes FlexInt `json:"bytes"` + Duration FlexInt `json:"duration"` + Port1RxPackets FlexInt `json:"port_1-rx_packets"` + Port1RxBytes FlexInt `json:"port_1-rx_bytes"` + Port1TxPackets FlexInt `json:"port_1-tx_packets"` + Port1TxBytes FlexInt `json:"port_1-tx_bytes"` + Port1TxMulticast FlexInt `json:"port_1-tx_multicast"` + Port1TxBroadcast FlexInt `json:"port_1-tx_broadcast"` + Port3RxPackets FlexInt `json:"port_3-rx_packets"` + Port3RxBytes FlexInt `json:"port_3-rx_bytes"` + Port3TxPackets FlexInt `json:"port_3-tx_packets"` + Port3TxBytes FlexInt `json:"port_3-tx_bytes"` + Port3RxBroadcast FlexInt `json:"port_3-rx_broadcast"` + Port3TxMulticast FlexInt `json:"port_3-tx_multicast"` + Port3TxBroadcast FlexInt `json:"port_3-tx_broadcast"` + Port6RxPackets FlexInt `json:"port_6-rx_packets"` + Port6RxBytes FlexInt `json:"port_6-rx_bytes"` + Port6TxPackets FlexInt `json:"port_6-tx_packets"` + Port6TxBytes FlexInt `json:"port_6-tx_bytes"` + Port6RxMulticast FlexInt `json:"port_6-rx_multicast"` + Port6TxMulticast FlexInt `json:"port_6-tx_multicast"` + Port6TxBroadcast FlexInt `json:"port_6-tx_broadcast"` + Port7RxPackets FlexInt `json:"port_7-rx_packets"` + Port7RxBytes FlexInt `json:"port_7-rx_bytes"` + Port7TxPackets FlexInt `json:"port_7-tx_packets"` + Port7TxBytes FlexInt `json:"port_7-tx_bytes"` + Port7TxMulticast FlexInt `json:"port_7-tx_multicast"` + Port7TxBroadcast FlexInt `json:"port_7-tx_broadcast"` + Port9RxPackets FlexInt `json:"port_9-rx_packets"` + Port9RxBytes FlexInt `json:"port_9-rx_bytes"` + Port9TxPackets FlexInt `json:"port_9-tx_packets"` + Port9TxBytes FlexInt `json:"port_9-tx_bytes"` + Port9TxMulticast FlexInt `json:"port_9-tx_multicast"` + Port9TxBroadcast FlexInt `json:"port_9-tx_broadcast"` + Port10RxPackets FlexInt `json:"port_10-rx_packets"` + Port10RxBytes FlexInt `json:"port_10-rx_bytes"` + Port10TxPackets FlexInt `json:"port_10-tx_packets"` + Port10TxBytes FlexInt `json:"port_10-tx_bytes"` + Port10RxMulticast FlexInt `json:"port_10-rx_multicast"` + Port10TxMulticast FlexInt `json:"port_10-tx_multicast"` + Port10TxBroadcast FlexInt `json:"port_10-tx_broadcast"` + Port11RxPackets FlexInt `json:"port_11-rx_packets"` + Port11RxBytes FlexInt `json:"port_11-rx_bytes"` + Port11TxPackets FlexInt `json:"port_11-tx_packets"` + Port11TxBytes FlexInt `json:"port_11-tx_bytes"` + Port11TxMulticast FlexInt `json:"port_11-tx_multicast"` + Port11TxBroadcast FlexInt `json:"port_11-tx_broadcast"` + Port12RxPackets FlexInt `json:"port_12-rx_packets"` + Port12RxBytes FlexInt `json:"port_12-rx_bytes"` + Port12TxPackets FlexInt `json:"port_12-tx_packets"` + Port12TxBytes FlexInt `json:"port_12-tx_bytes"` + Port12TxMulticast FlexInt `json:"port_12-tx_multicast"` + Port12TxBroadcast FlexInt `json:"port_12-tx_broadcast"` + Port13RxPackets FlexInt `json:"port_13-rx_packets"` + Port13RxBytes FlexInt `json:"port_13-rx_bytes"` + Port13TxPackets FlexInt `json:"port_13-tx_packets"` + Port13TxBytes FlexInt `json:"port_13-tx_bytes"` + Port13RxMulticast FlexInt `json:"port_13-rx_multicast"` + Port13RxBroadcast FlexInt `json:"port_13-rx_broadcast"` + Port13TxMulticast FlexInt `json:"port_13-tx_multicast"` + Port13TxBroadcast FlexInt `json:"port_13-tx_broadcast"` + Port15RxPackets FlexInt `json:"port_15-rx_packets"` + Port15RxBytes FlexInt `json:"port_15-rx_bytes"` + Port15TxPackets FlexInt `json:"port_15-tx_packets"` + Port15TxBytes FlexInt `json:"port_15-tx_bytes"` + Port15RxBroadcast FlexInt `json:"port_15-rx_broadcast"` + Port15TxMulticast FlexInt `json:"port_15-tx_multicast"` + Port15TxBroadcast FlexInt `json:"port_15-tx_broadcast"` + Port16RxPackets FlexInt `json:"port_16-rx_packets"` + Port16RxBytes FlexInt `json:"port_16-rx_bytes"` + Port16TxPackets FlexInt `json:"port_16-tx_packets"` + Port16TxBytes FlexInt `json:"port_16-tx_bytes"` + Port16TxMulticast FlexInt `json:"port_16-tx_multicast"` + Port16TxBroadcast FlexInt `json:"port_16-tx_broadcast"` + Port17RxPackets FlexInt `json:"port_17-rx_packets"` + Port17RxBytes FlexInt `json:"port_17-rx_bytes"` + Port17TxPackets FlexInt `json:"port_17-tx_packets"` + Port17TxBytes FlexInt `json:"port_17-tx_bytes"` + Port17TxMulticast FlexInt `json:"port_17-tx_multicast"` + Port17TxBroadcast FlexInt `json:"port_17-tx_broadcast"` + Port18RxPackets FlexInt `json:"port_18-rx_packets"` + Port18RxBytes FlexInt `json:"port_18-rx_bytes"` + Port18TxPackets FlexInt `json:"port_18-tx_packets"` + Port18TxBytes FlexInt `json:"port_18-tx_bytes"` + Port18RxMulticast FlexInt `json:"port_18-rx_multicast"` + Port18TxMulticast FlexInt `json:"port_18-tx_multicast"` + Port18TxBroadcast FlexInt `json:"port_18-tx_broadcast"` + Port19RxPackets FlexInt `json:"port_19-rx_packets"` + Port19RxBytes FlexInt `json:"port_19-rx_bytes"` + Port19TxPackets FlexInt `json:"port_19-tx_packets"` + Port19TxBytes FlexInt `json:"port_19-tx_bytes"` + Port19TxMulticast FlexInt `json:"port_19-tx_multicast"` + Port19TxBroadcast FlexInt `json:"port_19-tx_broadcast"` + Port21RxPackets FlexInt `json:"port_21-rx_packets"` + Port21RxBytes FlexInt `json:"port_21-rx_bytes"` + Port21TxPackets FlexInt `json:"port_21-tx_packets"` + Port21TxBytes FlexInt `json:"port_21-tx_bytes"` + Port21RxBroadcast FlexInt `json:"port_21-rx_broadcast"` + Port21TxMulticast FlexInt `json:"port_21-tx_multicast"` + Port21TxBroadcast FlexInt `json:"port_21-tx_broadcast"` + Port22RxPackets FlexInt `json:"port_22-rx_packets"` + Port22RxBytes FlexInt `json:"port_22-rx_bytes"` + Port22TxPackets FlexInt `json:"port_22-tx_packets"` + Port22TxBytes FlexInt `json:"port_22-tx_bytes"` + Port22RxMulticast FlexInt `json:"port_22-rx_multicast"` + Port22TxMulticast FlexInt `json:"port_22-tx_multicast"` + Port22TxBroadcast FlexInt `json:"port_22-tx_broadcast"` + Port23RxPackets FlexInt `json:"port_23-rx_packets"` + Port23RxBytes FlexInt `json:"port_23-rx_bytes"` + Port23RxDropped FlexInt `json:"port_23-rx_dropped"` + Port23TxPackets FlexInt `json:"port_23-tx_packets"` + Port23TxBytes FlexInt `json:"port_23-tx_bytes"` + Port23RxMulticast FlexInt `json:"port_23-rx_multicast"` + Port23RxBroadcast FlexInt `json:"port_23-rx_broadcast"` + Port23TxMulticast FlexInt `json:"port_23-tx_multicast"` + Port23TxBroadcast FlexInt `json:"port_23-tx_broadcast"` + Port24RxPackets FlexInt `json:"port_24-rx_packets"` + Port24RxBytes FlexInt `json:"port_24-rx_bytes"` + Port24TxPackets FlexInt `json:"port_24-tx_packets"` + Port24TxBytes FlexInt `json:"port_24-tx_bytes"` + Port24RxMulticast FlexInt `json:"port_24-rx_multicast"` + Port24TxMulticast FlexInt `json:"port_24-tx_multicast"` + Port24TxBroadcast FlexInt `json:"port_24-tx_broadcast"` + Port1RxMulticast FlexInt `json:"port_1-rx_multicast"` + Port3RxDropped FlexInt `json:"port_3-rx_dropped"` + Port3RxMulticast FlexInt `json:"port_3-rx_multicast"` + Port6RxDropped FlexInt `json:"port_6-rx_dropped"` + Port7RxDropped FlexInt `json:"port_7-rx_dropped"` + Port7RxMulticast FlexInt `json:"port_7-rx_multicast"` + Port9RxDropped FlexInt `json:"port_9-rx_dropped"` + Port9RxMulticast FlexInt `json:"port_9-rx_multicast"` + Port9RxBroadcast FlexInt `json:"port_9-rx_broadcast"` + Port10RxBroadcast FlexInt `json:"port_10-rx_broadcast"` + Port12RxDropped FlexInt `json:"port_12-rx_dropped"` + Port12RxMulticast FlexInt `json:"port_12-rx_multicast"` + Port13RxDropped FlexInt `json:"port_13-rx_dropped"` + Port17RxDropped FlexInt `json:"port_17-rx_dropped"` + Port17RxMulticast FlexInt `json:"port_17-rx_multicast"` + Port17RxBroadcast FlexInt `json:"port_17-rx_broadcast"` + Port19RxDropped FlexInt `json:"port_19-rx_dropped"` + Port19RxMulticast FlexInt `json:"port_19-rx_multicast"` + Port19RxBroadcast FlexInt `json:"port_19-rx_broadcast"` + Port21RxDropped FlexInt `json:"port_21-rx_dropped"` + Port21RxMulticast FlexInt `json:"port_21-rx_multicast"` + Port7RxBroadcast FlexInt `json:"port_7-rx_broadcast"` + Port18RxBroadcast FlexInt `json:"port_18-rx_broadcast"` + Port16RxMulticast FlexInt `json:"port_16-rx_multicast"` + Port15RxDropped FlexInt `json:"port_15-rx_dropped"` + Port15RxMulticast FlexInt `json:"port_15-rx_multicast"` + Port16RxBroadcast FlexInt `json:"port_16-rx_broadcast"` + Port11RxBroadcast FlexInt `json:"port_11-rx_broadcast"` + Port12RxBroadcast FlexInt `json:"port_12-rx_broadcast"` + Port6RxBroadcast FlexInt `json:"port_6-rx_broadcast"` + Port24RxBroadcast FlexInt `json:"port_24-rx_broadcast"` + Port22RxBroadcast FlexInt `json:"port_22-rx_broadcast"` + Port10TxDropped FlexInt `json:"port_10-tx_dropped"` + Port16TxDropped FlexInt `json:"port_16-tx_dropped"` + Port1RxBroadcast FlexInt `json:"port_1-rx_broadcast"` + Port4RxPackets FlexInt `json:"port_4-rx_packets"` + Port4RxBytes FlexInt `json:"port_4-rx_bytes"` + Port4RxDropped FlexInt `json:"port_4-rx_dropped"` + Port4TxPackets FlexInt `json:"port_4-tx_packets"` + Port4TxBytes FlexInt `json:"port_4-tx_bytes"` + Port4TxDropped FlexInt `json:"port_4-tx_dropped"` + Port4RxMulticast FlexInt `json:"port_4-rx_multicast"` + Port4RxBroadcast FlexInt `json:"port_4-rx_broadcast"` + Port4TxMulticast FlexInt `json:"port_4-tx_multicast"` + Port4TxBroadcast FlexInt `json:"port_4-tx_broadcast"` + } `json:"stat"` + TxBytes FlexInt `json:"tx_bytes"` + RxBytes FlexInt `json:"rx_bytes"` + Bytes FlexInt `json:"bytes"` + NumSta FlexInt `json:"num_sta"` + UserNumSta FlexInt `json:"user-num_sta"` + GuestNumSta FlexInt `json:"guest-num_sta"` }