{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-20T21:16:08.816Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC7648",
  "document": {
    "abstract": "This document specifies a new Port Control Protocol (PCP) functional element: the PCP proxy. The PCP proxy relays PCP requests received from PCP clients to upstream PCP server(s). A typical deployment usage of this function is to help establish successful PCP communications for PCP clients that cannot be configured with the address of a PCP server located more than one hop away.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "authors": [
      {
        "name": "Simon Perreault"
      },
      {
        "name": "Mohamed Boucadair"
      },
      {
        "name": "Reinaldo Penno"
      },
      {
        "name": "Dan Wing"
      },
      {
        "name": "Stuart Cheshire"
      }
    ],
    "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/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docId": "RFC7648",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docLabel": "IETF RFC 7648",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docNumber": "7648",
    "docNumber$meta": {
      "confidence": "high",
      "note": "From the RFC index entry (rfc-index.xml <doc-id>)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docTitle": "Port Control Protocol (PCP) Proxy Function",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "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/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "doi": "10.17487/RFC7648",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "href": "https://doi.org/10.17487/RFC7648",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "keywords": [
      "NAT",
      "Firewalls",
      "CGN",
      "DS-Lite",
      "NAT64",
      "Port Forwarding",
      "Pinholing",
      "Port Mapping",
      "Discover Port Number",
      "Running A Server Behind NAT",
      "NAT Control",
      "NAT Cascading",
      "Address Referral",
      "ALG Offload",
      "PCP"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "NAT",
        "Firewalls",
        "CGN",
        "AFTR",
        "NAT64",
        "Port Forwarding",
        "Pinholing",
        "Port Mapping",
        "External IP Address",
        "Discover Port Number",
        "Running A Server Behind NAT",
        "NAT Control",
        "NAT Cascading",
        "DS-Lite",
        "Incoming Connection",
        "Control Outbound Connection",
        "Referral",
        "Address Referral",
        "ALG Offload",
        "PCP Client",
        "PCP Server"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T21:16:08.816Z",
      "version": "extractDocs.js@commit:2d729ed26f61"
    },
    "pages": "14",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "publicationDate": "2015-09-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "references": {
      "bibliographic": [
        "IETF.draft-ietf-pcp-anycast-07",
        "IETF.draft-boucadair-pcp-deployment-cases-03",
        "IETF.draft-penno-pcp-zones-01",
        "RFC1918",
        "RFC6598",
        "RFC7291",
        "RFC7488"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=9 proseBlocks=15 skippedAnchorBlocks=10",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
        "updated": "2026-10-20T17:31:24.693Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "normative": [
        "RFC2119",
        "RFC6887"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
        "updated": "2026-10-20T17:31:24.693Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc7648/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
      "updated": "2026-10-20T17:31:24.693Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
        "updated": "2026-10-20T17:31:24.693Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "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/rfc7648/",
        "updated": "2026-10-20T17:31:24.693Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
        "updated": "2026-10-20T17:31:24.693Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "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/rfc7648/",
        "updated": "2026-10-20T17:31:24.693Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7648/",
        "updated": "2026-10-20T17:31:24.693Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    }
  }
}