<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY bom    "&#65279;">
  <!ENTITY wd     "&#x2011;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902"
     docName="draft-li-cats-kv-cache-distribution-00"
     category="info" submissionType="IETF" consensus="true" version="3"
     xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="KV Cache Distribution">KV Cache Distribution for Distributed LLM Inference: Use Case and Requirements</title>
    <seriesInfo name="Internet-Draft" value="draft-li-cats-kv-cache-distribution-00"/>

    <author fullname="Zhiqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>
      <address>
        <postal><city>Beijing</city><code>100053</code>
        <country>China</country></postal>
        <email>lizhiqiangyjy@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Zongpeng Du" initials="Z." surname="Du">
      <organization>China Mobile</organization>
      <address>
        <postal><city>Beijing</city><code>100053</code>
        <country>China</country></postal>
        <email>duzongpeng@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Junjie Wang" initials="J." surname="Wang">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>wangjj@centec.com</email>
      </address>
    </author>
    <author fullname="Wei Cheng" initials="W." surname="Cheng">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>chengw@centec.com</email>
      </address>
    </author>
    <author fullname="Guoying Zhang" initials="G." surname="Zhang">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>zhanggy@centec.com</email>
      </address>
    </author>
    <author fullname="Xun Sun" initials="X." surname="Sun">
      <organization>Inesa</organization>
      <address>
        <postal><city>Shanghai</city><code>200030</code>
        <country>China</country></postal>
        <email>sunxun@inesa.com</email>
      </address>
    </author>
    <author fullname="Chunhao Zhao" initials="C." surname="Zhao">
      <organization>SAIA</organization>
      <address>
        <postal><city>Shanghai</city><code>200125</code>
        <country>China</country></postal>
        <email>chunhao.zhao@sh-aia.com</email>
      </address>
    </author>

    <date year="2026" month="July" day="4"/>
    <area>RTG</area>
    <workgroup>CATS</workgroup>
    <keyword>KV cache</keyword>
    <keyword>LLM inference</keyword>
    <keyword>CATS</keyword>
    <keyword>cache distribution</keyword>
    <abstract>
      <t>In large language model (LLM) inference, the key-value (KV) cache holds the attention state computed from previously processed tokens. Reusing cached state across requests avoids repeated prefill computation and reduces time-to-first-token. In distributed inference deployments, the KV cache becomes a network-distributed resource: the effectiveness of steering a request to a service instance depends not only on computing and network metrics but also on whether reusable cached state is available at or near that instance.</t>
      <t>This document describes the KV cache distribution use case for Computing-Aware Traffic Steering (CATS), identifies the gaps relative to the existing CATS framework and metrics, and states requirements for cache-state metric exposure and for the distribution and synchronization of cached content across multiple cache tiers.</t>
    </abstract>
  </front>

  <middle>
<section anchor="introduction" numbered="true" toc="include"><name>Introduction</name>
<t>LLM applications routinely require knowledge beyond what is contained in model parameters: conversation history for personalized assistants, enterprise data for domain-specific agents, retrieved documents for search-augmented responses. Two established approaches address this need, each with trade-offs. In-context approaches (prompt construction and retrieval-augmented generation) supply external knowledge at inference time without modifying the model, but are constrained by the model's context window and incur per-request retrieval and prefill computation. Fine-tuning adapts model parameters to new knowledge, but requires training resources and labeled data, and binds the result to specific tasks.</t>
<t>KV cache reuse occupies a useful middle ground. The key-value (KV) cache holds the attention state computed from previously processed tokens. Reusing cached state across requests avoids repeated prefill computation and reduces time-to-first-token. In distributed inference deployments, the KV cache becomes a network-distributed resource: the effectiveness of steering a request to a service instance depends not only on computing and network metrics but also on whether reusable cached state is available at or near that instance.</t>
<t>This document describes the KV cache distribution use case for Computing-Aware Traffic Steering (CATS), identifies the gaps relative to the existing CATS framework and metrics, and states requirements for cache-state metric exposure and for the distribution and synchronization of cached content across multiple cache tiers.</t>
<section anchor="requirements-language" numbered="true" toc="include"><name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
</section></section>
<section anchor="terminology" numbered="true" toc="include"><name>Terminology</name>
<dl><dt>KV Cache:</dt><dd>Intermediate attention state (keys and values) produced during inference. In disaggregated serving, the KV cache is transferred from prefill servers to decode servers.</dd>
<dt>Prefill:</dt><dd>The inference phase that processes the input prompt and produces the initial KV cache.</dd>
<dt>Decode:</dt><dd>The inference phase that generates output tokens incrementally, consuming and extending the KV cache.</dd>
<dt>Expert Parallelism (EP):</dt><dd>A parallelization strategy for mixture-of-experts models in which experts are distributed across servers, requiring all-to-all token exchange.</dd></dl>
</section>
<section anchor="problem-statement" numbered="true" toc="include"><name>Problem Statement</name>
<t>In distributed LLM inference, the KV cache computed during prefill is a valuable resource that can be reused to avoid recomputation. When a request arrives, steering it to an instance that already holds the relevant KV cache state avoids prefill latency. However, the KV cache is distributed across service instances and cache tiers; a CATS decision that considers only computing load and network metrics cannot account for cache availability.</t>
<t>This creates a gap: the existing CATS metrics do not expose cache state, and the CATS distribution framework does not address how cached content is distributed or synchronized across instances. This document states requirements to close this gap.</t>
</section>
<section anchor="cache-metric-exposure" numbered="true" toc="include"><name>Cache-State Metric Exposure</name>
<t>A service instance SHOULD expose cache-state metrics that allow a CATS decision function to determine whether reusable KV cache state is available. These metrics include: the set of cache keys (e.g., token-prefix identifiers or content hashes) present at the instance; the cache entry sizes; and the expected retrieval cost. The metrics MUST be expressible in the CATS metric framework so that they can be combined with computing and network metrics in steering decisions.</t>
</section>
<section anchor="distribution-synchronization" numbered="true" toc="include"><name>Distribution and Synchronization of Cached Content</name>
<t>For cache reuse to be effective across instances, cached content may need to be distributed or migrated. This document identifies the following requirements: (a) a mechanism to advertise cache availability across instances; (b) a mechanism to transfer KV cache state between instances or cache tiers, respecting latency and bandwidth constraints; (c) consistency handling for cache entries that are updated or evicted. The specific transfer protocol is outside the scope of this document but should build on existing transport building blocks.</t>
</section>
<section anchor="security-considerations" numbered="true" toc="include"><name>Security Considerations</name>
<t>Cache-state metrics and cache content may reveal information about the inputs being processed. Exposure of cache metrics MUST be restricted to authorized CATS components. Transfer of KV cache state between instances SHOULD be protected for integrity and confidentiality.</t>
</section>
<section anchor="iana-considerations" numbered="true" toc="include"><name>IANA Considerations</name>
<t>This document has no IANA actions.</t>
</section>
  </middle>

  <back>
      <references title="Normative References">
    <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner"/>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="BCP" value="14"/>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>
    <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
      <front>
        <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
        <author initials="B." surname="Leiba" fullname="Barry Leiba"/>
        <date year="2017" month="May"/>
      </front>
      <seriesInfo name="BCP" value="14"/>
      <seriesInfo name="RFC" value="8174"/>
      <seriesInfo name="DOI" value="10.17487/RFC8174"/>
    </reference>
      </references>
  </back>
</rfc>
