1 // Copyright (c) 2019 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef QUICHE_QUIC_QBONE_QBONE_CONSTANTS_H_ 6 #define QUICHE_QUIC_QBONE_QBONE_CONSTANTS_H_ 7 8 #include "quiche/quic/core/quic_types.h" 9 #include "quiche/quic/core/quic_versions.h" 10 #include "quiche/quic/platform/api/quic_ip_address.h" 11 #include "quiche/quic/qbone/platform/ip_range.h" 12 13 namespace quic { 14 15 struct QboneConstants { 16 // QBONE's ALPN 17 static constexpr char kQboneAlpn[] = "qbone"; 18 // The maximum number of bytes allowed in a QBONE packet. 19 static const QuicByteCount kMaxQbonePacketBytes = 2000; 20 // The table id for QBONE's routing table. 'bone' in ascii. 21 static const uint32_t kQboneRouteTableId = 0x626F6E65; 22 // The stream ID of the control channel. 23 static QuicStreamId GetControlStreamId(QuicTransportVersion version); 24 // The link-local address of the Terminator 25 static const QuicIpAddress* TerminatorLocalAddress(); 26 // The IPRange containing the TerminatorLocalAddress 27 static const IpRange* TerminatorLocalAddressRange(); 28 // The gateway address to provide when configuring routes to the QBONE 29 // interface 30 static const QuicIpAddress* GatewayAddress(); 31 }; 32 33 } // namespace quic 34 35 #endif // QUICHE_QUIC_QBONE_QBONE_CONSTANTS_H_ 36