{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-13T18:21:12.559Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC4031",
  "document": {
    "abstract": "This document provides requirements for Layer 3 Virtual Private Networks (L3VPNs). It identifies requirements applicable to a number of individual approaches that a Service Provider may use to provision a Virtual Private Network (VPN) service. This document expresses a service provider perspective, based upon past experience with IP-based service offerings and the ever-evolving needs of the customers of such services. Toward this end, it first defines terminology and states general requirements. Detailed requirements are expressed from a customer perspective as well as that of a service provider. This memo provides information for the Internet community.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "authors": [
      {
        "name": "Marco Carugi"
      },
      {
        "name": "Dave McDysan"
      }
    ],
    "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/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docId": "RFC4031",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docLabel": "IETF RFC 4031",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docNumber": "4031",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docTitle": "Service Requirements for Layer 3 Provider Provisioned Virtual Private Networks (PPVPNs)",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "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/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "doi": "10.17487/RFC4031",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "href": "https://doi.org/10.17487/RFC4031",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "keywords": [
      "L3VPN",
      "Service Provider",
      "VPN"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "pages": "50",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "publicationDate": "2005-04-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "references": {
      "bibliographic": [
        "RFC2385",
        "RFC2764",
        "RFC2975",
        "RFC2983",
        "RFC3031",
        "RFC3198",
        "T-REC-Y.1311.2001",
        "T-REC-Y.1311.2002",
        "orphan/RFC4031/h:5fdf855e",
        "orphan/RFC4031/h:5b4d1b80",
        "orphan/RFC4031/h:ece79f6b",
        "orphan/RFC4031/h:4f23ba09",
        "orphan/RFC4031/h:fb9b7c9b",
        "orphan/RFC4031/h:9a059659",
        "orphan/RFC4031/h:d542834f",
        "orphan/RFC4031/h:ef98fa55",
        "orphan/RFC4031/h:f47208f5",
        "orphan/RFC4031/h:f66f1d39",
        "orphan/RFC4031/h:4b9fdd3c",
        "orphan/RFC4031/h:49c66223",
        "orphan/RFC4031/h:7d7fbd8b",
        "orphan/RFC4031/h:76669a28",
        "orphan/RFC4031/h:48c1acc7",
        "orphan/RFC4031/h:b177456f",
        "orphan/RFC4031/h:7c7d155e",
        "orphan/RFC4031/h:8d29d299",
        "orphan/RFC4031/h:8dc3e874",
        "orphan/RFC4031/h:f2be750e"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=43 proseBlocks=52 skippedAnchorBlocks=46",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
        "updated": "2026-10-13T18:21:12.559Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "normative": [
        "RFC3377",
        "RFC1918",
        "RFC2119",
        "RFC2205",
        "RFC2211",
        "RFC2212",
        "RFC2251",
        "RFC2475",
        "RFC2597",
        "RFC2661",
        "RFC2685",
        "RFC3246",
        "RFC3270",
        "RFC3809"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
        "updated": "2026-10-13T18:21:12.559Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc4031/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
      "updated": "2026-10-13T18:21:12.559Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
        "updated": "2026-10-13T18:21:12.559Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "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/rfc4031/",
        "updated": "2026-10-13T18:21:12.559Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
        "updated": "2026-10-13T18:21:12.559Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "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/rfc4031/",
        "updated": "2026-10-13T18:21:12.559Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4031/",
        "updated": "2026-10-13T18:21:12.559Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      }
    }
  }
}