[TASK] add support for wifictld
This commit is contained in:
parent
31267858a6
commit
1dfb547080
|
@ -2,16 +2,17 @@ package data
|
||||||
|
|
||||||
// Nodeinfo struct
|
// Nodeinfo struct
|
||||||
type Nodeinfo struct {
|
type Nodeinfo struct {
|
||||||
NodeID string `json:"node_id"`
|
NodeID string `json:"node_id"`
|
||||||
Network Network `json:"network"`
|
Network Network `json:"network"`
|
||||||
Owner *Owner `json:"owner"`
|
Owner *Owner `json:"owner"`
|
||||||
System System `json:"system"`
|
System System `json:"system"`
|
||||||
Hostname string `json:"hostname"`
|
Hostname string `json:"hostname"`
|
||||||
Location *Location `json:"location,omitempty"`
|
Location *Location `json:"location,omitempty"`
|
||||||
Software Software `json:"software"`
|
Software Software `json:"software"`
|
||||||
Hardware Hardware `json:"hardware"`
|
Hardware Hardware `json:"hardware"`
|
||||||
VPN bool `json:"vpn"`
|
VPN bool `json:"vpn"`
|
||||||
Wireless *Wireless `json:"wireless,omitempty"`
|
Wireless *Wireless `json:"wireless,omitempty"`
|
||||||
|
Wifictld *WifiCTLDNodeinfo `json:"wifictld,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NetworkInterface struct
|
// NetworkInterface struct
|
||||||
|
|
|
@ -32,6 +32,7 @@ type Statistics struct {
|
||||||
} `json:"traffic,omitempty"`
|
} `json:"traffic,omitempty"`
|
||||||
Switch map[string]*SwitchPort `json:"switch,omitempty"`
|
Switch map[string]*SwitchPort `json:"switch,omitempty"`
|
||||||
Wireless WirelessStatistics `json:"wireless,omitempty"`
|
Wireless WirelessStatistics `json:"wireless,omitempty"`
|
||||||
|
Wifictld *WifiCTLDStatistics `json:"wifictld,omitempty"`
|
||||||
ProcStats *ProcStats `json:"stat,omitempty"`
|
ProcStats *ProcStats `json:"stat,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package data
|
||||||
|
|
||||||
|
// WifiCTLDNodeinfo struct (defined in: https://chaos.expert/genofire/wifictld/blob/preview/wireless/wifictld/src/ubus_service.c - ubus_get_config)
|
||||||
|
type WifiCTLDNodeinfo struct {
|
||||||
|
Verbose uint8 `json:"verbose,omitempty"`
|
||||||
|
ClientTryThreashold uint32 `json:"client_try_threashold,omitempty"`
|
||||||
|
ClientSignalThreashold int32 `json:"client_signal_threashold,omitempty"`
|
||||||
|
ClientCleanEvery uint32 `json:"client_clean_every,omitempty"`
|
||||||
|
ClientCleanOlderThen uint32 `json:"client_clean_older_then,omitempty"`
|
||||||
|
ClientCleanAuthed uint8 `json:"client_clean_authed,omitempty"`
|
||||||
|
ClientForce uint8 `json:"client_force,omitempty"`
|
||||||
|
ClientForceProbe uint8 `json:"client_force_probe,omitempty"`
|
||||||
|
ClientProbeSteering uint8 `json:"client_probe_steering,omitempty"`
|
||||||
|
ClientProbeLearning uint8 `json:"client_probe_learning,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// WifiCTLDStatistics struct (defined in: https://chaos.expert/genofire/wifictld/blob/preview/wireless/respondd-module-wifictld/src/respondd.c - respondd_provider_statistics)
|
||||||
|
type WifiCTLDStatistics struct {
|
||||||
|
Total uint32 `json:"total,omitempty"`
|
||||||
|
Client24 uint32 `json:"client24,omitempty"`
|
||||||
|
Client5 uint32 `json:"client5,omitempty"`
|
||||||
|
Authed uint32 `json:"authed,omitempty"`
|
||||||
|
Connected uint32 `json:"connected,omitempty"`
|
||||||
|
HighestTryProbe uint32 `json:"highest_try_probe,omitempty"`
|
||||||
|
HighestTryAuth uint32 `json:"highest_try_auth,omitempty"`
|
||||||
|
}
|
|
@ -153,6 +153,17 @@ func (conn *Connection) InsertNode(node *runtime.Node) {
|
||||||
tags.SetString("frequency"+suffix, strconv.Itoa(int(airtime.Frequency)))
|
tags.SetString("frequency"+suffix, strconv.Itoa(int(airtime.Frequency)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add Wifictld statistics
|
||||||
|
if wifictld := stats.Wifictld; wifictld != nil {
|
||||||
|
fields["wifictld.total"] = wifictld.Total
|
||||||
|
fields["wifictld.client24"] = wifictld.Client24
|
||||||
|
fields["wifictld.client5"] = wifictld.Client5
|
||||||
|
fields["wifictld.authed"] = wifictld.Authed
|
||||||
|
fields["wifictld.connected"] = wifictld.Connected
|
||||||
|
fields["wifictld.highest_try_probe"] = wifictld.HighestTryProbe
|
||||||
|
fields["wifictld.highest_try_auth"] = wifictld.HighestTryAuth
|
||||||
|
}
|
||||||
|
|
||||||
conn.addPoint(MeasurementNode, tags, fields, time)
|
conn.addPoint(MeasurementNode, tags, fields, time)
|
||||||
|
|
||||||
// Add DHCP statistics
|
// Add DHCP statistics
|
||||||
|
|
Loading…
Reference in New Issue