1
#pragma once
2

            
3
#include "source/common/quic/envoy_quic_server_preferred_address_config_factory.h"
4

            
5
namespace Envoy {
6
namespace Quic {
7

            
8
class ServerPreferredAddressConfig : public Quic::EnvoyQuicServerPreferredAddressConfig {
9
public:
10
  struct IpVersionConfig {
11
    quiche::QuicheSocketAddress spa_;
12
    quiche::QuicheIpAddress dnat_;
13
  };
14

            
15
  ServerPreferredAddressConfig(const IpVersionConfig& v4, const IpVersionConfig& v6)
16
19
      : v4_(v4), v6_(v6) {}
17

            
18
  Addresses getServerPreferredAddresses(
19
      const Network::Address::InstanceConstSharedPtr& local_address) override;
20

            
21
private:
22
  const IpVersionConfig v4_;
23
  const IpVersionConfig v6_;
24
};
25

            
26
} // namespace Quic
27
} // namespace Envoy