{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-21T23:42:07.057Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC8227",
  "document": {
    "abstract": "This document describes requirements, architecture, and solutions for MPLS-TP Shared-Ring Protection (MSRP) in a ring topology for point- to-point (P2P) services. The MSRP mechanism is described to meet the ring protection requirements as described in RFC 5654. This document defines the Ring Protection Switching (RPS) protocol that is used to coordinate the protection behavior of the nodes on an MPLS ring.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "authors": [
      {
        "name": "Weiqiang Cheng"
      },
      {
        "name": "Lei Wang"
      },
      {
        "name": "Han Li"
      },
      {
        "name": "Huub van Helvoort"
      },
      {
        "name": "Jie Dong"
      }
    ],
    "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/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docId": "RFC8227",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docLabel": "IETF RFC 8227",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docNumber": "8227",
    "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/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docTitle": "MPLS-TP Shared-Ring Protection (MSRP) Mechanism for Ring Topology",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "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/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "doi": "10.17487/RFC8227",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "href": "https://doi.org/10.17487/RFC8227",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "keywords": [
      "Ring Protection",
      "Protection Switching"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "Wrapping Protection",
        "Short-wrapping Protection",
        "Steering Protection",
        "Ring Protection",
        "Shared Ring Protection",
        "Protection Switching"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T23:42:07.057Z",
      "version": "extractDocs.js@commit:cc353c041d14"
    },
    "pages": "56",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "publicationDate": "2017-08-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "references": {
      "bibliographic": [
        "RFC5920",
        "RFC6371",
        "RFC6378",
        "RFC6941",
        "RFC6974",
        "RFC8126"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=13 proseBlocks=19 skippedAnchorBlocks=15",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
        "updated": "2026-10-21T16:57:57.990Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "normative": [
        "RFC2119",
        "RFC3031",
        "RFC4385",
        "RFC4446",
        "RFC5586",
        "RFC5654",
        "RFC8174"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
        "updated": "2026-10-21T16:57:57.990Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc8227/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
      "updated": "2026-10-21T16:57:57.990Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
        "updated": "2026-10-21T16:57:57.990Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "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/rfc8227/",
        "updated": "2026-10-21T16:57:57.990Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
        "updated": "2026-10-21T16:57:57.990Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "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/rfc8227/",
        "updated": "2026-10-21T16:57:57.990Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc8227/",
        "updated": "2026-10-21T16:57:57.990Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      }
    }
  }
}