mirror of
https://github.com/Telecominfraproject/wlan-cloud-loadsim.git
synced 2025-11-02 03:27:55 +00:00
Adding v4/v5 encoding decoding
This commit is contained in:
128
protobuf/ip_dns_telemetry.proto
Normal file
128
protobuf/ip_dns_telemetry.proto
Normal file
@@ -0,0 +1,128 @@
|
||||
// Copyright (c) 2015, Plume Design Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
// 1. Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// 2. Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
// 3. Neither the name of the Plume Design Inc. nor the
|
||||
// names of its contributors may be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL Plume Design Inc. BE LIABLE FOR ANY
|
||||
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
// WebClassification Stats
|
||||
package wc.stats;
|
||||
|
||||
message WCHealthStats {
|
||||
|
||||
// total number of lookups requested against the
|
||||
// WebClassification plugin/module on device
|
||||
optional uint32 totalLookups = 1;
|
||||
|
||||
// the WC plugin first looks into local cache -
|
||||
// cacheHits is the number of lookups that got resolved from local cache
|
||||
optional uint32 cacheHits = 2;
|
||||
|
||||
// when the fqdn is not found in local cache - the plugin does a
|
||||
// remote internet call against Web Classification service
|
||||
// remoteLookups is total number of such remote internet calls made
|
||||
optional uint32 remoteLookups = 3;
|
||||
|
||||
// the plugin may fail to connect to the remote internet Web Classification
|
||||
// service - connectivityFailures counts number of such
|
||||
// connectivity failures
|
||||
optional uint32 connectivityFailures = 4;
|
||||
|
||||
|
||||
// the plugin may successfully connect to the IP of the Web Classification
|
||||
// service - but the service may choke and return invalid response e.g.
|
||||
// invalid license key or server failure of some sort
|
||||
optional uint32 serviceFailures = 5;
|
||||
|
||||
// uncategorized is how many FQDNs could not be classified/categorized
|
||||
// by the Web Classification service
|
||||
optional uint32 uncategorized = 6;
|
||||
|
||||
// Min latency in milliseconds by the Web Classification service
|
||||
optional uint32 minLatency = 7;
|
||||
|
||||
// Max latency in milliseconds by the Web Classification service
|
||||
optional uint32 maxLatency = 8;
|
||||
|
||||
// Average latency in milliseconds by the Web Classification service
|
||||
optional uint32 averageLatency = 9;
|
||||
|
||||
|
||||
// number of locally cached entries
|
||||
optional uint32 cachedEntries = 10;
|
||||
|
||||
|
||||
// total cache size in number of allocated entries
|
||||
optional uint32 cacheSize = 11;
|
||||
}
|
||||
|
||||
|
||||
// Hero metrics
|
||||
message WCRiskStats {
|
||||
optional int32 risk = 1;
|
||||
optional uint32 totalHits = 2;
|
||||
}
|
||||
|
||||
|
||||
message WCCategoryStats {
|
||||
optional int32 categoryId = 1;
|
||||
repeated WCRiskStats wcRiskStats = 2;
|
||||
}
|
||||
|
||||
|
||||
message WCRuleStats {
|
||||
optional string policyName = 1;
|
||||
|
||||
// "kids:d:", "kids", "spamPhishMalware-ip:d",
|
||||
// can be empty if no rules hit
|
||||
optional string ruleName = 2;
|
||||
repeated WCCategoryStats wcCategoryStats = 3;
|
||||
}
|
||||
|
||||
|
||||
message WCHeroStats {
|
||||
// source mac format as "5e:00:74:59:79:00"
|
||||
required string srcMac = 1;
|
||||
repeated WCRuleStats wcRuleStats = 2;
|
||||
}
|
||||
|
||||
|
||||
message ObservationPoint {
|
||||
optional string nodeId = 1;
|
||||
optional string locationId = 2;
|
||||
}
|
||||
|
||||
|
||||
message ObservationWindow {
|
||||
optional uint64 startedAt = 1;
|
||||
optional uint64 endedAt = 2;
|
||||
}
|
||||
|
||||
|
||||
message WCStatsReport {
|
||||
// must be "webpulse" || "brightcloud"
|
||||
optional string wcProvider = 1;
|
||||
optional ObservationPoint observationPoint = 2;
|
||||
optional ObservationWindow observationWindow = 3;
|
||||
optional WCHealthStats wcHealthStats = 4;
|
||||
repeated WCHeroStats wcHeroStats = 5;
|
||||
}
|
||||
94
protobuf/network_metadata.proto
Normal file
94
protobuf/network_metadata.proto
Normal file
@@ -0,0 +1,94 @@
|
||||
// Copyright (c) 2015, Plume Design Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
// 1. Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// 2. Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
// 3. Neither the name of the Plume Design Inc. nor the
|
||||
// names of its contributors may be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL Plume Design Inc. BE LIABLE FOR ANY
|
||||
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
package traffic;
|
||||
|
||||
message ObservationPoint {
|
||||
optional string nodeId = 1;
|
||||
optional string locationId = 2;
|
||||
}
|
||||
|
||||
message VendorData_KVPair {
|
||||
optional string key = 1;
|
||||
optional string val_str = 2;
|
||||
optional uint32 val_u32 = 3;
|
||||
optional uint64 val_u64 = 4;
|
||||
}
|
||||
|
||||
message VendorData {
|
||||
optional string vendor = 1;
|
||||
repeated VendorData_KVPair vendorKVPair = 2;
|
||||
}
|
||||
|
||||
message FlowTags {
|
||||
optional string vendor = 1;
|
||||
optional string appName = 2;
|
||||
repeated string appTags = 10;
|
||||
}
|
||||
|
||||
message FlowState {
|
||||
optional uint64 firstObservedAt = 1;
|
||||
optional uint64 lastObservedAt = 2;
|
||||
optional bool flowStart = 3;
|
||||
optional bool flowEnd = 4;
|
||||
}
|
||||
|
||||
message FlowKey {
|
||||
optional string srcMac = 1;
|
||||
optional string dstMac = 2;
|
||||
optional uint32 vlanId = 3;
|
||||
optional uint32 etherType = 4;
|
||||
optional string srcIp = 5;
|
||||
optional string dstIp = 6;
|
||||
optional uint32 ipProtocol = 7;
|
||||
optional uint32 tptSrcPort = 8;
|
||||
optional uint32 tptDstPort = 9;
|
||||
repeated FlowTags flowTags = 10;
|
||||
repeated VendorData vendorData = 11;
|
||||
optional FlowState flowState = 12;
|
||||
}
|
||||
|
||||
message FlowCounters {
|
||||
optional uint64 packetsCount = 1;
|
||||
optional uint64 bytesCount = 2;
|
||||
}
|
||||
|
||||
message FlowStats {
|
||||
optional FlowKey flowKey = 1;
|
||||
optional FlowCounters flowCount = 2;
|
||||
}
|
||||
|
||||
message ObservationWindow {
|
||||
optional uint64 startedAt = 1;
|
||||
optional uint64 endedAt = 2;
|
||||
repeated FlowStats flowStats = 3;
|
||||
}
|
||||
|
||||
message FlowReport {
|
||||
optional uint64 reportedAt = 1;
|
||||
optional ObservationPoint observationPoint = 2;
|
||||
repeated ObservationWindow observationWindow = 3;
|
||||
}
|
||||
844
protobuf/opensync_stats.proto
Normal file
844
protobuf/opensync_stats.proto
Normal file
@@ -0,0 +1,844 @@
|
||||
// Copyright (c) 2015, Plume Design Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
// 1. Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// 2. Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
// 3. Neither the name of the Plume Design Inc. nor the
|
||||
// names of its contributors may be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL Plume Design Inc. BE LIABLE FOR ANY
|
||||
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
syntax = "proto2";
|
||||
|
||||
package sts;
|
||||
|
||||
enum RadioBandType {
|
||||
BAND2G = 0;
|
||||
BAND5G = 1;
|
||||
BAND5GL = 2;
|
||||
BAND5GU = 3;
|
||||
}
|
||||
|
||||
enum SurveyType {
|
||||
ON_CHANNEL = 0;
|
||||
OFF_CHANNEL = 1;
|
||||
FULL = 2;
|
||||
}
|
||||
|
||||
enum NeighborType {
|
||||
ONCHAN_SCAN = 0;
|
||||
OFFCHAN_SCAN = 1;
|
||||
FULL_SCAN = 2;
|
||||
}
|
||||
|
||||
enum ChanWidth {
|
||||
CHAN_WIDTH_UNKNOWN = 0;
|
||||
CHAN_WIDTH_20MHZ = 1;
|
||||
CHAN_WIDTH_40MHZ = 2;
|
||||
CHAN_WIDTH_40MHZ_ABOVE = 3;
|
||||
CHAN_WIDTH_40MHZ_BELOW = 4;
|
||||
CHAN_WIDTH_80MHZ = 5;
|
||||
CHAN_WIDTH_160MHZ = 6;
|
||||
CHAN_WIDTH_80_PLUS_80MHZ = 7;
|
||||
}
|
||||
|
||||
enum WmmAc {
|
||||
WMM_AC_VO = 1;
|
||||
WMM_AC_VI = 2;
|
||||
WMM_AC_BE = 3;
|
||||
WMM_AC_BK = 4;
|
||||
}
|
||||
|
||||
enum BSEventType {
|
||||
PROBE = 0;
|
||||
CONNECT = 1;
|
||||
DISCONNECT = 2;
|
||||
BACKOFF = 3;
|
||||
ACTIVITY = 4;
|
||||
OVERRUN = 5;
|
||||
BAND_STEERING_ATTEMPT = 6;
|
||||
CLIENT_STEERING_ATTEMPT = 7;
|
||||
CLIENT_STEERING_STARTED = 8;
|
||||
CLIENT_STEERING_DISABLED = 9;
|
||||
CLIENT_STEERING_EXPIRED = 10;
|
||||
CLIENT_STEERING_FAILED = 11;
|
||||
AUTH_BLOCK = 12;
|
||||
CLIENT_KICKED = 13;
|
||||
CLIENT_BS_BTM = 14;
|
||||
CLIENT_STICKY_BTM = 15;
|
||||
CLIENT_BTM = 16;
|
||||
CLIENT_CAPABILITIES = 17;
|
||||
CLIENT_BS_BTM_RETRY = 18;
|
||||
CLIENT_STICKY_BTM_RETRY = 19;
|
||||
CLIENT_BTM_RETRY = 20;
|
||||
CLIENT_RRM_BCN_RPT = 21;
|
||||
CLIENT_BS_KICK = 22;
|
||||
CLIENT_STICKY_KICK = 23;
|
||||
CLIENT_SPECULATIVE_KICK = 24;
|
||||
CLIENT_DIRECTED_KICK = 25;
|
||||
CLIENT_GHOST_DEVICE_KICK = 26;
|
||||
}
|
||||
|
||||
enum EventType {
|
||||
CLIENT_ASSOC = 0;
|
||||
CLIENT_AUTH = 1;
|
||||
CLIENT_DISCONNECT = 2;
|
||||
CLIENT_FAILURE = 3;
|
||||
CLIENT_FIRST_DATA = 4;
|
||||
CLIEND_ID = 5;
|
||||
CLIENT_IP = 6;
|
||||
CLIENT_TIMEOUT = 7;
|
||||
}
|
||||
|
||||
enum DeviceType {
|
||||
DEV_AP = 0;
|
||||
DEV_STA = 1;
|
||||
}
|
||||
|
||||
enum FrameType {
|
||||
FT_DEAUTH = 0;
|
||||
FT_DISASSOC = 1;
|
||||
}
|
||||
|
||||
enum DisconnectSrc {
|
||||
LOCAL = 0;
|
||||
REMOTE = 1;
|
||||
}
|
||||
|
||||
enum AssocType {
|
||||
ASSOC = 0;
|
||||
REASSOC = 1;
|
||||
}
|
||||
|
||||
enum DisconnectType {
|
||||
DISASSOC = 0;
|
||||
DEAUTH = 1;
|
||||
}
|
||||
enum SecurityType
|
||||
{
|
||||
SEC_OPEN = 0;
|
||||
SEC_RADIUS = 1;
|
||||
SEC_PSK = 2;
|
||||
}
|
||||
// If optional ReportType is not present assume RAW
|
||||
enum ReportType {
|
||||
RAW = 0;
|
||||
AVERAGE = 1;
|
||||
HISTOGRAM = 2;
|
||||
PERCENTILE = 3;
|
||||
DIFF = 4;
|
||||
}
|
||||
|
||||
enum FsType {
|
||||
FS_TYPE_ROOTFS = 0;
|
||||
FS_TYPE_TMPFS = 1;
|
||||
}
|
||||
|
||||
enum CTReasonType {
|
||||
CTR_IDLE_TOO_LONG = 0;
|
||||
CTR_PROBE_FAIL = 1;
|
||||
}
|
||||
|
||||
message AvgType {
|
||||
required uint32 avg = 1;
|
||||
optional uint32 min = 2;
|
||||
optional uint32 max = 3;
|
||||
optional uint32 num = 4;
|
||||
}
|
||||
|
||||
enum DiffType {
|
||||
ADDED = 0;
|
||||
REMOVED = 1;
|
||||
}
|
||||
|
||||
enum StreamingVideoType {
|
||||
UNKNOWN = 0;
|
||||
NETFLIX = 1;
|
||||
YOUTUBE = 2;
|
||||
PLEX = 3;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Neighbor report: Report contains OBSS neighbor nodes/beacons retreived from
|
||||
// scanning:
|
||||
//
|
||||
// - off-chan : neighbors retreived from scanning foreingh selected channels
|
||||
// - on-chan : neighbors retreived from home channel
|
||||
// - full : neighbors retreived from all channels current regulatory domain
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message Neighbor {
|
||||
message NeighborBss {
|
||||
required string bssid = 1;
|
||||
optional string ssid = 2;
|
||||
optional uint32 rssi = 3;
|
||||
optional uint64 tsf = 4;
|
||||
optional ChanWidth chan_width = 5;
|
||||
required uint32 channel = 6;
|
||||
optional DiffType status = 7;
|
||||
}
|
||||
|
||||
required RadioBandType band = 1;
|
||||
required NeighborType scan_type = 2;
|
||||
optional uint64 timestamp_ms = 3;
|
||||
repeated NeighborBss bss_list = 4;
|
||||
optional ReportType report_type = 5;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Client report: Report contains rx and tx stats for a single station
|
||||
//
|
||||
// - Average stats : Averaged rx and tx stats
|
||||
// - Extended stats : Detailed MCS, NSS and BW stats for tx and rx
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message Client {
|
||||
message Stats {
|
||||
optional uint64 rx_bytes = 1;
|
||||
optional uint64 tx_bytes = 2;
|
||||
optional uint64 rx_frames = 3;
|
||||
optional uint64 tx_frames = 4;
|
||||
optional uint64 rx_retries = 5;
|
||||
optional uint64 tx_retries = 6;
|
||||
optional uint64 rx_errors = 7;
|
||||
optional uint64 tx_errors = 8;
|
||||
optional double rx_rate = 9;
|
||||
optional double tx_rate = 10;
|
||||
optional uint32 rssi = 11;
|
||||
}
|
||||
|
||||
message RxStats {
|
||||
message ChainRSSI {
|
||||
required uint32 chain = 1;
|
||||
required uint32 ht = 2;
|
||||
/* pri20(20MHz), sec20(40MHz), sec40(80MHz), sec80(160MHz) */ optional
|
||||
uint32 rssi = 3;
|
||||
}
|
||||
|
||||
required uint32 mcs = 1;
|
||||
required uint32 nss = 2;
|
||||
required uint32 bw = 3;
|
||||
optional uint64 bytes = 4;
|
||||
optional uint64 msdus = 5;
|
||||
optional uint64 mpdus = 6;
|
||||
optional uint64 ppdus = 7;
|
||||
optional uint64 retries = 8;
|
||||
optional uint64 errors = 9;
|
||||
optional uint32 rssi = 10;
|
||||
repeated ChainRSSI chain_rssi = 11;
|
||||
}
|
||||
|
||||
message TxStats {
|
||||
required uint32 mcs = 1;
|
||||
required uint32 nss = 2;
|
||||
required uint32 bw = 3;
|
||||
optional uint64 bytes = 4;
|
||||
optional uint64 msdus = 5;
|
||||
optional uint64 mpdus = 6;
|
||||
optional uint64 ppdus = 7;
|
||||
optional uint64 retries = 8;
|
||||
optional uint64 errors = 9;
|
||||
}
|
||||
|
||||
message TidStats {
|
||||
message Sojourn {
|
||||
required WmmAc ac = 1; /* Acess category */ required uint32 tid = 2;
|
||||
/* Traffic identifier queue number */ optional uint32 ewma_time_ms = 3;
|
||||
/* Moving average value based on last couple of transmitted msdus */
|
||||
optional uint32 sum_time_ms = 4;
|
||||
/* Delta of cumulative msdus times over interval */ optional uint32
|
||||
num_msdus = 5; /* Number of msdus in given interval */ }
|
||||
|
||||
repeated Sojourn sojourn = 4;
|
||||
optional uint32 offset_ms = 5;
|
||||
}
|
||||
|
||||
required string mac_address = 1;
|
||||
optional string ssid = 2;
|
||||
optional bool connected = 3;
|
||||
optional uint32 connect_count = 4;
|
||||
optional uint32 disconnect_count = 5;
|
||||
optional uint32 connect_offset_ms = 6;
|
||||
optional uint32 disconnect_offset_ms = 7;
|
||||
optional uint32 duration_ms = 8;
|
||||
optional Stats stats = 9;
|
||||
repeated RxStats rx_stats = 10;
|
||||
repeated TxStats tx_stats = 11;
|
||||
repeated TidStats tid_stats = 12;
|
||||
optional uint32 uapsd = 13;
|
||||
}
|
||||
|
||||
message ClientReport {
|
||||
required RadioBandType band = 1;
|
||||
optional uint64 timestamp_ms = 2;
|
||||
repeated Client client_list = 3;
|
||||
required uint32 channel = 4;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Survey report : Chanel utilization. Report contains samples
|
||||
//
|
||||
// error rxbusy and obssbussy represent rx samples that were errorenous where:
|
||||
// - rxbusy is rx time with decoded BSSIS
|
||||
// - obssbusy is the time from the undecoded rx error samples
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message Survey {
|
||||
message SurveySample {
|
||||
required uint32 channel = 1;
|
||||
optional uint32 duration_ms = 2;
|
||||
optional uint32 total_count = 3;
|
||||
optional uint32 sample_count = 4;
|
||||
optional uint32 busy = 5; /* Busy = Rx + Tx + Interference */ optional uint32
|
||||
busy_tx = 6; /* Tx */ optional uint32 busy_rx = 7;
|
||||
/* Rx = Rx_obss + Rx_errr (self and obss errors) */ optional uint32
|
||||
busy_self = 8; /* Rx_self (derived from succesful Rx frames)*/ optional
|
||||
uint32 offset_ms = 9;
|
||||
optional uint32 busy_ext = 10; /* 40MHz extention channel busy */ optional
|
||||
uint32 noise = 11;
|
||||
}
|
||||
|
||||
message SurveyAvg {
|
||||
required uint32 channel = 1;
|
||||
optional AvgType busy = 2; /* Busy = Rx + Tx + Interference */ optional
|
||||
AvgType busy_tx = 3; /* Tx */ optional AvgType busy_rx = 4;
|
||||
/* Rx = Rx_obss + Rx_errr (self and obss errors) */ optional AvgType
|
||||
busy_self = 5; /* Rx_self (derived from succesful Rx frames)*/ optional
|
||||
AvgType busy_ext = 6; /* 40MHz extention channel busy */ optional AvgType
|
||||
noise = 7;
|
||||
}
|
||||
|
||||
required RadioBandType band = 1;
|
||||
required SurveyType survey_type = 2;
|
||||
optional uint64 timestamp_ms = 3;
|
||||
repeated SurveySample survey_list = 4;
|
||||
repeated SurveyAvg survey_avg = 5;
|
||||
optional ReportType report_type = 6;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Capacity report : Tx sampling of queues (MAC) and survey (PHY) samples
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message Capacity {
|
||||
message QueueSample {
|
||||
optional uint32 busy_tx = 1;
|
||||
optional uint32 bytes_tx = 2;
|
||||
optional uint32 sample_count = 3;
|
||||
optional uint32 Vo_count = 4; /* Video */ optional uint32 Vi_count = 5;
|
||||
/* Voice */ optional uint32 Be_count = 6; /* Best Effort */ optional uint32
|
||||
Bk_count = 7; /* Background */ optional uint32 Bcn_count = 8; /* Beacon */
|
||||
optional uint32 Cab_count = 9; /* Content After Beacon */ optional uint32
|
||||
offset_ms = 10;
|
||||
}
|
||||
|
||||
required RadioBandType band = 1;
|
||||
optional uint64 timestamp_ms = 2;
|
||||
repeated QueueSample queue_list = 3;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Device status report
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message Device {
|
||||
message LoadAvg {
|
||||
optional double one = 1;
|
||||
optional double five = 2;
|
||||
optional double fifteen = 3;
|
||||
}
|
||||
|
||||
message RadioTemp {
|
||||
optional RadioBandType band = 1;
|
||||
optional int32 value = 2;
|
||||
}
|
||||
|
||||
optional LoadAvg load = 1;
|
||||
repeated RadioTemp radio_temp = 2;
|
||||
optional uint64 timestamp_ms = 3;
|
||||
optional uint32 uptime = 4;
|
||||
message Thermal {
|
||||
message RadioTxChainMask {
|
||||
optional RadioBandType band = 1;
|
||||
optional uint32 value = 2;
|
||||
}
|
||||
|
||||
repeated RadioTxChainMask txchainmask = 1;
|
||||
optional uint32 fan_rpm = 2;
|
||||
optional uint64 timestamp_ms = 3;
|
||||
}
|
||||
|
||||
repeated Thermal thermal_stats = 5;
|
||||
|
||||
// Memory utilization: [kB]
|
||||
message MemUtil {
|
||||
required uint32 mem_total = 1;
|
||||
required uint32 mem_used = 2;
|
||||
optional uint32 swap_total = 3;
|
||||
optional uint32 swap_used = 4;
|
||||
}
|
||||
|
||||
optional MemUtil mem_util = 6;
|
||||
|
||||
// Filesystem utilization per FS-type: [kB]
|
||||
message FsUtil {
|
||||
required FsType fs_type = 1;
|
||||
required uint32 fs_total = 2;
|
||||
required uint32 fs_used = 3;
|
||||
}
|
||||
|
||||
repeated FsUtil fs_util = 7;
|
||||
|
||||
// CPU utilization: [percent]:
|
||||
message CpuUtil {
|
||||
optional uint32 cpu_util = 1;
|
||||
}
|
||||
|
||||
optional CpuUtil cpuUtil = 8;
|
||||
|
||||
// Per-process CPU/MEM utilization:
|
||||
message PerProcessUtil {
|
||||
required uint32 pid = 1;
|
||||
required string cmd = 2; /* for cpu: [%CPU] [0..100]; for mem: [kB] */
|
||||
required uint32 util = 3;
|
||||
}
|
||||
|
||||
// top / most CPU/MEM consuming processes:
|
||||
repeated PerProcessUtil ps_cpu_util = 9;
|
||||
repeated PerProcessUtil ps_mem_util = 10;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Band Steering Client report
|
||||
//
|
||||
// - Contains band steering stats per client per station
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message BSClient {
|
||||
message BSEvent {
|
||||
required BSEventType type = 1;
|
||||
required uint32 offset_ms = 2;
|
||||
optional uint32 rssi = 3;
|
||||
optional bool probe_bcast = 4;
|
||||
optional bool probe_blocked = 5;
|
||||
optional DisconnectSrc disconnect_src = 6;
|
||||
optional DisconnectType disconnect_type = 7;
|
||||
optional uint32 disconnect_reason = 8;
|
||||
optional bool backoff_enabled = 9;
|
||||
optional bool active = 10;
|
||||
optional bool rejected = 11;
|
||||
optional bool is_BTM_supported = 12;
|
||||
optional bool is_RRM_supported = 13;
|
||||
optional uint32 max_chwidth = 14;
|
||||
optional uint32 max_streams = 15;
|
||||
optional uint32 phy_mode = 16;
|
||||
optional uint32 max_mcs = 17;
|
||||
optional uint32 max_txpower = 18;
|
||||
optional bool is_static_smps = 19;
|
||||
optional bool is_mu_mimo_supported = 20;
|
||||
optional bool band_cap_2G = 21;
|
||||
optional bool band_cap_5G = 22;
|
||||
optional bool rrm_caps_link_meas = 23;
|
||||
optional bool rrm_caps_neigh_rpt = 24;
|
||||
optional bool rrm_caps_bcn_rpt_passive = 25;
|
||||
optional bool rrm_caps_bcn_rpt_active = 26;
|
||||
optional bool rrm_caps_bcn_rpt_table = 27;
|
||||
optional bool rrm_caps_lci_meas = 28;
|
||||
optional bool rrm_caps_ftm_range_rpt = 29;
|
||||
optional uint32 backoff_period = 30;
|
||||
optional bytes assoc_ies = 31;
|
||||
}
|
||||
|
||||
message BSBandReport {
|
||||
required RadioBandType band = 1;
|
||||
optional bool connected = 2;
|
||||
optional uint32 rejects = 3;
|
||||
optional uint32 connects = 4;
|
||||
optional uint32 disconnects = 5;
|
||||
optional uint32 activity_changes = 6;
|
||||
optional uint32 steering_success_cnt = 7;
|
||||
optional uint32 steering_fail_cnt = 8;
|
||||
optional uint32 steering_kick_cnt = 9;
|
||||
optional uint32 sticky_kick_cnt = 10;
|
||||
optional uint32 probe_bcast_cnt = 11;
|
||||
optional uint32 probe_bcast_blocked = 12;
|
||||
optional uint32 probe_direct_cnt = 13;
|
||||
optional uint32 probe_direct_blocked = 14;
|
||||
repeated BSEvent event_list = 15;
|
||||
optional string ifname = 16;
|
||||
}
|
||||
|
||||
required string mac_address = 1;
|
||||
repeated BSBandReport bs_band_report = 2;
|
||||
}
|
||||
|
||||
message BSReport {
|
||||
required uint64 timestamp_ms = 1;
|
||||
repeated BSClient clients = 2;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Band Steering Client report
|
||||
//
|
||||
// - Contains band steering stats per client per station
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message RssiPeer {
|
||||
enum RssiSource {
|
||||
CLIENT = 0;
|
||||
PROBE = 1;
|
||||
NEIGHBOR = 2;
|
||||
}
|
||||
|
||||
message RssiSample {
|
||||
required uint32 rssi = 1;
|
||||
optional uint32 offset_ms = 2;
|
||||
}
|
||||
|
||||
required string mac_address = 1;
|
||||
optional RssiSource rssi_source = 2;
|
||||
repeated RssiSample rssi_list = 3;
|
||||
optional AvgType rssi_avg = 4;
|
||||
optional uint64 rx_ppdus = 5;
|
||||
optional uint64 tx_ppdus = 6;
|
||||
}
|
||||
|
||||
message RssiReport {
|
||||
required RadioBandType band = 1;
|
||||
required ReportType report_type = 2;
|
||||
optional uint64 timestamp_ms = 3;
|
||||
repeated RssiPeer peer_list = 4;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Network probe parameters
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
enum StateUpDown {
|
||||
SUD_down = 0;
|
||||
SUD_up = 1;
|
||||
SUD_error = 2;
|
||||
}
|
||||
|
||||
message DNSProbeMetric {
|
||||
optional string serverIP = 1;
|
||||
optional StateUpDown state = 2; // State of the server
|
||||
optional uint32 latency = 3; // Response latency in ms
|
||||
}
|
||||
|
||||
message VLANMetrics {
|
||||
optional string vlanIF = 1; // The name of the interface (ie: brtrunk.100)
|
||||
optional StateUpDown dhcpState = 2; // The state of the DHCP server according to that vlan
|
||||
optional uint32 latency = 3;
|
||||
}
|
||||
|
||||
message RADIUSMetrics {
|
||||
optional string serverIP = 1;
|
||||
optional StateUpDown radiusState = 2;
|
||||
optional uint32 latency = 3;
|
||||
}
|
||||
|
||||
|
||||
message NetworkProbe {
|
||||
optional DNSProbeMetric dns_probe = 1;
|
||||
optional VLANMetrics vlan_probe = 2;
|
||||
repeated RADIUSMetrics radius_probe = 3;
|
||||
optional uint64 timestamp_ms = 4;
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Voice and Video Stats
|
||||
//
|
||||
// - Contains voice/video detection information
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message RtpFlowStats {
|
||||
enum RtpFlowDirection {
|
||||
RTP_UPSTREAM = 0;
|
||||
RTP_DOWNSTREAM = 1;
|
||||
}
|
||||
|
||||
enum RtpFlowType {
|
||||
RTP_VOICE = 0;
|
||||
RTP_VIDEO = 1;
|
||||
}
|
||||
|
||||
optional RtpFlowDirection direction = 1;
|
||||
optional RtpFlowType rtp_flow_type = 2;
|
||||
optional uint32 latency = 3;
|
||||
optional uint32 jitter = 4;
|
||||
optional uint32 packet_loss_percent = 5;
|
||||
optional uint32 packet_loss_consec = 6;
|
||||
optional uint32 codec = 7;
|
||||
optional uint32 mosx_100 = 8;
|
||||
optional bytes block_codecs = 9;
|
||||
optional uint32 total_packets_sent = 10;
|
||||
optional uint32 total_packets_lost = 11;
|
||||
optional uint32 rtp_seq_first = 12;
|
||||
optional uint32 rtp_seq_last = 13;
|
||||
optional uint32 stats_idx = 14;
|
||||
}
|
||||
|
||||
message CallStart {
|
||||
optional uint64 session_id = 1;
|
||||
optional uint64 wifi_session_id = 2;
|
||||
optional bytes client_mac = 3;
|
||||
repeated string codecs = 4;
|
||||
optional string provider_domain = 5;
|
||||
optional string device_info = 6;
|
||||
optional uint32 channel = 7;
|
||||
required RadioBandType band = 8;
|
||||
}
|
||||
|
||||
message CallStop {
|
||||
enum CallStopReason {
|
||||
BYE_OK = 0;
|
||||
CALL_DROPPED = 1;
|
||||
}
|
||||
|
||||
optional uint64 session_id = 1;
|
||||
optional uint64 wifi_session_id = 2;
|
||||
optional bytes client_mac = 3;
|
||||
optional CallStopReason reason = 4;
|
||||
optional uint32 call_duration = 5;
|
||||
repeated RtpFlowStats stats = 6;
|
||||
optional uint32 channel = 7;
|
||||
required RadioBandType band = 8;
|
||||
repeated string codecs = 9;
|
||||
optional string provider_domain = 10;
|
||||
}
|
||||
|
||||
message CallReport {
|
||||
enum CallReportReason {
|
||||
ROAMED_FROM = 0;
|
||||
ROAMED_TO = 1;
|
||||
GOT_PUBLISH = 2;
|
||||
}
|
||||
|
||||
optional uint64 session_id = 1;
|
||||
optional uint64 wifi_session_id = 2;
|
||||
optional bytes client_mac = 3;
|
||||
repeated RtpFlowStats stats = 4;
|
||||
optional CallReportReason reason = 5;
|
||||
optional uint32 channel = 6;
|
||||
required RadioBandType band = 7;
|
||||
repeated string codecs = 8;
|
||||
optional string provider_domain = 9;
|
||||
}
|
||||
|
||||
message StreamingVideoDetectPattern {
|
||||
optional string dns_lookup_pattern = 1; // DNS name pattern for detection (like *.nflxvideo.net)
|
||||
optional StreamingVideoType video_type = 2;
|
||||
}
|
||||
|
||||
message StreamingVideoSessionStart {
|
||||
optional uint64 video_session_id = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional bytes client_mac = 3;
|
||||
optional bytes server_ip = 4;
|
||||
optional StreamingVideoType streaming_video_type = 5;
|
||||
}
|
||||
|
||||
message StreamingVideoServerDetected {
|
||||
optional uint64 video_session_id = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional bytes client_mac = 3;
|
||||
optional bytes server_ip = 4;
|
||||
optional string server_dns_name = 5;
|
||||
optional StreamingVideoType streaming_video_type = 6;
|
||||
}
|
||||
|
||||
message StreamingVideoStop {
|
||||
optional uint64 video_session_id = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional bytes client_mac = 3;
|
||||
optional bytes server_ip = 4;
|
||||
optional uint64 total_bytes = 5;
|
||||
optional StreamingVideoType streaming_video_type = 6;
|
||||
optional uint32 duration_sec = 7;
|
||||
}
|
||||
|
||||
message VideoVoiceReport {
|
||||
optional CallStart call_start = 1;
|
||||
optional CallStop call_stop = 2;
|
||||
optional CallReport call_report = 3;
|
||||
optional StreamingVideoStop stream_video_stop = 4;
|
||||
optional StreamingVideoServerDetected stream_video_server = 5;
|
||||
optional StreamingVideoSessionStart stream_video_session_start = 6;
|
||||
optional uint64 timestamp_ms = 7;
|
||||
}
|
||||
|
||||
// type of ConnectionEvent is determined by ConnectionEventType enum
|
||||
// all other fields are optional
|
||||
// there will be more fields in the future, this is only for STA_Client_Assoc event
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generic Event report
|
||||
//
|
||||
// - Contains STA events and will likel be extended with other event types
|
||||
// in the future
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message EventReport {
|
||||
/* Client Association Event */
|
||||
message ClientAssocEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional string ssid = 3;
|
||||
optional RadioBandType band = 4;
|
||||
optional AssocType assoc_type = 5;
|
||||
optional uint32 status = 6;
|
||||
optional int32 rssi = 7;
|
||||
optional uint32 internal_sc = 8;
|
||||
optional bool using11k = 9;
|
||||
optional bool using11r = 10;
|
||||
optional bool using11v = 11;
|
||||
}
|
||||
|
||||
/* Client Authentication Event */
|
||||
message ClientAuthEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional string ssid = 3;
|
||||
optional RadioBandType band = 4;
|
||||
optional uint32 auth_status = 5;
|
||||
}
|
||||
|
||||
/* Client Disconnect Event */
|
||||
message ClientDisconnectEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional uint32 reason = 3;
|
||||
optional DeviceType dev_type = 4;
|
||||
optional FrameType fr_type = 5;
|
||||
optional uint64 lsent_up_ts_in_us = 6;
|
||||
optional uint64 lrcv_up_ts_in_us = 7;
|
||||
optional uint32 internal_rc = 8;
|
||||
optional int32 rssi = 9;
|
||||
optional string ssid = 10;
|
||||
optional RadioBandType band = 11;
|
||||
}
|
||||
|
||||
/* Client Connnect Event */
|
||||
message ClientConnectEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional RadioBandType band = 3;
|
||||
optional AssocType assoc_type = 4;
|
||||
optional string ssid = 5;
|
||||
optional SecurityType sec_type = 6;
|
||||
optional bool fbt_used = 7;
|
||||
optional bytes ip_addr = 8;
|
||||
optional string clt_id = 9;
|
||||
optional int64 ev_time_bootup_in_us_auth = 10;
|
||||
optional int64 ev_time_bootup_in_us_assoc = 11;
|
||||
optional int64 ev_time_bootup_in_us_eapol = 12;
|
||||
optional int64 ev_time_bootup_in_us_port_enable = 13;
|
||||
optional int64 ev_time_bootup_in_us_first_rx = 14;
|
||||
optional int64 ev_time_bootup_in_us_first_tx = 15;
|
||||
optional bool using11k = 16;
|
||||
optional bool using11r = 17;
|
||||
optional bool using11v = 18;
|
||||
optional int64 ev_time_bootup_in_us_ip = 19;
|
||||
optional int32 assoc_rssi = 20;
|
||||
}
|
||||
|
||||
/* Client Failure Event */
|
||||
message ClientFailureEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional string ssid = 3;
|
||||
optional int32 reason_code = 4;
|
||||
optional string reason_str = 5;
|
||||
}
|
||||
|
||||
/* Client First Data Event */
|
||||
message ClientFirstDataEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional uint64 fdata_tx_up_ts_in_us = 3;
|
||||
optional uint64 fdata_rx_up_ts_in_us = 4;
|
||||
}
|
||||
|
||||
/* Client Id Event */
|
||||
message ClientIdEvent {
|
||||
optional string clt_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional string clt_id = 3;
|
||||
}
|
||||
|
||||
/* Client IP Event */
|
||||
message ClientIpEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional bytes ip_addr = 3;
|
||||
}
|
||||
|
||||
/* Client Timeout Event */
|
||||
message ClientTimeoutEvent {
|
||||
optional string sta_mac = 1;
|
||||
optional uint64 session_id = 2;
|
||||
optional CTReasonType r_code = 3;
|
||||
optional uint64 last_sent_up_ts_in_us = 4;
|
||||
optional uint64 last_rcv_up_ts_in_us = 5;
|
||||
}
|
||||
|
||||
/* Client Session */
|
||||
message ClientSession {
|
||||
required uint64 session_id = 1;
|
||||
repeated ClientAssocEvent client_assoc_event = 2;
|
||||
repeated ClientAuthEvent client_auth_event = 3;
|
||||
repeated ClientDisconnectEvent client_disconnect_event = 4;
|
||||
repeated ClientFailureEvent client_failure_event = 5;
|
||||
repeated ClientFirstDataEvent client_first_data_event = 6;
|
||||
repeated ClientIdEvent client_id_event = 7;
|
||||
repeated ClientIpEvent client_ip_event = 8;
|
||||
repeated ClientTimeoutEvent client_timeout_event = 9;
|
||||
repeated ClientConnectEvent client_connect_event = 10;
|
||||
}
|
||||
|
||||
/* Multiple Client Sessions */
|
||||
repeated ClientSession client_session = 1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Overall report that might contain all individual stats reports
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
message Report {
|
||||
required string nodeID = 1;
|
||||
repeated Survey survey = 2;
|
||||
repeated Capacity capacity = 3;
|
||||
repeated Neighbor neighbors = 4;
|
||||
repeated ClientReport clients = 5;
|
||||
repeated Device device = 6;
|
||||
repeated BSReport bs_report = 7;
|
||||
repeated RssiReport rssi_report = 8;
|
||||
repeated VideoVoiceReport video_voice_report = 9;
|
||||
repeated NetworkProbe network_probe = 101;
|
||||
repeated EventReport event_report = 102;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user