{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-21T16:58:35.718Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC9917",
  "document": {
    "abstract": "An IGP Flexible Algorithm (Flex-Algorithm) enables the computation of constraint-based paths within an IGP domain, allowing operators to influence path selection according to administrative policies. This document defines an extension to Flex-Algorithm that allows the inclusion or exclusion of links from path computation based on Administrative Groups (also known as link affinities) associated with the reverse direction of the path under computation. This document updates RFCs 9350 and 9843 by introducing the new IANA registry that specifies the ordered set of rules that are used to prune links from the topology during the Flex-Algorithm path computation.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "authors": [
      {
        "name": "Peter Psenak"
      },
      {
        "name": "Jakub Horn"
      },
      {
        "name": "Amit Dhamija"
      }
    ],
    "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/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docId": "RFC9917",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docLabel": "IETF RFC 9917",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docNumber": "9917",
    "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/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docTitle": "IGP Flexible Algorithms Reverse Affinity Constraint",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "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/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "doi": "10.17487/RFC9917",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "href": "https://doi.org/10.17487/RFC9917",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "pages": "12",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "publicationDate": "2026-01-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "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/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "references": {
      "bibliographic": [
        "RFC8126"
      ],
      "bibliographic$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "normative": [
        "RFC2119",
        "RFC7308",
        "RFC8174",
        "RFC9350",
        "RFC9843"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc9917/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
      "updated": "2026-10-21T16:58:35.718Z",
      "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/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "amends": [
        "RFC9350",
        "RFC9843"
      ],
      "amends$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "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/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "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/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "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/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "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/rfc9917/",
        "updated": "2026-10-21T16:58:35.718Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      }
    }
  }
}