blob: cda55e5a2dcbe806e9b01cbf3a9411ce869b4d59 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef QUICHE_QUIC_TEST_TOOLS_IP_PACKET_GENERATION_H_
#define QUICHE_QUIC_TEST_TOOLS_IP_PACKET_GENERATION_H_
#include <string>
#include "absl/strings/string_view.h"
#include "quiche/quic/platform/api/quic_socket_address.h"
#include "quiche/common/quiche_ip_address.h"
namespace quic::test {
enum class IpPacketPayloadType {
kUdp,
};
// Create an IP packet, appropriate for sending to a raw IP socket.
std::string CreateIpPacket(
const quiche::QuicheIpAddress& source_address,
const quiche::QuicheIpAddress& destination_address,
absl::string_view payload,
IpPacketPayloadType payload_type = IpPacketPayloadType::kUdp);
// Create a UDP packet, appropriate for sending to a raw UDP socket or including
// as the payload of an IP packet.
std::string CreateUdpPacket(const QuicSocketAddress& source_address,
const QuicSocketAddress& destination_address,
absl::string_view payload);
} // namespace quic::test
#endif // QUICHE_QUIC_TEST_TOOLS_IP_PACKET_GENERATION_H_