webrtc/rtc_base/net_helper.h
Suresh Jain 61721239a7 turns UDP + DTLS case implementation
Original PR: https://webrtc-review.googlesource.com/c/src/+/369780

Bug: webrtc:42225835
Change-Id: Iee5d183dfd51f8265d1354baaf05c060c01f860f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/431822
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#46662}
2026-01-14 04:32:09 -08:00

51 lines
1.4 KiB
C++

/*
* Copyright 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 RTC_BASE_NET_HELPER_H_
#define RTC_BASE_NET_HELPER_H_
#include <optional>
#include "absl/strings/string_view.h"
#include "rtc_base/system/rtc_export.h"
// This header contains helper functions and constants used by different types
// of transports.
namespace webrtc {
enum ProtocolType {
PROTO_UDP,
PROTO_DTLS,
PROTO_TCP,
PROTO_SSLTCP, // Pseudo-TLS.
PROTO_TLS,
PROTO_LAST = PROTO_TLS
};
RTC_EXPORT extern const char UDP_PROTOCOL_NAME[];
extern const char DTLS_PROTOCOL_NAME[];
RTC_EXPORT extern const char TCP_PROTOCOL_NAME[];
extern const char SSLTCP_PROTOCOL_NAME[];
extern const char TLS_PROTOCOL_NAME[];
constexpr int kTcpHeaderSize = 20;
constexpr int kUdpHeaderSize = 8;
// Get the transport layer overhead per packet based on the protocol.
int GetProtocolOverhead(absl::string_view protocol);
// Helpers to convert ProtocolType to and from a string.
absl::string_view ProtoToString(ProtocolType proto);
std::optional<ProtocolType> StringToProto(absl::string_view proto_name);
} // namespace webrtc
#endif // RTC_BASE_NET_HELPER_H_