{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-20T17:30:18.346Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC6886",
  "document": {
    "abstract": "This document describes a protocol for automating the process of creating Network Address Translation (NAT) port mappings. Included in the protocol is a method for retrieving the external IPv4 address of a NAT gateway, thus allowing a client to make its external IPv4 address and port known to peers that may wish to communicate with it. From 2005 onwards, this protocol was implemented in Apple products including Mac OS X, Bonjour for Windows, and AirPort wireless base stations. In 2013, NAT Port Mapping Protocol (NAT-PMP) was superseded by the IETF Standards Track RFC \"Port Control Protocol (PCP)\", which builds on NAT-PMP and uses a compatible packet format, but adds a number of significant enhancements.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "authors": [
      {
        "name": "Stuart Cheshire"
      },
      {
        "name": "Marc Krochmal"
      }
    ],
    "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/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docId": "RFC6886",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docLabel": "IETF RFC 6886",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docNumber": "6886",
    "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/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docTitle": "NAT Port Mapping Protocol (NAT-PMP)",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docType": "Informational",
    "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/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "doi": "10.17487/RFC6886",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "href": "https://doi.org/10.17487/RFC6886",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "pages": "33",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "publicationDate": "2013-04-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "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/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "references": {
      "bibliographic": [
        "RFC2131",
        "RFC2663",
        "RFC3007",
        "RFC3022",
        "RFC3424",
        "RFC4301",
        "RFC6281",
        "RFC6763",
        "RFC6887",
        "orphan/RFC6886/h:3f02f39f",
        "orphan/RFC6886/h:3a133d0e",
        "orphan/RFC6886/h:835a8f22",
        "orphan/RFC6886/h:acb53576",
        "orphan/RFC6886/h:2b50e8e5"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=16 proseBlocks=19 skippedAnchorBlocks=17",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "normative": [
        "RFC1918",
        "RFC2119"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc6886/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
      "updated": "2026-10-20T17:30:18.346Z",
      "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/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "errataExist": true,
      "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/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "errataUrl": [
        "https://www.rfc-editor.org/errata/rfc6886",
        "https://www.rfc-editor.org/errata_search.php?rfc=6886",
        "https://www.rfc-editor.org/rfc/inline-errata/rfc6886.html"
      ],
      "errataUrl$meta": {
        "confidence": "high",
        "note": "Parsed from errata links on RFC/Datatracker pages",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "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/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "statusNote": "Informational",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "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/rfc6886/",
        "updated": "2026-10-20T17:30:18.346Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    }
  }
}