<?xml version="1.0" encoding="UTF-8"?>
<?rfc toc="yes"?>
<?rfc compact="yes"?>
<?rfc tocdepth="6"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc autobreaks="no"?>
<?rfc subcompact="no"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<rfc category="info" submissionType="IETF" consensus="yes" ipr="trust200902" docName="draft-palet-happy-reporting-considerations-01">
  <front>
  <title abbrev="HE Failures Reporting">Considerations for Happy Eyeballs Error Reporting</title>

    <author fullname="Jordi Palet Martinez" initials="J" surname="Palet Martinez">
      <organization>The IPv6 Company</organization>

      <address>
        <postal>
          <street>Molino de la Navata, 75</street>

          <city>La Navata - Galapagar</city>

          <region>Madrid</region>

          <code>28420</code>

          <country>Spain</country>
        </postal>

        <email>jordi.palet@theipv6company.com</email>

        <uri>http://www.theipv6company.com/</uri>
      </address>
    </author>

    <author fullname="Philipp S. Tiesel" initials="P" surname="S. Tiesel">
      <organization>SAP SE</organization>

      <address>
        <email>philipp@tiesel.net</email>
      </address>
    </author>

    <date year="2026"/>

		<workgroup>HAPPY</workgroup>


		<abstract>
			<t>This document introduces different aspects to be considered for the Happy Eyeballs error reporting.</t>
		</abstract>
	</front>

	<middle>
		<section title="Introduction">
			<t>Happy Eyeballs (<xref target="I-D.ietf-happy-happyeyeballs-v3"/>) provides a way for improving user-visible delay when FQDN's have multiple IP addresses and connectivity is performing worse in those that should be the preferred ones.</t>

			<t>However, this hides possible connectivity issues to the operator or other parties in the chain between the client and the service being accessed, because users will not notice anything broken, so they will not report it to the providers. For example, in the case of a dual-stack web site, if IPv6 connectivity is somehow broken at any point between the client and the hosting service, Happy Eyeballs (HE across the rest of this document), will quickly fall-back to IPv4.</t>

			<t>The goal of this document is to discuss different aspects to be considered, in order to provide a decision path towards the best possible choice for the final error reporting solution for HE. The error reporting solution should allow an integral HE error reporting mechanism that enables setting up alarms and triggering further investigations so to improve network reliability, facilitating the detection of failures as soon as they appear, without the need of additional external monitoring.</t>
		</section>

        <section title="Use cases">
            <t>For HE reporting, we consider five different personas and identified the following use cases covering parts of the network that can cause HE fallback (IPv6 to IPv4 or QUIC to TCP):</t>
            <t><list style="numbers">
                <t>Application developers and users: To validate their own applications and infrastructure as well as providing support, application developers may want to be able to trace why certain communication prefer IPv4 instead of IPv6.
                In this case, it is especially important to understand whether the client has received an AAAA RR, whether connecting IPv6 was actually tried (and potentially why not) and how the attempt failed, e.g., lost race, TCP/TLS/QUIC handshake failed, … 
                Especially for web applications, exposing this information through developer tools or performance logs is crucial. Technical capable users and support personnel can use the same mechanisms.</t>
                <t>Corporate and other managed network operators: Corporate middle-boxes like firewalls and other endpoint security solutions often infer with IPv6 and QUIC.
                Therefore, application feedback is essential to diagnose issues with these solutions and their configuration.</t>
                <t>Service provider operators: 
                The service provider is usually the primary party for receiving and acting on reports. 
                Within its administrative realm, HE fallback can be caused by issues on the (provider managed) CE, routers and middle-box misconfiguration inside the provider network, or issues at direct peerings/transits. 
                In cellular dual-stack deployments, the problem is typically in the provider network rather than in the UE or customer LAN. Even when the customer manages parts of the CE or internal network, fallback reports remain useful to the provider because they can indicate customer-impacting misconfiguration</t> 
                <t>Intermediate transit operators: While not the most likely source of HE fallbacks, also misconfigurations in these networks may lead to IPv6 or protocol degradation. While fine-grained analysis of reporting is likely infeasible, sampling may be used as an indicator for larger issues.</t>
                <t>Content providers. This has been the most common source of the problem for some time, for instance, content providers having configured AAAA RR's when IPv6 connectivity was not good or even inexistent, wrong configuration in load-balancers or firewalls, etc.</t>
            </list></t>
            
            <t>If the error reporting is sent to the content provider, they will only be able to fix it if it is a general problem, affecting any possible source address in the Internet. However, they are usually unable to understand an fix problems along the path and need personas 1-4 to fix problems in their administrative domain.</t>
            <t>In the case 1, for developers, some kind of plug-in for the developer tools and performance logs is needed in order to understand HE decisions. Same is true for language libraries that do happy eyeballs under the hood. So in this case, it may be something that can be turned on/off by the developer code, as part of tracing/debugging facilities.</t>
        </section>

        <section title="What to report?">
            <t>TBD: Discussion needed.</t>
            <t>As the privacy impact heavily depend on the persona, the reporting solutions should also differ in the information exposed. As a minimum, source address (possibly just a prefix, not individual address, which also may resolve privacy issues), destination address (or even FQDN) are needed. It seems logic also to inform about what destination address failed, which one succeeded, and if the problem was IPv6 (fallback to IPv4) or QUIC (fallback to TCP). For Personas 1 and 2, it seems also convenient to inform about the timers that caused the fallback (Resolution Delay, Connection Attempt Delay).</t>
        </section>

        <section title="When to report?">
            <t>TBD: Discussion needed.</t>
            <t>In case of a developer or user, reporting every failure is expected as long as reporting is enabled.</t>
            <t>In case of a corporate or managed network, the reporting granularity should be configurable by the network administrator by some kind of logging policy.</t> 
            <t>In the case of service providers, reporting every failure may generate too much additional load and mechanisms like the ones to rate limit are advisable.</t>
        </section>

        <section title="How to report?">
            <t>TBD: Discussion needed.</t>
            <t>The reporting mechanisms will depend on the persona, and the use case, but in general, we can consider the following options:</t>
            <t><list style="letters">
                <t>Reports for developers and users, to be used in developer tools and performance logs, and to be turned on/off by the developer code, as part of tracing/debugging facilities.</t>
                <t>For corporate and managed network operators, using existing mechanism that integrate into the client management like syslog, systemd-journal, or windows events is crucial to be able to integrate the reporting into the existing monitoring and alerting systems.</t>
                <t>New mechanism to be used by content providers (W3C Network Error Logging <xref target="NEL"/>).</t>
                <t>For service provider operators, either a new mechanism, designed on purpose for HE error reporting (such as ICMP, <xref target="I-D.trammell-happy-sad"/>), or existing mechanisms such as in b. TBD - Discussion needed.</t>
            </list></t>
            
            <t>Considerations for choosing a protocol: Balance of work to be done in reporting hosts vs service provider. Chances to be implemented in hosts vs chances to be implemented in service providers. TBD.</t>
            <t>Format: JSON, QLOG? TBD.</t>
            <t>Service discovery to identify the listener of the reporting protocols: IANA dual-stack defined address? TBD.</t>
        </section>


		<section title="Privacy Considerations">
            <t>TBD. Very draft text follows from previous work and list inputs.</t>
            
            <t>The goal is to provide the operator information about the failures detected by HE, without requiring specific users traffic information. Towards this, it will be sufficient to provide to the error collector details about the failed destination address and source prefix. So privacy issues regarding identification of a specific device or users are avoided.</t>

            <t>Nowadays, operators already log this information in order to comply with lawful interception regulations, and in general, data protection regulations allow this logging when technically required. Data protection regulations explicitly say that the data can't be disclosed, and there is no need to do so.</t>

            <t>In general, vendors also collect telemetry data from devices, in order to improve OSs and in some situations, there are regulations that enforce offering the user to enable/disable that feature. So we could consider offering the same feature for this mechanism.</t>

            <t>When the mechanism described in this document detects a failure, the operator will need to find if the problem is related to:</t>
            <t><list style="symbols">
                <t>A specific subscriber (customer internal networks, or even at their CE).</t>
                <t>A group of subscribers or the entire service provider network (e.g., one or several part service provider network).</t>
                <t>Intermediate transits.</t>
                <t>Content provider.</t>
            </list></t>

            <t>Those cases, in terms of privacy considerations, will fall into one of the following categories:</t>
            <t><list style="letters">
            <t>Failure cause in customer internal network: The operator may decide, depending on their country regulations and services offered to that customer, to inform the customer (and decide what information is provided), or ignore the failure and include it in a "while list" (i.e., list of "don't care" failures), so the monitoring system doesn't keep providing alerts on it.</t>
            <t>Failure cause due to the service provider network: The operator will need to find the cause and fix the failure, without disclosing any personal data.</t>
            <t>Failure cause due to third parties (intermediate transits or content provider): The operator don't need to disclose any specific user source address/prefix, because in this case, the shorter prefix (typically the RIR allocated prefix or part of it, when is being announced split among different BGP peers), from which the failure has been verified is sufficient to re-verify the error.</t>
            </list></t>

            <t>In the most extreme case, a more restrictive usage of this procedure, not involving logging any user source address/prefix, will be to log only the failed destination address. In a big percentage of the cases, it will be enough for the service provider to detect the failure (use cases 2, 3, and 4), as experience shows that HE fallback occurs mainly because path or destination misconfiguration or issues. So, the service provider could replicate the failure from any other source address in its network to the same failed destination. If we take this approach, failures internal to a specific subscriber, could not be reported by the operator to the customer (as there is no source data logging), and together with partial failures of the operator network will require extra work from operator's staff to research the cause of the failure (i.e., it is in my network, part of it, a specific customer or external).</t>
            
            <t>So, there is any distinction between the privacy issues from this protocol compared to regular network operation and management, abuse reporting, etc. ?</t>

            <t>TBD: In the case of content providers reporting, something like Network Error Logging and/or Navigation Timing could help for content providers in a way where more detailed information can be sent to an endpoint within a TLS connection in a way that isn't exposing anything to the network.?</t>

            

		</section>


		<section title="Security Considerations">
			<t>This document does not have any specific security considerations.</t>
		</section>

        <section title="IANA Considerations">
            <t>This document does not have any IANA considerations.</t>
        </section>

		<section title="Acknowledgements">
			<t>The author would like to acknowledge the inputs of Gert Doering, Erik Nygren  ...</t>
		</section>
	</middle>

  <back>

    <references title="Normative References">
        <?rfc include="reference.I-D.ietf-happy-happyeyeballs-v3.xml" ?>
    </references>

    <references title="Informative References">
        <?rfc include="reference.RFC.5424" ?>
        <?rfc include="reference.RFC.5426" ?>
        <?rfc include="reference.I-D.trammell-happy-sad.xml" ?>

        <?rfc rfcedstyle="no" ?>

        <reference anchor="NEL" target="https://w3c.github.io/network-error-logging/">
        <front>
        <title>Network Error Logging</title>
        <author>
        </author>
        </front>
        </reference>

        <?rfc rfcedstyle="yes"?>
        
    </references>

  </back>

</rfc>
