{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-22T15:46:47.847Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC9491",
  "document": {
    "abstract": "This document describes the integration of the Network Service Header (NSH) and Segment Routing (SR), as well as encapsulation details, to efficiently support Service Function Chaining (SFC) while maintaining separation of the service and transport planes as originally intended by the SFC architecture. Combining these technologies allows SR to be used for steering packets between Service Function Forwarders (SFFs) along a given Service Function Path (SFP), whereas the NSH is responsible for maintaining the integrity of the service plane, the SFC instance context, and any associated metadata. This integration demonstrates that the NSH and SR can work cooperatively and provide a network operator with the flexibility to use whichever transport technology makes sense in specific areas of their network infrastructure while still maintaining an end-to-end service plane using the NSH.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "authors": [
      {
        "name": "Jim Guichard"
      },
      {
        "name": "Jeff Tantsura"
      }
    ],
    "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/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "docId": "RFC9491",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "docLabel": "IETF RFC 9491",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "docNumber": "9491",
    "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/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "docTitle": "Integration of the Network Service Header (NSH) and Segment Routing for Service Function Chaining (SFC)",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "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/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "doi": "10.17487/RFC9491",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "href": "https://doi.org/10.17487/RFC9491",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "keywords": [
      "NSH",
      "Segment Routing",
      "SRv6",
      "SFC"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "NSH",
        "Segment Routing",
        "MPLS-SR",
        "SRv6",
        "SFC"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:46:47.847Z",
      "version": "extractDocs.js@commit:29c1c80349b1"
    },
    "pages": "17",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "publicationDate": "2023-11-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "references": {
      "bibliographic": [
        "RFC7498",
        "RFC7665",
        "RFC8596",
        "IETF.draft-ietf-spring-sr-service-programming-08"
      ],
      "bibliographic$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
        "updated": "2026-10-22T15:18:32.619Z",
        "version": "extractDocs.js@commit:7e15e4c54244"
      },
      "normative": [
        "RFC2119",
        "RFC3031",
        "RFC8174",
        "RFC8200",
        "RFC8300",
        "RFC8402",
        "RFC8660",
        "RFC8663",
        "RFC8665",
        "RFC8667",
        "RFC8754"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
        "updated": "2026-10-22T15:18:32.619Z",
        "version": "extractDocs.js@commit:7e15e4c54244"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc9491/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
      "updated": "2026-10-22T15:18:32.619Z",
      "version": "extractDocs.js@commit:7e15e4c54244"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
        "updated": "2026-10-22T15:18:32.619Z",
        "version": "extractDocs.js@commit:7e15e4c54244"
      },
      "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/rfc9491/",
        "updated": "2026-10-22T15:18:32.619Z",
        "version": "extractDocs.js@commit:7e15e4c54244"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
        "updated": "2026-10-22T15:18:32.619Z",
        "version": "extractDocs.js@commit:7e15e4c54244"
      },
      "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/rfc9491/",
        "updated": "2026-10-22T15:18:32.619Z",
        "version": "extractDocs.js@commit:7e15e4c54244"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9491/",
        "updated": "2026-10-22T15:18:32.619Z",
        "version": "extractDocs.js@commit:7e15e4c54244"
      }
    }
  }
}