<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-altanai-moq-relay-geocode-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="MoQ Relay Geocode">Geographic Location for Media over QUIC Relays</title>
    <seriesInfo name="Internet-Draft" value="draft-altanai-moq-relay-geocode-01"/>
    <author fullname="Altanai Bisht">
      <organization>Cisco Meraki</organization>
      <address>
        <email>albisht@cisco.com</email>
      </address>
    </author>
    <author fullname="Tim Evens">
      <organization>Cisco</organization>
      <address>
        <email>tievens@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="24"/>
    <area>Web and Internet Transport</area>
    <workgroup>moq</workgroup>
    <keyword>MOQ</keyword>
    <keyword>Media over QUIC</keyword>
    <keyword>geocode</keyword>
    <keyword>relay</keyword>
    <keyword>GDOR</keyword>
    <keyword>IATA</keyword>
    <keyword>geo-distributed</keyword>
    <keyword>routing</keyword>
    <abstract>
      <?line 84?>

<t>This document defines a mechanism for Media over QUIC (MoQ) relays to advertise their geographic location (geocode) and related path metrics. Some clients require their media data to remain locally or geo-fenced within specific jurisdictions for privacy and security compliance (e.g., GDPR, HIPAA, or sector-specific regulations). This mechanism enables service providers to track the geographic path of media packets through the relay mesh and to enforce geo-fencing policies. It supports Geo-Distributed Orchestration and Routing (GDOR), data residency compliance, latency optimization, and relay selection. The specification includes optional IATA airport codes as human-readable geographic identifiers for major relay locations.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://datatracker.ietf.org/doc/draft-altanai-moq-relay-geocode/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-altanai-moq-relay-geocode/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        moq Working Group mailing list (<eref target="mailto:moq@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/moq/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/moq/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/altanai/draft-altanai-moq-relay-geocode"/>.</t>
    </note>
  </front>
  <middle>
    <?line 88?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Media over QUIC Transport (MOQT) <xref target="MoQTransport"/> uses a relay-based architecture where publishers push media to relays and subscribers pull from relays. Relays can be chained for CDN-like distribution, forming a mesh of interconnected nodes. In such topologies—as illustrated by deployments with multiple relays (e.g., relays A, B, C, D) connecting Home/Enterprise clients to a Service Media backend—the following questions arise:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Where</strong> is each relay located geographically?</t>
        </li>
        <li>
          <t><strong>How close</strong> are relays to each other and to clients?</t>
        </li>
        <li>
          <t><strong>Which path</strong> through the relay mesh minimizes latency or satisfies policy?</t>
        </li>
      </ul>
      <t>Today, MoQ provides no standard way for relays to advertise geographic position. Clients and orchestration systems rely on external mechanisms (e.g., IP geolocation, manual configuration) that are often imprecise, inconsistent, or unavailable. This document specifies a lightweight, protocol-aligned mechanism for relays to advertise geocode and related metrics, enabling:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Vicinity and path computation</strong>: Determining physical proximity and logical paths between relays.</t>
        </li>
        <li>
          <t><strong>GDOR (Geo-Distributed Orchestration/Routing)</strong>: Making routing and placement decisions based on geography (e.g., route through EU relays for GDPR, avoid certain jurisdictions).</t>
        </li>
        <li>
          <t><strong>Latency optimization</strong>: Selecting relays with lower RTT or propagation time (PT) to the client or to upstream relays.</t>
        </li>
        <li>
          <t><strong>Data residency and compliance</strong>: Ensuring media flows stay within required geographic boundaries. Clients often require their data to be locally or geo-fenced for privacy and security compliance (e.g., GDPR, HIPAA).</t>
        </li>
        <li>
          <t><strong>Path tracking</strong>: Enabling service providers to track the geographic path of media packets through the relay mesh for compliance audits and geo-fencing enforcement.</t>
        </li>
      </ol>
      <section anchor="design-goals">
        <name>Design Goals</name>
        <ul spacing="normal">
          <li>
            <t><strong>Path trace in-band (primary)</strong>: Use MOQT extension headers on objects for path tracing as the <bcp14>RECOMMENDED</bcp14> integration. Each relay/proxy appends device name and direction; clients can verify the geographic path from received objects.</t>
          </li>
          <li>
            <t><strong>Protocol alignment</strong>: Use existing MOQT messages (PUBLISH, SUBSCRIBE) and streams for geocode advertisement, avoiding new message formats. Relays do not need to invent proprietary messaging for cross-vendor use cases.</t>
          </li>
          <li>
            <t><strong>Minimal protocol impact</strong>: Reuse existing MoQ catalog, metrics, or discovery mechanisms where possible.</t>
          </li>
          <li>
            <t><strong>Interoperability</strong>: Use standard geographic representations (WGS84, GeoJSON) and widely recognized identifiers (IATA codes).</t>
          </li>
          <li>
            <t><strong>Extensibility</strong>: Allow optional altitude, region codes, and path metrics (RTT, PT) without mandating them.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t><strong>Geocode</strong>: A representation of geographic position, typically latitude and longitude (WGS84), optionally with altitude.</t>
      <t><strong>Relay Vicinity</strong>: The geographic proximity of one relay to another or to a client, expressed as distance or as a qualitative relationship (e.g., same region, same metro).</t>
      <t><strong>Relay Path</strong>: A sequence of relays through which media flows from publisher to subscriber, or the logical/geographic route between relays.</t>
      <t><strong>GDOR (Geo-Distributed Orchestration/Routing)</strong>: Routing and orchestration decisions that consider geographic location, including data residency, latency optimization, and jurisdictional compliance.</t>
      <t><strong>IATA Code</strong>: A three-letter code assigned by the International Air Transport Association to identify airports and major metropolitan areas (e.g., JFK, LHR, FRA). Used here as an optional human-readable geographic identifier for relay locations.</t>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <section anchor="relay-selection-by-proximity">
        <name>Relay Selection by Proximity</name>
        <t>A subscriber in New York (NY) may have multiple relays available (e.g., A, B, C, D). With geocode and RTT/PT metrics, the client or an orchestration layer can select the relay that minimizes latency or satisfies geographic constraints.</t>
      </section>
      <section anchor="geo-distributed-orchestration-gdor">
        <name>Geo-Distributed Orchestration (GDOR)</name>
        <t>Some clients require their media data to remain locally or geo-fenced within specific jurisdictions for privacy and security compliance (e.g., GDPR, HIPAA, or sector-specific regulations). An operator may require that:</t>
        <ul spacing="normal">
          <li>
            <t>EU subscriber traffic flows only through EU relays.</t>
          </li>
          <li>
            <t>Media for a given jurisdiction is processed within that jurisdiction.</t>
          </li>
          <li>
            <t>Path selection avoids certain regions for policy or cost reasons.</t>
          </li>
        </ul>
        <t>Geocode enables GDOR by allowing relays to advertise their jurisdiction (e.g., via country/region codes) and by allowing path computation to respect geographic boundaries. Service providers can use relay geocode and the advertised neighbor topology to <strong>track the geographic path</strong> of media packets as they traverse the MoQ relay mesh, supporting compliance audits and geo-fencing enforcement.</t>
      </section>
      <section anchor="path-and-vicinity-awareness">
        <name>Path and Vicinity Awareness</name>
        <t>In a relay mesh (e.g., A↔B↔C↔D), knowing the geocode of each relay allows:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Vicinity</strong>: Computing great-circle distance or approximate propagation delay between relays.</t>
          </li>
          <li>
            <t><strong>Path</strong>: Understanding the geographic route (e.g., NY → Relay D → Relay A → SVC) and optimizing it.</t>
          </li>
        </ul>
      </section>
      <section anchor="metrics-integration">
        <name>Metrics Integration</name>
        <t>Deployments commonly measure <strong>RTT to Relay</strong> and <strong>PT (Propagation Time) to Relay</strong> as key metrics. Geocode complements these by providing a stable, policy-relevant attribute (location) that does not change with network conditions, while RTT/PT provide dynamic performance signals.</t>
      </section>
    </section>
    <section anchor="geocode-representation">
      <name>Geocode Representation</name>
      <t>This section is informative. The following formats are suggested for representing relay geocode; implementations may use alternative representations.</t>
      <section anchor="suggested-format-wgs84-coordinates">
        <name>Suggested Format: WGS84 Coordinates</name>
        <t>Relay geocode may be represented as WGS84 coordinates (as used in GeoJSON <xref target="RFC7946"/>):</t>
        <ul spacing="normal">
          <li>
            <t><strong>latitude</strong>: Decimal degrees, -90 to 90.</t>
          </li>
          <li>
            <t><strong>longitude</strong>: Decimal degrees, -180 to 180.</t>
          </li>
          <li>
            <t><strong>altitude</strong> (optional): Meters above WGS84 ellipsoid.</t>
          </li>
        </ul>
        <t>Example (JSON):</t>
        <t><tt>json
{
  "latitude": 40.6413,
  "longitude": -73.7781,
  "altitude": 4
}
</tt></t>
      </section>
      <section anchor="suggested-iata-code">
        <name>Suggested: IATA Code</name>
        <t>An IATA airport code may be included as a human-readable geographic identifier (e.g., JFK for New York, LHR for London). It is advisory only and may correspond to the nearest major airport or metro area where the relay is located; precise routing may use latitude/longitude when geographic accuracy is required.</t>
      </section>
    </section>
    <section anchor="integration-with-moq">
      <name>Integration with MoQ</name>
      <t>This document proposes several integration options for geocode advertisement and path tracing.</t>
      <section anchor="option-1-path-trace-via-moqt-extension-headers-recommended">
        <name>Option 1: Path Trace via MOQT Extension Headers (RECOMMENDED)</name>
        <t>To enable clients to verify the geographic path of media objects as they traverse relays and proxies, relays and proxies <bcp14>MAY</bcp14> append a path-trace entry to a MOQT object extension header as objects are forwarded. Path tracing uses the extension header mechanism described in <xref target="MoQTransport"/> (Section 10.2.1.2).</t>
        <t>Each path-trace entry in the extension header <bcp14>SHOULD</bcp14> include:</t>
        <ul spacing="normal">
          <li>
            <t><strong>device</strong>: Name or identifier of the relay or proxy (e.g., <tt>relay_id</tt>, hostname, or a compact label such as <tt>relay-D</tt>).</t>
          </li>
          <li>
            <t><strong>direction</strong>: The direction of traversal at this device—e.g., <tt>ingress</tt> (object received from upstream toward publisher) or <tt>egress</tt> (object sent toward downstream subscriber). Alternative encodings such as <tt>upstream</tt>/<tt>downstream</tt> or <tt>in</tt>/<tt>out</tt> may be used.</t>
          </li>
        </ul>
        <t>Additional fields such as <tt>iata_code</tt>, <tt>country</tt>, or <tt>subdivision</tt> <bcp14>MAY</bcp14> be included for compliance and geo-fencing verification.</t>
        <t>Example path-trace entry (informative):</t>
        <t><tt>json
{ "device": "relay-D", "direction": "egress", "iata_code": "JFK" }
</tt></t>
        <t>Clients that receive objects can inspect the extension header to reconstruct the relay path (e.g., <tt>relay-D (JFK) egress → relay-A (FRA) ingress → relay-A egress</tt>) for compliance audits or geo-fencing enforcement.</t>
        <t>This is the <bcp14>RECOMMENDED</bcp14> for path tracing as it travels in-band with media and enables clients to verify the geographic path directly from received objects.</t>
      </section>
      <section anchor="option-2-geocode-advertisement-via-moqt-messages-and-streams">
        <name>Option 2: Geocode Advertisement via MOQT Messages and Streams</name>
        <t>Relays <bcp14>MAY</bcp14> advertise geocode using standard MOQT messages and streams:</t>
        <ul spacing="normal">
          <li>
            <t><strong>PUBLISH</strong>: A relay publishes its geocode advertisement as a track (e.g., under a reserved namespace such as <tt>moq://relay-geocode.moq.arpa/v1/&lt;relay_id&gt;</tt>).</t>
          </li>
          <li>
            <t><strong>SUBSCRIBE</strong>: Other relays, clients, or orchestration systems SUBSCRIBE to geocode tracks to discover relay locations and neighbor topology.</t>
          </li>
          <li>
            <t><strong>Streams</strong>: Geocode data is carried in MOQT objects over QUIC streams, using the JSON schema defined in the related document (Appendix C) as the object payload.</t>
          </li>
        </ul>
        <t>This approach reuses the same protocol that relays already use for media distribution. No new message types or wire formats are required.</t>
      </section>
      <section anchor="option-3-catalog-integration">
        <name>Option 3: Catalog Integration</name>
        <t>A relay <bcp14>MAY</bcp14> include geocode in catalog metadata for namespaces or tracks it serves. Clients that discover tracks via the catalog can use geocode for relay selection or policy checks.</t>
      </section>
      <section anchor="option-4-metrics-integration">
        <name>Option 4: Metrics Integration</name>
        <t>Geocode <bcp14>MAY</bcp14> be part of metrics exposed per <xref target="MoQMetrics"/> for relay selection and monitoring. Resources (e.g., relays) can include geocode as attributes in the metrics data model.</t>
      </section>
      <section anchor="option-5-discovery-well-known-uri-or-setup-option">
        <name>Option 5: Discovery (Well-Known URI or Setup Option)</name>
        <t>A relay <bcp14>MAY</bcp14> serve geocode at a well-known path (e.g., <tt>/.well-known/moq-relay-geocode</tt>) or via a Setup Option in SETUP, for deployments that prefer HTTP-based or session-level discovery.</t>
        <t>The reserved namespace, extension header type, and exact encoding for the path trace are left to a companion specification or a future revision of <xref target="MoQTransport"/>.</t>
      </section>
    </section>
    <section anchor="vicinity-and-path-computation">
      <name>Vicinity and Path Computation</name>
      <section anchor="great-circle-distance">
        <name>Great-Circle Distance</name>
        <t>Given two relays with geocode (lat1, lon1) and (lat2, lon2), the approximate great-circle distance in kilometers can be computed using the Haversine formula or an equivalent. This provides a stable measure of physical proximity independent of network topology.</t>
      </section>
      <section anchor="path-metrics">
        <name>Path Metrics</name>
        <t>When relays advertise neighbor topology (e.g., <tt>neighbors</tt> with <tt>rtt_ms</tt> and <tt>pt_ms</tt> per the schema in Appendix C), a client or orchestration system can:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Build a relay graph</strong>: Nodes = relays, edges = neighbor relationships with RTT/PT.</t>
          </li>
          <li>
            <t><strong>Compute paths</strong>: Shortest path by RTT, by PT, or by geographic distance.</t>
          </li>
          <li>
            <t><strong>Apply GDOR constraints</strong>: Filter paths to those that stay within required jurisdictions (using <tt>country</tt>, <tt>subdivision</tt>).</t>
          </li>
        </ol>
      </section>
      <section anchor="vicinity-semantics">
        <name>Vicinity Semantics</name>
        <ul spacing="normal">
          <li>
            <t><strong>Same metro</strong>: Relays with the same <tt>iata_code</tt> or within ~50 km.</t>
          </li>
          <li>
            <t><strong>Same region</strong>: Relays with the same <tt>subdivision</tt> or <tt>country</tt>.</t>
          </li>
          <li>
            <t><strong>Cross-border</strong>: Path crosses <tt>country</tt> boundaries; may trigger compliance checks.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="privacy">
        <name>Privacy</name>
        <ul spacing="normal">
          <li>
            <t>Geocode reveals relay location. Operators who wish to hide exact location <bcp14>MAY</bcp14> advertise only <tt>country</tt> and <tt>subdivision</tt>, or a coarse-grained geocode (e.g., rounded to 0.1°).</t>
          </li>
          <li>
            <t>IATA codes are less precise than coordinates and may be preferred when exact location must not be disclosed.</t>
          </li>
        </ul>
      </section>
      <section anchor="integrity">
        <name>Integrity</name>
        <ul spacing="normal">
          <li>
            <t>Geocode advertisements <bcp14>SHOULD</bcp14> be integrity-protected (e.g., over TLS as with MoQ) and, when used for compliance, <bcp14>SHOULD</bcp14> be verifiable (e.g., signed by a trusted authority).</t>
          </li>
        </ul>
      </section>
      <section anchor="misuse">
        <name>Misuse</name>
        <ul spacing="normal">
          <li>
            <t>Adversaries could advertise false geocode to attract traffic or evade geographic restrictions. Relays <bcp14>SHOULD</bcp14> be authenticated; geocode from untrusted sources <bcp14>SHOULD</bcp14> be validated or ignored.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not require IANA actions. If a well-known URI or a MoQ parameter type is registered in the future, the appropriate IANA registry would be updated.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC7946">
          <front>
            <title>The GeoJSON Format</title>
            <author initials="H." surname="Butler" fullname="H. Butler">
              <organization/>
            </author>
            <author initials="M." surname="Daly" fullname="M. Daly">
              <organization/>
            </author>
            <author initials="A." surname="Doyle" fullname="A. Doyle">
              <organization/>
            </author>
            <author initials="S." surname="Gillies" fullname="S. Gillies">
              <organization/>
            </author>
            <author initials="S." surname="Hagen" fullname="S. Hagen">
              <organization/>
            </author>
            <author initials="T." surname="Schaub" fullname="T. Schaub">
              <organization/>
            </author>
            <date year="2016" month="August"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="MoQTransport" target="https://datatracker.ietf.org/doc/draft-ietf-moq-transport/">
          <front>
            <title>Media over QUIC Transport</title>
            <author>
              <organization>IETF MOQ WG</organization>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-17"/>
        </reference>
        <reference anchor="MoQMetrics" target="https://datatracker.ietf.org/doc/draft-jennings-moq-metrics/">
          <front>
            <title>Metrics over MOQT</title>
            <author initials="C." surname="Jennings" fullname="C. Jennings">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-metrics-02"/>
        </reference>
        <reference anchor="RFC8801">
          <front>
            <title>Discovering Provisioning Domain Names and Data</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="July"/>
          </front>
        </reference>
        <reference anchor="RFC9388">
          <front>
            <title>Content Delivery Network Interconnection (CDNI) Footprint Types: Country Subdivision Code and Footprint Union</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="June"/>
          </front>
        </reference>
        <reference anchor="RFC8805">
          <front>
            <title>A Format for Self-Published IP Geolocation Feeds</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 287?>

<section anchor="appendix-a-example-topology-informative">
      <name>Appendix A. Example Topology (Informative)</name>
      <t>The following example illustrates a typical relay mesh topology:</t>
      <t><tt>
Home/Ent (NY)                    Relay Mesh                    SVC Media MS
    |                          A --- B
    |                           \   /
    +----(16ms RTT)-------------&gt; D
    |                           /   \
    |                          C --- (to SVC)
</tt></t>
      <ul spacing="normal">
        <li>
          <t><strong>Relay D</strong>: JFK (NY), serves Home/Ent with 16ms RTT.</t>
        </li>
        <li>
          <t><strong>Relay A, B, C</strong>: Interconnected; A connects to SVC.</t>
        </li>
        <li>
          <t>Geocode for each enables path selection (e.g., NY client → D → A → SVC) and GDOR (e.g., ensure D and A are in permitted jurisdictions).</t>
        </li>
      </ul>
    </section>
    <section anchor="appendix-b-iata-code-reference-informative">
      <name>Appendix B. IATA Code Reference (Informative)</name>
      <t>IATA codes are maintained by the International Air Transport Association. A subset useful for MoQ relay identification:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Code</th>
            <th align="left">City/Region</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">JFK</td>
            <td align="left">New York (John F. Kennedy)</td>
          </tr>
          <tr>
            <td align="left">LGA</td>
            <td align="left">New York (LaGuardia)</td>
          </tr>
          <tr>
            <td align="left">EWR</td>
            <td align="left">Newark (NYC metro)</td>
          </tr>
          <tr>
            <td align="left">IAD</td>
            <td align="left">Washington Dulles (Virginia)</td>
          </tr>
          <tr>
            <td align="left">DCA</td>
            <td align="left">Washington Reagan</td>
          </tr>
          <tr>
            <td align="left">LHR</td>
            <td align="left">London Heathrow</td>
          </tr>
          <tr>
            <td align="left">FRA</td>
            <td align="left">Frankfurt</td>
          </tr>
          <tr>
            <td align="left">CDG</td>
            <td align="left">Paris Charles de Gaulle</td>
          </tr>
          <tr>
            <td align="left">AMS</td>
            <td align="left">Amsterdam</td>
          </tr>
          <tr>
            <td align="left">NRT</td>
            <td align="left">Tokyo Narita</td>
          </tr>
          <tr>
            <td align="left">SIN</td>
            <td align="left">Singapore</td>
          </tr>
          <tr>
            <td align="left">SYD</td>
            <td align="left">Sydney</td>
          </tr>
          <tr>
            <td align="left">GRU</td>
            <td align="left">São Paulo</td>
          </tr>
        </tbody>
      </table>
      <t>Operators <bcp14>SHOULD</bcp14> use the official IATA code list for authoritative mappings.</t>
    </section>
    <section anchor="appendix-c-relay-advertisement-format-informative">
      <name>Appendix C. Relay Advertisement Format (Informative)</name>
      <t>The JSON schema and example for relay geocode advertisement are defined in the related document <tt>moq-relay-geocode-advertisement-format.md</tt>, which accompanies this draft. Implementations may use that schema when advertising geocode via Option 2 (PUBLISH/SUBSCRIBE), Option 3 (Catalog), Option 4 (Metrics), or Option 5 (Discovery).</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank the participants of the Media over QUIC Working Group for
discussion and review feedback that helped shape this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
TfOEai/4XzdR8jMYQAAA

-->

</rfc>
