{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-14T15:57:39.977Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC6660",
  "document": {
    "abstract": "The objective of Pre-Congestion Notification (PCN) is to protect the quality of service (QoS) of inelastic flows within a Diffserv domain. The overall rate of PCN-traffic is metered on every link in the PCN- domain, and PCN-packets are appropriately marked when certain configured rates are exceeded. Egress nodes pass information about these PCN-marks to Decision Points that then decide whether to admit or block new flow requests or to terminate some already admitted flows during serious pre-congestion. This document specifies how PCN-marks are to be encoded into the IP header by reusing the Explicit Congestion Notification (ECN) codepoints within a PCN-domain. The PCN wire protocol for non-IP protocol headers will need to be defined elsewhere. Nonetheless, this document clarifies the PCN encoding for MPLS in an informational appendix. The encoding for IP provides for up to three different PCN marking states using a single Diffserv codepoint (DSCP): not-marked (NM), threshold-marked (ThM), and excess-traffic-marked (ETM). Hence, it is called the 3-in-1 PCN encoding. This document obsoletes RFC 5696. [STANDARDS-TRACK]",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "authors": [
      {
        "name": "Bob Briscoe"
      },
      {
        "name": "Toby Moncaster"
      },
      {
        "name": "Michael Menth"
      }
    ],
    "authors$meta": {
      "confidence": "high",
      "note": "Parsed from Datatracker doc page article:author (profile full names)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "docId": "RFC6660",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "docLabel": "IETF RFC 6660",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "docNumber": "6660",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "docTitle": "Encoding Three Pre-Congestion Notification (PCN) States in the IP Header Using a Single Diffserv Codepoint (DSCP)",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "docType": "Standard",
    "docType$meta": {
      "confidence": "high",
      "note": "Mapped from Datatracker std_level or RFC status text",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "doi": "10.17487/RFC6660",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "href": "https://doi.org/10.17487/RFC6660",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "keywords": [
      "Quality Of Service",
      "QoS",
      "Congestion Control",
      "Congestion Notification",
      "Tunnel",
      "DiffServ",
      "Integrated Services",
      "Protocol"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "Quality Of Service",
        "QoS",
        "Congestion Control",
        "Congestion Notification",
        "Tunnel",
        "Encapsulation & Decapsulation",
        "DiffServ",
        "Integrated Services",
        "Protocol",
        "Flow Admission Control",
        "Flow Termination"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-14T15:57:39.977Z",
      "version": "extractDocs.js@commit:ca62cd19765f"
    },
    "pages": "24",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "publicationDate": "2012-07-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "references": {
      "bibliographic": [
        "RFC2597",
        "RFC3031",
        "RFC3246",
        "RFC3540",
        "RFC4594",
        "RFC4774",
        "RFC5127",
        "RFC5129",
        "RFC5462",
        "RFC5696",
        "RFC5865",
        "RFC6627",
        "RFC6661",
        "RFC6662"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=23 proseBlocks=26 skippedAnchorBlocks=23",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      },
      "normative": [
        "RFC2119",
        "RFC2474",
        "RFC3168",
        "RFC5559",
        "RFC5670",
        "RFC6040"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc6660/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
      "updated": "2026-10-13T22:26:10.060Z",
      "version": "extractDocs.js@commit:fd871efde64d"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      },
      "errataExist": false,
      "errataExist$meta": {
        "confidence": "high",
        "note": "Derived from presence of errata links on RFC/Datatracker pages",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      },
      "statusNote": "Proposed Standard",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      },
      "supersedes": [
        "RFC5696"
      ],
      "supersedes$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6660/",
        "updated": "2026-10-13T22:26:10.060Z",
        "version": "extractDocs.js@commit:fd871efde64d"
      }
    }
  }
}