mirror of
https://github.com/Telecominfraproject/wlan-cloud-loadsim.git
synced 2025-11-01 11:08:01 +00:00
845 lines
27 KiB
Protocol Buffer
845 lines
27 KiB
Protocol Buffer
// 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;
|
|
}
|
|
|