--- a/interfaces/opensync_stats.proto +++ b/interfaces/opensync_stats.proto @@ -91,15 +91,26 @@ enum BSEventType { CLIENT_GHOST_DEVICE_KICK = 26; } -enum ConnectionEventType { +enum EventType { CLIENT_ASSOC = 0; CLIENT_AUTH = 1; CLIENT_DISCONNECT = 2; CLIENT_FAILURE = 3; CLIENT_FIRST_DATA = 4; - CLIEND_ID = 5; + CLIENT_ID = 5; CLIENT_IP = 6; CLIENT_TIMEOUT = 7; + CLIENT_CONNECT = 8; +} + +enum DeviceType { + DEV_AP = 0; + DEV_STA = 1; +} + +enum FrameType { + FT_DEAUTH = 0; + FT_DISASSOC = 1; } enum DisconnectSrc { @@ -117,6 +128,13 @@ enum DisconnectType { DEAUTH = 1; } +enum SecurityType +{ + SEC_OPEN = 0; + SEC_RADIUS = 1; + SEC_PSK = 2; +} + // If optional ReportType is not present assume RAW enum ReportType { @@ -127,6 +145,10 @@ enum ReportType { DIFF = 4; } +enum CTReasonType { + CTR_IDLE_TOO_LONG = 0; + CTR_PROBE_FAIL = 1; +} enum FsType { FS_TYPE_ROOTFS = 0; @@ -242,23 +264,6 @@ message Client { repeated Sojourn sojourn = 4; optional uint32 offset_ms = 5; } - // 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 - message ConnectionEvent { - required ConnectionEventType type = 1; - optional string sta_mac = 2; - optional uint64 session_id = 3; - optional string ssid = 4; - optional RadioBandType band = 5; - optional AssocType assoc_type = 6; - optional uint32 status = 7; - optional int32 rssi = 8; - optional uint32 internal_sc = 9; - optional bool using11k = 10; - optional bool using11r = 11; - optional bool using11v = 12; - } required string mac_address = 1; optional string ssid = 2; optional bool connected = 3; @@ -272,7 +277,6 @@ message Client { repeated TxStats tx_stats = 11; repeated TidStats tid_stats = 12; optional uint32 uapsd = 13; - repeated ConnectionEvent event_list = 14; } message ClientReport { @@ -664,6 +668,137 @@ message VideoVoiceReport { optional uint64 timestamp_ms = 7; } +message EventReport { + /* Client Association Event */ + message ClientAssocEvent { + required string sta_mac = 1; + required uint64 session_id = 2; + required string ssid = 3; + required 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; + required uint64 timestamp_ms = 12; + } + + /* Client Authentication Event */ + message ClientAuthEvent { + required string sta_mac = 1; + required uint64 session_id = 2; + required string ssid = 3; + required RadioBandType band = 4; + optional uint32 auth_status = 5; + required uint64 timestamp_ms = 6; + } + + /* Client Disconnect Event */ + message ClientDisconnectEvent { + required string sta_mac = 1; + required 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; + required string ssid = 10; + required RadioBandType band = 11; + required uint64 timestamp_ms = 12; + } + + /* Client Connnect Event */ + message ClientConnectEvent { + required string sta_mac = 1; + required uint64 session_id = 2; + required RadioBandType band = 3; + optional AssocType assoc_type = 4; + required 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; + required uint64 timestamp_ms = 21; + } + + /* Client Failure Event */ + message ClientFailureEvent { + required string sta_mac = 1; + required uint64 session_id = 2; + required string ssid = 3; + optional int32 reason_code = 4; + optional string reason_str = 5; + required uint64 timestamp_ms = 6; + } + + /* Client First Data Event */ + message ClientFirstDataEvent { + required string sta_mac = 1; + required uint64 session_id = 2; + optional uint64 fdata_tx_up_ts_in_us = 3; + optional uint64 fdata_rx_up_ts_in_us = 4; + required uint64 timestamp_ms = 5; + } + + /* Client Id Event */ + message ClientIdEvent { + required string clt_mac = 1; + required uint64 session_id = 2; + optional string clt_id = 3; + required uint64 timestamp_ms = 4; + } + + /* Client IP Event */ + message ClientIpEvent { + required string sta_mac = 1; + required uint64 session_id = 2; + optional bytes ip_addr = 3; + required uint64 timestamp_ms = 4; + } + + /* Client Timeout Event */ + message ClientTimeoutEvent { + required string sta_mac = 1; + required 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; + required uint64 timestamp_ms = 6; + } + + /* Client Session */ + message ClientSession { + required uint64 session_id = 1; + optional ClientAssocEvent client_assoc_event = 2; + optional ClientAuthEvent client_auth_event = 3; + optional ClientDisconnectEvent client_disconnect_event = 4; + optional ClientFailureEvent client_failure_event = 5; + optional ClientFirstDataEvent client_first_data_event = 6; + optional ClientIdEvent client_id_event = 7; + optional ClientIpEvent client_ip_event = 8; + optional ClientTimeoutEvent client_timeout_event = 9; + optional ClientConnectEvent client_connect_event = 10; + } + + /* Multiple Client Sessions */ + repeated ClientSession client_session = 1; +} + //////////////////////////////////////////////////////////////////////////////// // // Overall report that might contain all individual stats reports @@ -680,4 +815,5 @@ message Report { repeated RssiReport rssi_report = 8; repeated VideoVoiceReport video_voice_report = 9; repeated NetworkProbe network_probe = 101; + repeated EventReport event_report = 102; }