<?xml version="1.0" encoding="US-ASCII"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<rfc category="std" docName="draft-trossen-rtgwg-rosa-00"
     ipr="trust200902">
  <front>
    <title abbrev="ROSA">Routing on Service Addresses</title>

    <author fullname="Dirk Trossen" initials="D." surname="Trossen">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street/>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>dirk.trossen@huawei.com</email>
      </address>
    </author>

    <author fullname="Luis M. Contreras"
            initials="LM."
            surname="Contreras">
      <organization abbrev="Telefonica">
        Telefonica
      </organization>
      <address>
        <postal>
          <street>Ronda de la Comunicacion, s/n</street>
          <street>Sur-3 building, 1st floor</street>
          <city>Madrid</city>
          <code>28050</code>
          <country>Spain</country>
        </postal>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
         <uri>http://lmcontreras.com/</uri>
      </address>
    </author>

    <!--author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>Orange</organization>
      <address>
        <postal>
          <street/>
          <city></city>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author-->

    <date month="" year="2022"/>

    <area>Routing</area>

    <keyword></keyword>

    <abstract>

      <t>This document proposes a novel communication approach  which reasons about WHAT is
        being communicated (and invoked) instead of WHO is communicating. Such approach is meant to transition away
        from locator-based addressing (and thus routing and forwarding) to an addressing scheme where
        the address semantics relate to services being invoked (e.g., for computational processes, and their generated information
        requests and responses).</t>

      <t>The document introduces Routing on Service Addresses (ROSA), as a realization of what is referred to as 'service-based routing'
        (SBR). Such routing is designed to be constrained by service-specific parameters that go beyond load and latency, as in today's best
        effort or traffic engineering based routing, leading to an approach to steer traffic in a service-specific constraint-based manner.</t>

      <t>Particularly, this document outlines sample ROSA use case scenarios, requirements for its design, and the
        ROSA system design itself.</t>

    </abstract>

  </front>

  <middle>

    <section anchor="intro" title="Introduction">

      <t>The centralization of Internet services has been well observed, not just in IETF discussions <xref target="Huston2021"/><xref target="I-D.nottingham-avoiding-internet-centralization"/>,
        but also in other efforts that aim to quantify the centralization, using methods such as the Herfindahl-Hirschman Index <xref target="HHI"/> or the Gini
        coefficient <xref target="Gini"/>. Dashboards of the Internet Society <xref target="ISOC2022"/> confirm the dominant role of CDNs in service delivery beyond just streaming services,
        both in centralization as well as resulting market inequality, which has been compounded through the global CV19 pandemic <xref target="CV19"/>.</t>

      <t>This centralization impacts the global Internet, as argued in <xref target="Huston2021"/>, through largely replacing Internet transit with global
        private networks, providing optimized last mile access to services through an economy of scale that only data centres
        (point-of-presence) can provide. But it also runs counter the original Internet design as a peer-to-peer communication
        system, having replaced the destination end host through an intermediary, usually deployed in the nearest PoP.</t>

      <t>The impact on routing can be seen in, e.g., <xref target="TIES2021"/>, which goes as far as centralizing service requests into a single IP
        address behind which DC-internal mechanisms take over.</t>

      <t>There is an inherent risk in such trend, not just at the economic level (in terms of market centralization and inequality)
        but also at the technological one since economic dominance may likely lead to skewing the technological enablers towards
        cementing the status quo that the current market represents. With it comes the danger that new use cases may be prevented
        in the light of the optimizations towards a centralized service provisioning capability.</t>

      <t>Providing the backdrop to the design proposed in this document, <xref target="EI2021"/> proposes an Extensible Internet (EI) framework
        for architectural evolution atop today's Internet. Novel network services are realised within interconnected service nodes
        (SNs), thereby taking IP for granted, while deploying SNs within last mile providers (LMPs) or cloud providers (CPs).</t>

      <t>The concept of limited domains <xref target="RFC8799"/> argues for a model of Internet technology development based on domain-specific
        behaviours and requirements, relying on the Internet for interconnection. The authors in <xref target="LDCU2021"/> show that this model has
        been driving innovation in the Internet since its very beginning, with well-known technologies resulting from it.
        ROSA aligns with the EI view of an architectural evolution through a shim layer atop IPv6. This positions ROSA as an  architecture
        for peer-to-peer service communication in limited domains, with market opportunities for LMPs or CPs, while interconnecting
        via the Internet for wider reachability.</t>

      <t>Evolving the IPv6 network layer has been part of its design from the very start. Key enabler here are Extension
        headers (EHs), which are part of the IPv6 specifications <xref target="RFC8200"/>, with some observed problems, e.g., firewall traversal,
        in real-world deployments <xref target="SHIM2014"/>. Recent solutions, such as Segment routing (SR) <xref target="RFC8402"/>,
        specifically SRv6 <xref target="RFC8986"/> build on this capability by establishing a shim layer overlay
        (of SR-enabled routers), utilizing an extension header to carry needed information for realizing the source routing capabilities.</t>

      <t>In remainder of this document, we first introduce in <xref target="Terminology"/> a terminology that provides the common language used throughout the remainder
        of the document. We then introduce use cases in <xref target="Use Cases"/> that drive the need for a routing on service address solution.
        We then outline in <xref target="Requirements"/> the requirements for such solution before introducing its design in <xref target="Design"/>.</t>

    </section>

    <section anchor="Terminology" title="Terminology">

       <t>The following terminology is used throughout the remainder of this document:</t>

       <t><dl>
           <dt>Service:</dt>
           <dd>A monolithic functionality that is provided according to the specification for said service.
             A composite service can be built by orchestrating a combination of monolithic services.</dd>

           <dt>Service Instance:</dt>
           <dd>A running environment (e.g., a node, a virtual instance) that provides the expected service.  One service can involve
             several instances running within the same network at different network locations, thus providing service equivalence between those instances.</dd>

           <dt>Service Address:</dt>
           <dd>An identifier for a specific service.</dd>

           <dt>Service Transaction:</dt>
           <dd>A sequence of higher-layer requests for a specific service, consisting of at least one service request,
            addressed to the service address, and zero or more affinity requests.</dd>

           <dt>Service Request:</dt>
           <dd>A request for a specific service, addressed to a specific service address, which is directed to at least one of possibly many service
             instances.</dd>

           <dt>Affinity Request:</dt>
           <dd>A request to a specific service, following an initial service request, requiring steering to the same
             service instance chosen for the initial service request.</dd>

           <dt>ROSA Provider:</dt>
           <dd>Realizing the ROSA-based traffic steering capabilities over at least one infrastructure provider.</dd>

           <dt>ROSA Domain:</dt>
           <dd>Domain of reachability for services supported by a single ROSA provider.</dd>

           <dt>ROSA Endpoint:</dt>
           <dd>A node accessing or providing one or more services through one or more ROSA providers.</dd>

           <dt>ROSA Client:</dt>
           <dd>A ROSA endpoint accessing one or more services through one or more ROSA providers, thus issuing services requests directed to
             one of possible many service instances that have previously announced the service address provided by the ROSA client
             in the service request.</dd>

           <dt>Service Address Router (SAR):</dt>
           <dd>A node supporting the operations for steering service requests to one of possibly many service instances,
             following the procedures outlined in <xref target="Design:traffic_steering"/>.</dd>

           <dt>Service Address Gateway (SAG):</dt>
           <dd>A node supporting the operations for steering service requests to service addresses not previously announced to
             SARs of the same ROSA domain to suitable endpoints in the Internet.</dd>

         </dl></t>

    </section>
    <section anchor="Use Cases" title="Deployment and Use Case Scenarios">

     <t>Reid et al <xref target="Namespaces2022"/> outline insights into the aspects and pain points experienced when deploying
     existing intra-DC service platforms in multi-site settings, i.e., networked over the Internet. The main takeaway in
     <xref target="Namespaces2022"/> is the lacking protocol support for routing requests of microservices that would allow
     for mapping application onto network address spaces without the need for explicitly managed mapping and gateway services.
     While this results in management overhead and thus costs, efficiency of such additional mapping and gateway services is also
     seen as a hinderance in scenarios with highly dynamic relationships between distributed microservices, an observation aligned
     with the findings in <xref target="OnOff2022"/>.</t>

     <t>In the following, we outline examples for use cases that exhibit the degrees of distribution in which relationship management
       (through explicit mapping and/or gatewaying) may become complex and a possible hinderance for service performance.</t>

       <section title="CDN Interconnect and Distribution">

        	<t>Video streaming has been revealed nowadays as the main contributing service to the traffic observed in operators' networks.
            Multiple stakeholders, including operators and third party content providers, have been deploying Content Distribution
            Networks (CDNs), formed by a number of cache nodes spread across the network with the purpose of serving certain
            regions or coverage areas. In such a deployment, protection schemas are defined in order to ensure the delivery
            continuity even in the case of outages or starvation in cache nodes.</t>

 	        <t>In addition to that, novel schemes of CDN interconnection <xref target="RFC6770"/> <xref target="SVA"/> are being
          defined allowing a given CDN to leverage the installed base of another CDN to complement its overall footprint.</t>

 	        <t>As result, several caches are deployed in different Points of Presence in the network. Then for a given content requested
            by an end user, several of those caches could be candidate nodes for delivery. Currently, the choice of the cache node to
            serve the customer relies solely on the content provider logic, considering only a limited set of conditions to apply. </t>

 	        <t>The performance can be improved by the consideration of further conditions in the decision on what cache node to be
            selected. Thus, the decision can depend of course on the requested content and the operational conditions of the cache
            itself, but also on the network status or any other valuable, often service-specific, semantic for reaching those nodes.</t>

          <t>Furthermore, those decision points may be dynamic and could even change during the lifetime of the overall service, thus requiring to
            revisit decisions and therefore assignments to the most appropriate CDN node.</t>

       </section>

       <section title="Distributed user planes for mobile and fixed access providing reachability to edge computing facilities">

         <t>5G networks natively facilitate the decoupling of control and user plane. The User Plane Function (UPF) in 5G networks
           terminates the tunnels set carrying end user traffic permitting to route the end user traffic in the network towards
           its destination.</t>

         <t>Several UPFs can be deployed in a distributed manner, not only for covering different access areas, but UPFs can
           also be distributed with the attempt of providing access to different services, linked with the idea of network slicing as
           means for tailored service differentiation. For instance, some UPFs could be deployed very close to the access for
           services requiring either low latency or very high bandwidth, while others could be deployed in a more centralized
           manner for requiring less service flows. Furthermore, multiple instances can be deployed for scaling purposes
           depending on the demand in a specific moment.</t>

         <t>Similarly, to what happens in mobile access, fixed access solutions are proposing schemas of separation of control
           and user plane for BNG elements <xref target="I-D.wadhwa-rtgwg-bng-cups"/> <xref target="BBF"/>. From the deployment
           point of view, different instances can be deployed based on the coverage, the temporary demand, etc, as before.</t>

         <t>As a complement to both mobile and fixed access scenarios, edge computing capabilities are expected to complement
           the deployments for hosting service and applications of different purposes, for both services internal to the operator
           or hosting of services from third parties.</t>

         <t>In this situation, either for both selection of the specific user plane termination instance, or from that point on,
           selection of the service endpoint after the user plane function, it makes sense the introduction of mechanisms
           enabling selection choices based on service-specific semantics.</t>

       </section>

        <section title="Multi-homed and multi-domain services">

         <t>Corporate services usually present exact requirements in terms of availability and resiliency. This is why multi-homing
           is common in order to diversify the access to services external to the premises of the corporation, or for providing
           interconnectivity of corporate sites (and access to internal services such as databases, etc).</t>

         <t>The diversity of providers implies to consider service situations in a multi-domain environment, because of the interaction
           with multiple administrative domains.</t>

         <t>From the service perspective, it seems necessary to ensure a common understanding of the service expectations and
           objectives independently of the domain traversed or the domain providing such a service. Common semantics can facilitate
           the assurance of the service delivery and a quick adaptation to changing conditions in the internal of a domain, or even
           across different domains.</t>

       </section>

       <section title="Observations">
         <t>Several observations can be drawn from the use case examples in this section:</t>
         <t><ol type="%d">
           <li>Service instances for a specific service may exist in more than one network location, e.g., for replication
             purposes to serve localized demand. </li>
           <li>While the deployment of service instances may follow a longer term planning cycle, e.g., based on demand/supply
             patterns of content usage, it may also have an ephemeral nature, e.g., scaling in and out dynamically to cope with
             temporary load situations.</li>
           <li>Decisions to utilize a specific service instance may be service-specific, realizing a specific service level
             agreement (with an underlying decision policy) that is tailored to the service and agreed upon between the service platform provider and the communication
             service provider.</li>
           <li>Decision points for selecting the 'right' or 'best' service instance may be dynamic under the given service-specific
           decision policy. Thus, traffic following a specific network path from a client to one service instance, may need to
           follow another network path or even utilize an entirely different service instance as a result of re-applying the decision
           policy. </li>
         </ol></t>

         <t>There exist a number of L4 through L7 based solutions to realize the aforementioned use cases, with
           <xref target="I-D.liu-can-gap-reqs"/> providing an initial overview into the gaps that those solutions experience
           in the light of the observations above.</t>

         <t>A key takeaway from this analysis is that the explicit indirection for service discovery, realized for instance through
           DNS, GSLB or other solutions, poses a challenge to the dynamicity also observed in our use cases here due to the additional
           latency incurred but also due to the relatively static mapping of service name
           onto network locator that is maintained in most of those solutions. The work in <xref target="OnOff2022"/>
           investigates the impact of such off-path vs possible on-path decision making onto service performance and user experience.</t>

         <t>In the next section, we outline requirements for a solution that would realize those use cases and address some of the
           gaps outlined in <xref target="I-D.liu-can-gap-reqs"/>, with <xref target="Design"/> presenting our initial design on how
           to address those requirements through a shim layer atop IPv6.</t>
       </section>

    </section>

    <section anchor="Requirements" title="Requirements">

      <t>The following requirements for a routing on service addresses (ROSA) solution (referred to as 'solution' for short)
        have been identified from our use cases in the previous section:</t>

        <t><ol type="REQ%d:" group="reqs">
          <li>Solution MUST provide means to associate services with a single service address.
          <ol type="(%c)" group="subreqs" start="1">
             <li>Solution MUST provide secure association of service address to service owner.</li>
             <li>Solution SHOULD provide means to obfuscate the purpose of communication to intermediary network elements.</li>
             <li>Solution MAY provide means to obfuscate the constraint parameters used for selecting specific service instances.</li>
          </ol></li>
          <li>Solution MUST provide means to announce route(s) to specific instances realizing a specific service address,
            thus enabling service equivalence for this set of service instances.
          <ol type="(%c)" group="subreqs" start="1">
            <li>Solution MUST provide scalable means for route announcements.</li>
            <li>Solution MUST announce routes within a ROSA domain.</li>
            <li>Solution SHOULD provide means to delegate route announcement.</li>
            <li>Solution SHOULD provide means to announce routes at other than the network attachment point
            realizing the announced service address.</li>
          </ol></li>
          <li>Solution MUST provide means to interconnect ROSA islands.
          <ol type="(%c)" group="subreqs" start="1">
            <li>Solution MUST allow for announcing services across ROSA domains.</li>
            <li>Solution MUST allow for announcing computational processes outside ROSA domains.</li>
          </ol></li>
          <li>Solution MUST provide constraint-based routing capability.
          <ol type="(%c)" group="subreqs" start="1">
            <li>Solution MUST provide means to announce routing constraints associated with specific service instances.</li>
            <li>Solution SHOULD allow for providing operation for constraint matching in announcement.</li>
            <li>Solution MUST at least provide exact constraint match during request routing.</li>
            <li>Solution MUST provide first match, if more than one match found.</li>
            <li>Solution SHOULD provide random match, if more than one match found.</li>
            <li>Solution SHOULD provide match to all, if more than one match found.</li>
            <li>Solution MAY provide partially ordered matches.</li>
          </ol></li>
          <li>Solution MUST provide scheduled instance selection at ROSA ingress nodes.
          <ol type="(%c)" group="subreqs" start="1">
            <li>Solution MUST allow for signalling specifying selection mechanism and necessary input parameters
            for selection to the ROSA ingress nodes.</li>
          </ol></li>
          <li>Solution MUST support instance affinity during request routing, i.e., a request is sent from client
            to one dedicated service instance as part of an ongoing service transaction.
          <ol type="(%c)" group="subreqs" start="1">
            <li>Solution MUST adhere affinity to the service instance chosen in the initial service request of the
                service transaction.</li>
          </ol></li>
          <li>Solution SHOULD use IPv6 for the routing and forwarding of service and affinity requests.
          <ol type="(%c)" group="subreqs" start="1">
            <li>Solution MAY use IPv4 for the routing and forwarding of service affinity requests.</li>
          </ol></li>
          <li>Solution SHOULD support in-request mobility for a ROSA client.</li>
          <li>Solution SHOULD support transaction mobility, i.e., changing service instances during an
            ongoing service transaction.</li>
          <li>Solution SHOULD support TLS 0-RTT handshakes without the need for pre-shared certificates.</li>
      </ol></t>

    </section>

    <section anchor="Design" title="ROSA Design">

      <t>This section outlines the design of a shim layer relying upon IPv6 to provide routing on service addresses (ROSA).
      It first outlines the system overview, before elaborating on various aspects of ROSA in terms of shim layer interactions,
      forwarding operations, needed client changes, traffic steering methods, interconnection and security considerations.</t>

      <section anchor="Design:overview" title="System Overview">

      <t><xref target="ROSA overview"/> illustrates a ROSA-enabled limited domain <xref target="RFC8799"/>, interconnected to other ROSA-supporting
      domains via the public Internet through the Service Address Gateway (SAG). <xref target="Design:interconnection"/> provides
      more detail on how to achieve that interconnection. ROSA is positioned as a shim overlay atop IPv6, using Extension headers
      that carry the suitable information for routing and forwarding the ROSA service requests, unlike <xref target="I-D.eip-arch"/> which proposes to
      include extension processing directly into the transport network. With that in mind, a single ROSA domain may span across more
      than one network-level domain, thereby allowing for the multi-AS ROSA deployments.</t>

      <figure anchor="ROSA overview" title="ROSA System Overview"><artwork>
        <![CDATA[
                       +-----------+  +-----------+   +-------+
                       +service.org+  +service.org+   +foo.com|
                       +----+------+  +-------+---+   +----+--+
                            |                 |            |
       +-----------+   +----+-+           +----+-----------+--+
       +service.org+---+DC Net|           |       DC Net      |
       +-----------+   +---+--+           +-------------+-----+
                          |                             |
                        +-+--+                        +-+--+
                  +-----+SAR4|                        |SAR5|
                  |     +-+--+                        +-+--+
+------+        +-+--+                 +----+           |
+Client+--------+SAR1+-------------+   +SAR6+           |
+------+        +----+             |   +-+--+           |
                                   |     |              |
+------+        +----+            ++-----+----+         |
+Client+--------+SAR2+------------+IPv6 Net(s)+---------+
+------+        +----+            +---+--+----+            (----)
                                      |  |                (      )
+------------------+        +----+    |  |    +----+     (  Other )
+MyMobile.org/video+--------+SAR3+----+  +----+SAG1+----(  Domains )
+------------------+        +----+            +----+     (        )
                                                          (------)

SAR: Service Address Router
SAG: Service Address Gateway

]]>
      </artwork></figure>

      <t>ROSA endpoints start with discovering their ingress Service Address Router (SAR), e.g., through DHCP extensions or
        through utilizing the Session Management Function (SMF) in 5G networks <xref target="23.501"/>. An endpoint may discover several ingress
        SARs for different categories of services, each SAR being part of, e.g., a category-specific ROSA overlay, which in turn
        may be governed by different routing policies and differ in deployment (size and capacity). The category discovery
        mechanism may be subject to specific deployments of ROSA and thus is likely outside the scope of this document.</t>

      <t>Services are realized by service instances, possibly at different network locations. Those instances expose their
        availability to serve requests through announcing the service address of their service to their ingress SAR.</t>

      <t>To invoke a service, a ROSA client sends an initial request, addressed to a service, to its ingress SAR, which in
        turn steers the request (possibly via other SARs) to one of possibly many service instances. See <xref target="Design:forwarding"/>
        for the required SAR-local forwarding operations and end-to-end message exchange and <xref target="Design:client"/>
        for the needed changes to ROSA clients.</t>

      <t>We refer to initial requests as 'service requests'. If an overall service transaction creates ephemeral state, the
        client may send additional requests to the service instance chosen in the (preceding) service request; we refer to
        those as 'affinity requests'. With this, routing service requests (over the ROSA network) can be positioned as on-path
        service discovery, contrasted against explicit, often off-path solutions such as the DNS.</t>

      <t>In order to support transactions across different service instances, e.g., within a single DC, a sessionID may be used,
        as suggested in <xref target="SOI2020"/>. Unlike <xref target="SOI2020"/>, discovery does not include mapping abstract service classes onto specific service
        addresses, avoiding semantic knowledge to exist in the ROSA shim layer for doing so.</t>

      <t>With the above, we can outline the following design principles that guide the development for the solutions described
        next:</t>

      <t><list style="numbered">
      <t> Service addresses have unique meaning only in the overlay network.</t>
      <t>	Service instance IP addresses have meaning only in the underlay networks, over which the ROSA domain operates.</t>
      <t>	SARs map service addresses to the IP addresses for the next hop to send the service request to, finally directed
        to the service instance IP address.</t>
      <t>	Within the underlay network, service instance IP addresses have both locator and identifier semantics.</t>
      <t>	A service address within a ROSA domain carries both identifier and locator semantics to other nodes within
        that domain but also other ROSA domains (through the interconnection methods shown in <xref target="Design:interconnection"/>).</t>
      <t>	Affinity requests directly utilize the underlay networks, based on the relationships build during the
        service request handling phase.</t>
      </list></t>

      <t>We can recognize similarities of these principles with those outlined for the Locator Identifier Separation Protocol (LISP) in <xref target="I-D.ietf-lisp-introduction"/>
      albeit extended with using direct IP communication for longer service transactions.</t>

      </section>

      <section anchor="Design:messages" title="Message Types">

      <t>Apart from affinity requests, which utilize standard IPv6 packet exchange between the client and the service instance
        selected through the initial service request, ROSA introduces three new message types, shown in <xref target="ROSA messages"/>.</t>

      <t>NOTE: more detailed IP header style notation will be added in later versions.</t>

      <figure anchor="ROSA messages" title="ROSA message types"><artwork>
        <![CDATA[
+---------+-------------++---------------------------------------+
|Source   | Destination |     |IPv6 Destination extension header |
|Address  | Address     | ... |Instance=IP                       |
+---------+-------------+-----+Service=ID                        |
                              |Constraint=txt                    |
                              +----------------------------------+
    Service Announcement

+---------+-------------++---------------------------------------+
|Source   | Destination |     |IPv6 Destination extension header |
|Address  | Address     | ... |Client=IP                         |
+---------+-------------+-----+Ingress=IP                        |
                              |Service=ID                        |
                              +----------------------------------+
    Service Request

+---------+-------------++---------------------------------------+
|Source   | Destination |     |IPv6 Destination extension header |
|Address  | Address     | ... |Client=IP                         |
+---------+-------------+-----+Ingress=IP                        |
                              |Service=ID                        |
                              |Instance=IP                       |
                              +----------------------------------+
    Service Response

]]>
      </artwork></figure>

      <t>Given the overlay nature of ROSA, clients, SARs, and service instances are destinations in the IPv6 underlay of the
        network domains that the overlay spans across. For this reason, we use the destination option EH <xref target="RFC8200"/>, where
        <xref target="ROSA messages"/> highlights only the entries needed for the specific purpose of the message, omitting
        other IPv6 packet header information for simplicity. The initial prototype uses a TLV format for the extension header
        with Concise Binary Object Representation (CBOR) <xref target="RFC8949"/> being studied as an alternative. The EH entries shown are populated
        at the client and service instance, while read at traversing SARs.</t>

      <t>A service address is encoded through a hierarchical naming scheme, e.g., using <xref target="RFC8609"/>. Here, service addresses consist
        of components, mapping existing naming hierarchies in the Internet onto those over which to forward packets, illustrated
        in the forwarding information base (FIB) of <xref target="SAR forwarding"/> as illustrative URLs. With components treated
        as binary objects, the hierarchical structure allows for prefix-based grouping of addresses, reducing routing table size,
        while the explicit structure allows for efficient hash-based lookup during forwarding operations, unlike IP addresses which
        require either log(n) radix tree search software or expensive TCAM hardware solutions.</t>

      <t>Note that other encoding approaches could be used, such as hashing the service name at the ROSA endpoint or assigning a service
        address through a mapping system, such as the DNS, but this would require either additional methods, e.g., for hash conflict
        management or name-address mapping management, which lead to more complexity.</t>

      <t>With the service announcement message, a service instance signals towards its ingress SAR its ability to serve requests for a specific service
        address. <xref target="Design:traffic_steering"/> outlines the use of this message in routing or scheduling-based traffic
        steering methods.</t>

      <t>The service request message is originally sent by a client to its ingress SAR, which in turn uses the service address
        provided in the extension header to forward the request, while the selected service instance provides its own IP locator
        as an extension header entry in the service response. The next section describes the SAR-local forwarding operations and
        the end-to-end message exchange that uses the extension header information for traversing the ROSA network, while
        <xref target="Design:interconnection"/> outlines the handling of service addresses that have not been previously
        announced within the client-local ROSA domain.</t>
      </section>

      <section anchor="Design:forwarding" title="SAR Forwarding Engine">

      <t>The SAR operations are typical for an EH-based IPv6 forwarding node: an incoming service request or response is
        delivered to the SAR forwarding engine, parsing the EH for relevant information for the forwarding decision, followed
        by a lookup on previously announced service addresses, and ending with the forwarding action.</t>

      <t><xref target="SAR forwarding"/> shows a schematic overview of the forwarding engine with the forwarding information base
      (FIB) and the next hop information base (NHIB) as main data structures. The NHIB is managed through a routing protocol,
      see <xref target="Design:traffic_steering"/>, with entries leading to announced services.</t>

      <t>The FIB is dynamically populated by service announcements, with the FIB including only one entry into the NHIB when
        using routing-based methods (rows 0 to 3 in <xref target="SAR forwarding"/>), described in
        <xref target="Design:traffic_steering:routing"/>. Scheduling-based solutions (see <xref target="Design:traffic_steering:scheduling"/>),
        however, may yield several dynamically created entries into the NHIB (items 0, 4 and 5 in <xref target="SAR forwarding"/>, where SI1 and SI2
        represent the IPv6 address announced by the respective service instances) as well as
        additional information needed for the scheduling decision; those dynamic NHIB entries directly identify service instances
        locations (or their egress as in item 0) and only exist at ingress SARs towards ROSA clients.</t>

      <figure anchor="SAR forwarding" title="SAR forwarding engine model"><artwork>
        <![CDATA[
incoming service request/response
-------------------------------------||             Next Hop
                                     \/        Information Base
Forwarding Information Base     +----------+   +-+--------+----+
+------------------+--------+   |EH parsing|   |#|Next Hop|Cost|
|Service address   |Next Hop|   +----||----+   |#|   IP   |Cost|
+------------------+--------+        \/        +-+--------+----+
| service.org      | 4, 5, 0|   +----------+   |0|  SAR5  | 2  |
+------------------+--------+   |   SAR    |   +-+--------+----+
| foo.com          | 1      |-->|Forwarding|   |1|  SAR6  | 1  |
+------------------+--------+   | Decision |   +-+--------+----+
|MyMobile.org/video| 2      |   +----||----+   |2|  SAR2  | 4  |
+------------------+--------+        \/        +-+--------+----+
| *                | 3      |   +----------+   |3|  SAR1  | 2  |
+------------------+--------+   |   SA/DA  |   +-+--------+----+
                                |Adjustment|<--|4|  SI1   | -  |
                                +----||----+   +-+--------+----+
                                     \/        |5|  SI2   | -  |
                                +----------+   +-+--------+----+
                                |IP packet |
                                |forwarding|  Outgoing service
                                |  engine  |  request/response
                                +----------+------------------->
]]>
      </artwork></figure>

      <t>For a service request, a hash-based service address lookup (using the Service EH entry) is performed, leading to next
        hop (NH) information for the IPv6 destination address to forward to (the final destination address at the last hop SAR
        will be the instance serving the service request).</t>

      <t>Forwarding the response utilizes the Client and Ingress EH fields, where the latter is used by the service instance's
        ingress SAR to forward the response to the client ingress SAR, while the former is used to eventually deliver the response
        to the client by the client's ingress SAR, ensuring proper firewall traversal of the response back to the client.
        We have shown in prototype realizations of ROSA that the operations in <xref target="SAR forwarding"/> can be performed
        using eBPF <xref target="eBPF"/> extensions to Linux SW routers, while <xref target="SarNet2021"/> showed the
        possibility a realizing a similar design using P4-based platforms.</t>

      <figure anchor="ROSA message exchanges" title="ROSA message exchanges"><artwork>
        <![CDATA[

Client            Ingress              Service           Service
                    SAR                Instance          Instance
(CIP)             (SAR IP)             (SI1 IP)          (SI2 IP)
-------------------------------------------------------------------------
ServiceRequest
(ClientIP,SAR IP)
(CIP, SAR IP, ServiceID)
--------------------->
                      \ Determine
                      / Next Hop

                      ServiceRequest
                      (SAR IP, SI1 IP)
                      (CIP, SAR IP, ServiceID)
                      --------------------->
                                            \ Generate
                                            / Response
                      ServiceResponse
                      (SI1 IP, SAR IP)
                      (CIP, SAR IP, ServiceID, SI1 IP)
                      <---------------------


ServiceResponse
(SAR IP, CIP)
(CIP, SAR IP, ServiceID, SI1 IP)
<---------------------


AffinityRequest
(CIP, SI1 IP)
------------------------------------------->
                                            \ Generate
                                            / Response
<-------------------------------------------
]]>
      </artwork></figure>

      <t><xref target="ROSA message exchanges"/> shows the resulting end-to-end message exchange, using the aforementioned SAR-local
      forwarding decisions. We here show the IP source and destination addresses in the first brackets and the extension header information
      in the second bracket.</t>

      <t>We can recognize two key aspects. First, the SA/DA re-writing happens at the SARs, using the EH-provided
      information on service address, initial ingress SAR and client IP locators, as described above. Second, the selection of the
      service instance is signalled back to the client through the additional Instance EH field, which is used for sending
      subsequent (affinity) requests via the IPv6 network. As noted in the figure, when using transport layer security, the service
      request and response will relate to the security handshake, thereby being rather small in size, while the likely larger HTTP
      transaction is sent in affinity requests. As discussed in <xref target="security"/>, 0-RTT handshakes may result in
      transactions being performed in service request/response exchanges only.</t>

      </section>

      <section anchor="Design:client" title="Changes to Clients to Support ROSA">

      <t>Within endpoints, the ROSA functionality is realized as a shim layer atop IPv6 and below transport protocols.
        For this, endpoints need the following adjustments to support ROSA:</t>
      <t><list style="numbered">
          <t>Adapting network layer interface: Introducing service addresses requires changes to the current socket interface for
            discovering the ingress SAR and issuing service requests as well as maintaining affinity to a particular service
            instance, i.e. mapping a service instance IP address to the initial service address. This could be achieved through
            providing a new address type (e.g., ADDR_SA) during socket creation, assigning the service address to the returned handle,
            while utilizing socket options to assign constraints to receiving sockets, utilized in the announcement of the service
            address. Alternatively, supporting service addresses could be integrated with efforts such as <xref target="POSTSOCK2017"/> to redefine the
            transport interface towards applications. Any OS-level client changes, as required by introducing new sockets, could
            be avoided by relying on, e.g., UDP-based, encapsulation of client traffic to the ingress SAR.</t>
          <t>Transport protocol integration: We see our design aligned with existing transport protocols, like TCP or QUIC, albeit
            with changes required to utilize the aforementioned new address type. For the application (protocol), the opening and
            closing of a transport connection would then signal the affinity to a specific instance, where the semantic of the
            'connection' changes from an IP locator to a service address associated to that specific service instance. With this,
            a new service transaction is started, akin to a fresh DNS resolution with IP-level exchange.</t>
          <t>Changes to application protocols: The most notable change for application protocols, like HTTP, would be in bypassing
            the DNS for resolving service names, using instead the aforementioned different (service) socket type. These adaptions
            are, however, entirely internal to the protocol implementation. Given the ROSA deployment alongside existing IP protocols,
            those changes to clients can happen gradually or driven through (e.g., edge SW) platforms.</t>
      </list></t>
      </section>

      <section anchor="Design:traffic_steering" title="Traffic Steering">

      <t>Traffic steering in ROSA is applied to service requests for selecting the service instance that may serve the request,
        while affinity requests use existing IPv6 routing and any policies constraining traffic steering in this part of the
        overall system. At receiving service endpoints, service provisioning platforms may use additional methods to schedule
        incoming service requests to suitable resources with the ingress point to the service provisioning platform being the
        service endpoint for ROSA.</t>

      <t>In the following, we outline two approaches for traffic steering. The first uses ingress-based scheduling decisions
        to steer traffic to one of the possible service instances for a given service address. The second follows a routing-based
        model, determining a single destination for a given service address using a routing protocol.</t>

      <t>We envision that some services may be steered through scheduling methods, while others use routing approaches. The
        indication which one to apply may be derived from the number of next hop entries for a service address. In
        <xref target="SAR forwarding"/>, service.org uses a scheduling method (with instances connected to SAR5 being
        exposed as a single instance to ROSA, using DC-internal methods for scheduling incoming requests), while the other
        services are routed via SARs.</t>

      <t>Important here is that traffic steering is limited to a single ROSA domain, i.e., traffic steering is not provided
        across instances of the same service in different ROSA domains; traffic will always be steered to (ROSA) domain-local
        instances only.</t>

        <section anchor="Design:traffic_steering:scheduling" title="Ingress Request Scheduling">

          <t>Traffic steering through explicit request scheduling follows an approach similar to application- or transport-level
            solutions, such as GSLB <xref target="GSLB"/>, DNS over HTTPS <xref target="RFC8484"/>, HTTP indirection <xref target="RFC7231"/>
            or QUIC-LB <xref target="I-D.ietf-quic-load-balancers"/>: Traffic is routed to an
            indirection point which directs the traffic towards one of several possible destinations.</t>

          <t>In ROSA, this indirection point is the client's ingress SAR. However, unlike application or transport methods,
            scheduling is realized in-band when forwarding service requests in the ingress SAR, i.e., the original request is
            forwarded directly (not returned with indirection information upon which the client will act), while adhering to the
            affinity of a transaction by routing subsequent requests in a transaction using the instance's IP address. Scheduling
            commences to a possibly different instance with the start of a new transaction.</t>

          <t>For this, the ingress SAR's NHIB needs to hold information to ALL announced service instances for a service address.
            Furthermore, any required information, e.g., capabilities or metric information, that is used for the scheduling decision
            is signalled via the service announcement, with (frequent) updates to existing announcements possible. Announcements for
            services following a scheduling- rather than a routing-based steering approach carry suitably encoded information in the
            Constraint field of the announcement's EH, leading to announcements forwarded to client-facing ingress SARs without NHIB
            entries stored in intermediary SARs.</t>

          <t>In addition, a scheduling decision needs to be realized in the SAR forwarding decision step of <xref target="SAR forwarding"/>.
          This may require additional information to be maintained, such as instance-specific state, further increasing the additional
          NHIB data to be maintained. Examples for scheduling decisions are:</t>

          <t><list style="symbols">
            <t>Random selection of one of the service instances for a given service address, not requiring any additional
              state information per service address. Announcing the service instance is required once.</t>
            <t>Round robin, i.e., cycling through service instance choices with every incoming service request, requiring
              to keep an internal counter for the current position in the NHIB for the service address. Announcing the
              service instance is only required once. </t>
            <t>Capability-based round robin: Cycle through service instances in weighted round robin fashion with the
              weight (as additional information in each NHIB entry) representing a capability, e.g., number of (normalized)
              compute resources committed to a service instance. Announcing the service instance requires an update when
              capabilities change (e.g., during re-orchestration). Weights could be expressed as numerals, limiting the
              needed semantic exposure of service provider knowledge and thereby supporting the possible separation of
              service and communication network provider. The solution in <xref target="CArDS2022"/> realises a compute-aware
              selection through such decision.</t>
            <t>Metric-based selection: Select service instance with lowest or highest reported metric, such as load, requiring
              to keep additional metric information per service instance entry in the NHIB. Frequent signalling of the metric
              is required to keep this information updated.</t>
          </list></t>

          <t>Although each method yields specific performance benefits, e.g., reduced latency or smooth load distribution,
            <xref target="OnOff2022"/> outlines simulation-based insights into benefits for realising the compute-aware solution of <xref target="CArDS2022"/> in ROSA.</t>
        </section>

        <section anchor="Design:traffic_steering:routing" title="Routing Across Multiple SARs">

          <t>In order to send a service request to the `best' service instance (among all announced ones) using a routing-based
            approach, we build NHIB routing entries by disseminating a service instance's announcement for a given service address
            S, arriving at its ingress SAR. This distribution may be realized via a routing protocol or a central routing
            controller, an option suitable for smaller scale deployments.</t>

          <t>If no particular constraint is given in the announcement's EH Constraint field, shortest path will be realized as a
            default policy for selecting the `best' instance, routing any client's request to S the nearest service instance available.</t>

          <t>Alternatively, selecting a service instance may use service-specific policies (encoded in the Constraint field of the
            EH, with the specific encoding details being left for future work). Here, multiple constraints may be used, with <xref target="Multi2020"/>
            providing a framework to determine optimal paths for such cases, while also conventional traffic engineering methods may be used.</t>

          <t>Through utilizing the work in <xref target="Multi2020"/>, a number of multi-criteria examples can be modelled through a dominant path model,
            relying on a partial order only, as long as isotonicity is observed. Typical examples here are widest-shortest path or
            shortest-widest routing (see <xref target="Multi2020"/>), which allow for performance metrics such as capacity, load, rate of requests, and
            others. However, metrics such as failure rate or request completion time cannot directly be captured and need
            formulation as a max metric. Furthermore, metrics may not be isotonic, with Section 3.4 of <xref target="Multi2020"/> supporting those cases
            through computing a set of dominant attributes according to the largest reduction. <xref target="Multi2020"/> furthermore shows that
            non-restarting or restarting vectoring protocols may be used to compute dominant paths and to distribute the routing
            state throughout the network.</t>

          <t>However, the framework in <xref target="Multi2020"/> is limited to unicast vectoring protocols, while the routing problem in ROSA requires
            selecting the 'best' path to the 'best' instance, i.e., as an anycast routing problem. To capture this, <xref target="Multi2020"/> could be
            extended through introducing a (anycast) virtual node, placed at the end of a logical path that extends from each service
            instance to the virtual node. Selecting the best path (over the announced attributes of each service instance) to the
            virtual node will now select the best service instance (over which to reach the virtual node in the logically extended
            topology).</t>

          <t>Alternatively, ROSA routing may rely on methods for anycast routing, but formulated for service instead of anycast
            addresses. For instance, AnyOpt <xref target="AnyOpt2021"/> uses a measurement-based approach to predict the best (in terms of latency)
            anycast (i.e. service) instance for a particular client. Alternatively, approaches using regular expressions may be extended
            towards spanning a set of destinations rather than a single one. Realizations in a routing
            controller would likely improve on convergence time compared to a distributed vector protocol; an aspect for further
            work to explore.</t>
        </section>
      </section>

      <section anchor="Design:interconnection" title="Interconnection">

      <t>There are two cases for interconnection: access to (i) non-ROSA services in the public Internet and (ii) ROSA services
        not domain-locally announced but existing in other domains.</t>

      <t>For both cases, we utilize a reserved wildcard service address '*' that points to a default route for any service address
        that is not being advertised in the local domain. This default route is the service address gateway (see <xref target="ROSA overview"/>),
        ultimately receiving the service request to the locally unknown service.</t>

      <t>Upon arriving at the SAG, it searches its local routing table for any information. If none is found, it consults the DNS to retrieve
        an IP address where the service is hosted; those mappings could be cached for improving future requests or being pre-populated for
        popular services.</t>

      <t>For case (i), the resolution returns a server's IP address to which the SAG sends the service request with its own IP address as
        source address. The service response is routed back via the SAG, which in turn uses the Ingress EH information to return the
        response to the client via its ingress SAR.</t>

      <t>For case (ii), the IP address would be that of the SAG of the ROSA domain in which the service is hosted. For this, a domain-local
        service instance would have exposed its service, e.g., Mobile.com/video <xref target="ROSA overview"/>, by registering its
        domain-local SAG IP address with the mapping service. To suitably forward the request, the SAG adds its own IP address as the value
        to an additional SAG label into the extension header. At the destination SAG, the service address information, extracted from the
        extension header, is used to forward the service request based on ROSA mechanisms. For the service response, the destination SAG
        uses the SAG entry in the EH to return the response to the originating ROSA domain's SAG, which in turn uses the Ingress information
        of the EH to return the response via the ingress to the client.</t>

      <t>Given the EH deployment issues pointed out in <xref target="SHIM2014"/>, a UDP-based encapsulation may overcome the observed issues, not relying on the
        EH being properly observed during the traversal over the public Internet. Furthermore, while <xref target="ROSA overview"/> shows the
        SAG as an independent component, we foresee deployments in existing PoPs. This would allow combining provisioning through frontloaded
        PoP-based services and ROSA services. Any service not explicitly announced in the ROSA system would lead to being routed to the
        PoP-based SAG, which may use any locally deployed services before forwarding the request to the public Internet.</t>

      </section>

    </section>

    <section anchor="Open Issues" title="Open Issues">
    </section>

    <section anchor="Relation" title="Relation to IETF/IRTF Efforts">
    </section>

    <section anchor="Conclusions" title="Conclusions">

      <t>TBD</t>

    </section>

    <section anchor="security" title="Security Considerations">

      <t>Aligned with security considerations in existing service provisioning systems, we address aspects related to authenticity,
        i.e., preventing fake service announcements, confidentiality, both in securing relationship as well as payload information,
        and operational integrity.</t>

        <t><list style="symbols">
          <t>	Announcement security: A key exchange between service and network provider may be used to secure the service announcement
            for ensuring an authorized announcement of services. Self-certifying identifiers could be used for this purpose</t>
          <t>	Relationship security: Using service addresses at the routing layer poses not just a privacy but possibly also a net
            neutrality problem, allowing for non-ROSA elements to discriminate against specific service addresses. Similar to <xref target="I-D.per-app-networking-considerations"/>,
            service addresses could reflect service categories, not services themselves. Service endpoints to those category-level
            services can use information in the secured payload (e.g., the URL in an HTTP-based service invocation) to direct the
            traffic accordingly. The downside of such model is a possible convergence towards a PoP-like model of service provisioning,
            since exposing an entire service category naturally requires provisioning many possible services under that category, likely
            favouring large-scale providers over smaller ones; an imbalance that ROSA intends to change, not favour. Work on identity
            privacy in ILNP <xref target="ILNP2021"/> has shown that ephemeral identifiers may increase the private nature of the communication relation; a
            direction that needs further exploration in the context of our work. Also, the service address in the extension header could
            be encrypted, based on a key exchange during the SAR discovery. However, the impact of such mechanism would need further study.</t>
          <t>Transport-level security: Given the often sensitive nature of service requests, payload security is key. We adopt techniques
            used in TLSV1.3 <xref target="RFC8446"/>, providing a 1-RTT handshake for communication between formerly untrusted parties. While the initial
            'Client Hello' is sent as a service request, the subsequent communication uses the topological address of the responding server
            in an affinity request. Using pre-shared keys may allow for communication between trusted client and service instances, e.g.,
            where the client is provided by the service authority and preconfigured with a pre-shared key. This results in a 0-RTT handshake
            with the 'Client Hello' including the initial service data, encrypted with the pre-shared key. This comes with known forward-secrecy
            issues and should be avoided in networks with untrusted intermediary nodes. Alternatively, the service's public key could encrypt
            the initial security handshake, akin to the solutions proposed for Encrypted Client Hello (ECH), using the DNS for obtaining
            the public key.</t>
          <t>Bandwidth DoS: We assume network provider level mechanisms to restrict traffic injected both by the service provider and client,
            including for the number of service advertisements in order to control the routing traffic.</t>
          <t>Denying routing service: A SAR could maliciously deny forwarding of client requests, which is no different from denying IP packet
            forwarding. In both cases, we assume an existing commercial relationship that avoids such situation.</t>
        </list></t>

    </section>

    <section title="IANA Considerations">

      <t>This draft does not request any IANA action.</t>

    </section>

    <section anchor="acks" title="Acknowledgements">
      <t>Many thanks go to Mohamed Boucadair for his comments to the text to clarify several aspects of the technical details of ROSA.</t>
    </section>

  </middle>

  <back>
    <references title="Informative References">

      <!-- ?rfc include='reference.RFC.8986'?-->

      <?rfc include='reference.RFC.6770'?>
      <?rfc include='reference.RFC.7231'?>
      <?rfc include='reference.RFC.8200'?>
      <?rfc include='reference.RFC.8402'?>
      <?rfc include='reference.RFC.8446'?>
      <?rfc include='reference.RFC.8484'?>
      <?rfc include='reference.RFC.8609'?>
      <?rfc include='reference.RFC.8799'?>
      <?rfc include='reference.RFC.8949'?>
      <?rfc include='reference.RFC.8986'?>

      <?rfc include='reference.I-D.eip-arch'?>
      <?rfc include='reference.I-D.nottingham-avoiding-internet-centralization'?>
      <?rfc include='reference.I-D.ietf-lisp-introduction'?>
      <?rfc include='reference.I-D.ietf-quic-load-balancers'?>
      <?rfc include='reference.I-D.per-app-networking-considerations'?>
      <?rfc include='reference.I-D.wadhwa-rtgwg-bng-cups'?>
      <?rfc include='reference.I-D.liu-can-gap-reqs'?>

     <reference anchor="SOI2020">
      <front>
        <title>A New Approach to a Service Oriented Internet Protocol</title>

        <author initials="S." surname="Jiang">
          <organization/>
        </author>
        <author initials="G." surname="Li">
          <organization/>
        </author>
        <author initials="B." surname="Carpenter">
          <organization/>
        </author>
        <date year="2020"/>
      </front>

      <seriesInfo name="Paper" value="IEEE INFOCOM 2020 - IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS)"/>
     </reference>

     <reference anchor="SarNet2021">
      <front>
        <title>Service-based Forwarding via Programmable Dataplanes</title>

        <author initials="R." surname="Glebke">
          <organization/>
        </author>
        <author initials="D." surname="Trossen">
          <organization/>
        </author>
        <author initials="I." surname="Kunze">
          <organization/>
        </author>
        <author initials="Z." surname="Lou">
          <organization/>
        </author>
        <author initials="J." surname="Rueth">
          <organization/>
        </author>
        <author initials="M." surname="Stoffers">
          <organization/>
        </author>
        <author initials="K." surname="Wehrle">
          <organization/>
        </author>
        <date year="2021"/>
      </front>

      <seriesInfo name="Paper" value="1st Intl Workshop on Semantic Addressing and Routing for Future Networks"/>
     </reference>

     <reference anchor="CArDS2022">
      <front>
        <title>CArDS:Dealing a New Hand in Reducing Service Request Completion Times</title>

        <author initials="K." surname="Khandaker">
          <organization/>
        </author>
        <author initials="D." surname="Trossen">
          <organization/>
        </author>
        <author initials="R." surname="Khalili">
          <organization/>
        </author>
        <author initials="Z." surname="Despotovic">
          <organization/>
        </author>
        <author initials="A." surname="Hecker">
          <organization/>
        </author>
        <author initials="G." surname="Carle">
          <organization/>
        </author>
        <date year="2022"/>
      </front>

      <seriesInfo name="Paper" value="IFIP Networking"/>
     </reference>

     <reference anchor="OnOff2022">
      <front>
        <title>On-path vs Off-path Traffic Steering, That Is The Question</title>

        <author initials="K." surname="Khandaker">
          <organization/>
        </author>
        <author initials="D." surname="Trossen">
          <organization/>
        </author>
        <author initials="J." surname="Yang">
          <organization/>
        </author>
        <author initials="Z." surname="Despotovic">
          <organization/>
        </author>
        <author initials="G." surname="Carle">
          <organization/>
        </author>
        <date year="2022"/>
      </front>

      <seriesInfo name="Paper" value="ACM SIGCOMM workshop on Future of Internet Routing and Addressing (FIRA)"/>
     </reference>

     <reference anchor="Multi2020">
      <front>
        <title>Routing on Multi Optimality Criteria</title>

        <author initials="M. A." surname="Ferreira">
          <organization/>
        </author>
        <author initials="J. L." surname="Sobrinho">
          <organization/>
        </author>
        <date year="2020"/>
      </front>

      <seriesInfo name="Paper" value="ACM SIGCOMM"/>
     </reference>

     <reference anchor="AnyOpt2021">
      <front>
        <title>AnyOpt: predicting and optimizing IP Anycast performance</title>

        <author initials="Z." surname="Zhang">
          <organization/>
        </author>
        <author initials="T." surname="April">
          <organization/>
        </author>
        <author initials="B." surname="Chandrasekaran ">
          <organization/>
        </author>
        <author initials="D." surname="Choffnes ">
          <organization/>
        </author>
        <author initials="B. M." surname="Maggs ">
          <organization/>
        </author>
        <author initials="H." surname="Shen">
          <organization/>
        </author>
        <author initials="R. K." surname="Sitaraman ">
          <organization/>
        </author>
        <author initials="X." surname="Yang">
          <organization/>
        </author>
        <author initials="X." surname="Zhang">
          <organization/>
        </author>
        <author initials="T." surname="Sen">
          <organization/>
        </author>
        <date year="2021"/>
      </front>

      <seriesInfo name="Paper" value="ACM SIGCOMM"/>
     </reference>

     <reference anchor="Huston2021"
       target="https://github.com/danielkinguk/sarah/blob/main/conferences/ietf-112/materials/Huston-2021-11-10-centrality.pdf ">
      <front>
        <title>Internet Centrality and its Impact on Routing</title>

        <author initials="G." surname="Huston">
          <organization/>
        </author>
        <date year="2021"/>
      </front>

      <seriesInfo name="Technical Report" value="IETF side meeting on 'service routing and addressing'"/>
     </reference>

     <reference anchor="HHI"
       target="https://en.wikipedia.org/wiki/Herfindahl-Hirschman_index">
      <front>
        <title>Herfindahl-Hirschman index</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2022"/>
      </front>

      <seriesInfo name="Technical Report" value="Wikipedia"/>
     </reference>

     <reference anchor="Gini"
       target="https://en.wikipedia.org/wiki/Gini_coefficient">
      <front>
        <title>Gini Coefficient</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2022"/>
      </front>

      <seriesInfo name="Technical Report" value="Wikipedia"/>
     </reference>

     <reference anchor="ISOC2022"
       target="https://pulse.internetsociety.org/centralization">
      <front>
        <title>Internet Centralization</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2022"/>
      </front>

      <seriesInfo name="Technical Report" value="ISOC Dashboard"/>
     </reference>

     <reference anchor="23.501"
       target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3144">
      <front>
        <title>System architecture for the 5G System (5GS); Stage 2 (Release 16)</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2021"/>
      </front>

      <seriesInfo name="Technical Report" value="3GPP TS 23.501 V16.11.0 (2021-12)"/>
     </reference>

     <reference anchor="eBPF"
       target="https://ebpf.io/what-is-ebpf/">
      <front>
        <title>What is eBPF?</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2022"/>
      </front>
      <seriesInfo name="Technical Report" value="eBPF Foundation"/>
     </reference>

     <reference anchor="GSLB"
       target="https://www.efficientip.com/what-is-gslb/">
      <front>
        <title>What is GSLB?</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2022"/>
      </front>
      <seriesInfo name="Technical Report" value="Efficient IP"/>
     </reference>

     <reference anchor="CV19">
      <front>
        <title>A Year in Lockdown: How the Waves of COVID-19 Impact Internet Traffic</title>

        <author initials="A." surname="Feldmann">
          <organization/>
        </author>
        <author initials="O." surname="Gasser">
          <organization/>
        </author>
        <author initials="F." surname="Lichtblau">
          <organization/>
        </author>
        <author initials="E." surname="Pujol">
          <organization/>
        </author>
        <author initials="I." surname="Poese">
          <organization/>
        </author>
        <author initials="C." surname="Dietzel">
          <organization/>
        </author>
        <author initials="D." surname="Wagner">
          <organization/>
        </author>
        <author initials="M." surname="Wichtlhuber">
          <organization/>
        </author>
        <author initials="J." surname="Tapiador">
          <organization/>
        </author>
        <author initials="N." surname="Vallina-Rodriguez">
          <organization/>
        </author>
        <author initials="O." surname="Hohlfeld">
          <organization/>
        </author>
        <author initials="G." surname="Smaragdakis">
          <organization/>
        </author>
        <date year="2021"/>
      </front>

      <seriesInfo name="Paper" value="Communications of ACM 64, 7 (2021), 101-108"/>
     </reference>

     <reference anchor="TIES2021">
      <front>
        <title>The Ties that un-Bind: Decoupling IP from web services and sockets for robust addressing agility at CDN-scale</title>

        <author initials="V." surname="Giotsas">
          <organization/>
        </author>
        <author initials="S." surname="Kerola">
          <organization/>
        </author>
        <author initials="M." surname="Majkowski">
          <organization/>
        </author>
        <author initials="P." surname="Odinstov">
          <organization/>
        </author>
        <author initials="J." surname="Sitnicki">
          <organization/>
        </author>
        <author initials="T." surname="Chung">
          <organization/>
        </author>
        <author initials="D." surname="Levin">
          <organization/>
        </author>
        <author initials="A." surname="Mislove">
          <organization/>
        </author>
        <author initials="C. A." surname="Wood">
          <organization/>
        </author>
        <author initials="N." surname="Sullivan">
          <organization/>
        </author>
        <author initials="M." surname="Fayed">
          <organization/>
        </author>
        <author initials="L." surname="Bauer">
          <organization/>
        </author>
        <date year="2021"/>
      </front>

      <seriesInfo name="Paper" value="ACM SIGCOMM"/>
     </reference>

     <reference anchor="EI2021">
      <front>
        <title>Revitalizing the public internet by making it extensible</title>

        <author initials="I." surname="Cidon">
          <organization/>
        </author>
        <author initials="D." surname="Culler">
          <organization/>
        </author>
        <author initials="D." surname="Estrin">
          <organization/>
        </author>
        <author initials="E." surname="Katz-Bassett">
          <organization/>
        </author>
        <author initials="A." surname="Krishnamurthy">
          <organization/>
        </author>
        <author initials="M." surname="McCauley">
          <organization/>
        </author>
        <author initials="N." surname="McKeown">
          <organization/>
        </author>
        <author initials="A." surname="Panda">
          <organization/>
        </author>
        <author initials="S." surname="Ratnasamy">
          <organization/>
        </author>
        <author initials="J." surname="Rexford">
          <organization/>
        </author>
        <author initials="M." surname="Schapira">
          <organization/>
        </author>
        <author initials="S." surname="Shenker">
          <organization/>
        </author>
        <author initials="I." surname="Stoica">
          <organization/>
        </author>
        <author initials="D." surname="Tennenhouse">
          <organization/>
        </author>
        <author initials="A." surname="Vahdat">
          <organization/>
        </author>
        <author initials="E." surname="Zegura">
          <organization/>
        </author>
        <author initials="H." surname="Balakrishnan">
          <organization/>
        </author>
        <author initials="S." surname="Banerjee">
          <organization/>
        </author>
        <date year="2021"/>
      </front>

      <seriesInfo name="Paper" value="ACM Computer Communication Review, Vol. 51. 18-24. Issue 2"/>
     </reference>

     <reference anchor="LDCU2021">
      <front>
        <title>Limited domains considered useful</title>

        <author initials="B." surname="Carpenter">
          <organization/>
        </author>
        <author initials="C." surname="Crowcroft">
          <organization/>
        </author>
        <author initials="D." surname="Trossen">
          <organization/>
        </author>
          <date year="2021"/>
      </front>

      <seriesInfo name="Paper" value="ACM Computer Communication Review, Vol. 51. 22-28. Issue 3"/>
     </reference>

     <reference anchor="SHIM2014">
      <front>
        <title>Putting SHIM6 into practice</title>

        <author initials="H." surname="Naderi">
          <organization/>
        </author>
        <author initials="B." surname="Carpenter">
          <organization/>
        </author>
        <date year="2014"/>
      </front>

      <seriesInfo name="Paper" value="2014 Australasian Telecommunication Networks and Applications Conference (ATNAC)"/>
     </reference>

     <reference anchor="POSTSOCK2017">
      <front>
        <title>Post sockets: Towards an evolvable network transport interface</title>

        <author initials="M." surname="Kuehlewind">
          <organization/>
        </author>
        <author initials="B." surname="Trammell">
          <organization/>
        </author>
        <author initials="C." surname="Perkins">
          <organization/>
        </author>
          <date year="2017"/>
      </front>

      <seriesInfo name="Paper" value="IFIP Networking Conference (IFIP Networking) and Workshops"/>
     </reference>

     <reference anchor="ILNP2021">
      <front>
        <title>End-to-end privacy for identity and location with IP</title>

        <author initials="R." surname="Yanagida ">
          <organization/>
        </author>
        <author initials="S." surname="Bhatti">
          <organization/>
        </author>
        <author initials="G." surname="Haywood">
          <organization/>
        </author>
          <date year="2021"/>
      </front>

      <seriesInfo name="Paper" value="2nd Workshop on New Internetworking Protocols, Architecture and Algorithms, 29th IEEE International Conference on Network Protocols"/>
     </reference>

     <reference anchor="Namespaces2022">
      <front>
        <title>Namespaces, Security, and Network Addresses</title>

        <author initials="A." surname="Reid">
          <organization/>
        </author>
        <author initials="P." surname="Eardley">
          <organization/>
        </author>
        <author initials="D." surname="Kutscher">
          <organization/>
        </author>
        <date year="2022"/>
      </front>

      <seriesInfo name="Paper" value="ACM SIGCOMM workshop on Future of Internet Routing and Addressing (FIRA)"/>
     </reference>

     <reference anchor="SVA">
       <front>
        <title>"Optimizing Video Delivery With The Open Caching Network"</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2018"/>
      </front>

      <seriesInfo name="Technical Report" value="Streaming Video Alliance"/>
     </reference>


     <reference anchor="BBF">
       <front>
        <title>"Control and User Plane Separation for a disaggregated BNG"</title>
        <author initials="" surname="">
          <organization/>
        </author>
        <date year="2020"/>
      </front>

      <seriesInfo name="Technical Report-459" value="Broadband Forum (BBF)"/>
     </reference>

   </references>
  </back>
</rfc>
