Structured ICE logging via RtcEventLog.
This change list contains the structured logging module for ICE using the RtcEventLog infrastructure, and also extension to the log parser and analyzer. Bug: None Change-Id: I6539cf282155c2cde4d3161c53500c0746671a02 Reviewed-on: https://webrtc-review.googlesource.com/34622 Commit-Queue: Qingsi Wang <qingsi@google.com> Reviewed-by: Björn Terelius <terelius@webrtc.org> Reviewed-by: Peter Thatcher <pthatcher@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21816}
This commit is contained in:
@ -37,6 +37,8 @@ class RtcEvent {
|
||||
AudioSendStreamConfig,
|
||||
BweUpdateDelayBased,
|
||||
BweUpdateLossBased,
|
||||
IceCandidatePairConfig,
|
||||
IceCandidatePairEvent,
|
||||
ProbeClusterCreated,
|
||||
ProbeResultFailure,
|
||||
ProbeResultSuccess,
|
||||
|
||||
30
logging/rtc_event_log/events/rtc_event_ice_candidate_pair.cc
Normal file
30
logging/rtc_event_log/events/rtc_event_ice_candidate_pair.cc
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
RtcEventIceCandidatePair::RtcEventIceCandidatePair(
|
||||
IceCandidatePairEventType type,
|
||||
uint32_t candidate_pair_id)
|
||||
: type_(type), candidate_pair_id_(candidate_pair_id) {}
|
||||
|
||||
RtcEventIceCandidatePair::~RtcEventIceCandidatePair() = default;
|
||||
|
||||
RtcEvent::Type RtcEventIceCandidatePair::GetType() const {
|
||||
return RtcEvent::Type::IceCandidatePairEvent;
|
||||
}
|
||||
|
||||
bool RtcEventIceCandidatePair::IsConfigEvent() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
51
logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
Normal file
51
logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_H_
|
||||
#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_H_
|
||||
|
||||
#include "logging/rtc_event_log/events/rtc_event.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
enum class IceCandidatePairEventType {
|
||||
// Config event types for events related to the candiate pair creation and
|
||||
// life-cycle management.
|
||||
kAdded,
|
||||
kUpdated,
|
||||
kDestroyed,
|
||||
kSelected,
|
||||
// Non-config event types.
|
||||
kCheckSent,
|
||||
kCheckReceived,
|
||||
kCheckResponseSent,
|
||||
kCheckResponseReceived,
|
||||
};
|
||||
|
||||
class RtcEventIceCandidatePair final : public RtcEvent {
|
||||
public:
|
||||
RtcEventIceCandidatePair(IceCandidatePairEventType type,
|
||||
uint32_t candidate_pair_id);
|
||||
|
||||
~RtcEventIceCandidatePair() override;
|
||||
|
||||
Type GetType() const override;
|
||||
|
||||
bool IsConfigEvent() const override;
|
||||
|
||||
const IceCandidatePairEventType type_;
|
||||
const uint32_t candidate_pair_id_;
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_H_
|
||||
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
IceCandidatePairDescription::IceCandidatePairDescription() {
|
||||
local_candidate_type = IceCandidateType::kUnknown;
|
||||
local_relay_protocol = IceCandidatePairProtocol::kUnknown;
|
||||
local_network_type = IceCandidateNetworkType::kUnknown;
|
||||
local_address_family = IceCandidatePairAddressFamily::kUnknown;
|
||||
remote_candidate_type = IceCandidateType::kUnknown;
|
||||
remote_address_family = IceCandidatePairAddressFamily::kUnknown;
|
||||
candidate_pair_protocol = IceCandidatePairProtocol::kUnknown;
|
||||
}
|
||||
|
||||
IceCandidatePairDescription::IceCandidatePairDescription(
|
||||
const IceCandidatePairDescription& other) {
|
||||
local_candidate_type = other.local_candidate_type;
|
||||
local_relay_protocol = other.local_relay_protocol;
|
||||
local_network_type = other.local_network_type;
|
||||
local_address_family = other.local_address_family;
|
||||
remote_candidate_type = other.remote_candidate_type;
|
||||
remote_address_family = other.remote_address_family;
|
||||
candidate_pair_protocol = other.candidate_pair_protocol;
|
||||
}
|
||||
|
||||
IceCandidatePairDescription::~IceCandidatePairDescription() {}
|
||||
|
||||
RtcEventIceCandidatePairConfig::RtcEventIceCandidatePairConfig(
|
||||
IceCandidatePairEventType type,
|
||||
uint32_t candidate_pair_id,
|
||||
const IceCandidatePairDescription& candidate_pair_desc)
|
||||
: type_(type),
|
||||
candidate_pair_id_(candidate_pair_id),
|
||||
candidate_pair_desc_(candidate_pair_desc) {}
|
||||
|
||||
RtcEventIceCandidatePairConfig::~RtcEventIceCandidatePairConfig() = default;
|
||||
|
||||
RtcEvent::Type RtcEventIceCandidatePairConfig::GetType() const {
|
||||
return RtcEvent::Type::IceCandidatePairConfig;
|
||||
}
|
||||
|
||||
// The ICE candidate pair config event is not equivalent to a RtcEventLog config
|
||||
// event.
|
||||
bool RtcEventIceCandidatePairConfig::IsConfigEvent() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_CONFIG_H_
|
||||
#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_CONFIG_H_
|
||||
|
||||
#include "logging/rtc_event_log/events/rtc_event.h"
|
||||
|
||||
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
// TODO(qingsi): Change the names of candidate types to "host", "srflx", "prflx"
|
||||
// and "relay" after the naming is spec-compliant in the signaling part
|
||||
enum class IceCandidateType {
|
||||
kLocal,
|
||||
kStun,
|
||||
kPrflx,
|
||||
kRelay,
|
||||
kUnknown,
|
||||
};
|
||||
|
||||
enum class IceCandidatePairProtocol {
|
||||
kUdp,
|
||||
kTcp,
|
||||
kSsltcp,
|
||||
kTls,
|
||||
kUnknown,
|
||||
};
|
||||
|
||||
enum class IceCandidatePairAddressFamily {
|
||||
kIpv4,
|
||||
kIpv6,
|
||||
kUnknown,
|
||||
};
|
||||
|
||||
enum class IceCandidateNetworkType {
|
||||
kEthernet,
|
||||
kLoopback,
|
||||
kWifi,
|
||||
kVpn,
|
||||
kCellular,
|
||||
kUnknown,
|
||||
};
|
||||
|
||||
class IceCandidatePairDescription {
|
||||
public:
|
||||
IceCandidatePairDescription();
|
||||
explicit IceCandidatePairDescription(
|
||||
const IceCandidatePairDescription& other);
|
||||
|
||||
~IceCandidatePairDescription();
|
||||
|
||||
IceCandidateType local_candidate_type;
|
||||
IceCandidatePairProtocol local_relay_protocol;
|
||||
IceCandidateNetworkType local_network_type;
|
||||
IceCandidatePairAddressFamily local_address_family;
|
||||
IceCandidateType remote_candidate_type;
|
||||
IceCandidatePairAddressFamily remote_address_family;
|
||||
IceCandidatePairProtocol candidate_pair_protocol;
|
||||
};
|
||||
|
||||
class RtcEventIceCandidatePairConfig final : public RtcEvent {
|
||||
public:
|
||||
RtcEventIceCandidatePairConfig(
|
||||
IceCandidatePairEventType type,
|
||||
uint32_t candidate_pair_id,
|
||||
const IceCandidatePairDescription& candidate_pair_desc);
|
||||
|
||||
~RtcEventIceCandidatePairConfig() override;
|
||||
|
||||
Type GetType() const override;
|
||||
|
||||
bool IsConfigEvent() const override;
|
||||
|
||||
const IceCandidatePairEventType type_;
|
||||
const uint32_t candidate_pair_id_;
|
||||
const IceCandidatePairDescription candidate_pair_desc_;
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_CONFIG_H_
|
||||
Reference in New Issue
Block a user