{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-20T21:13:50.763Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC5715",
  "document": {
    "abstract": "A micro-loop is a packet forwarding loop that may occur transiently among two or more routers in a hop-by-hop packet forwarding paradigm. This framework provides a summary of the causes and consequences of micro-loops and enables the reader to form a judgement on whether micro-looping is an issue that needs to be addressed in specific networks. It also provides a survey of the currently proposed mechanisms that may be used to prevent or to suppress the formation of micro-loops when an IP or MPLS network undergoes topology change due to failure, repair, or management action. When sufficiently fast convergence is not available and the topology is susceptible to micro-loops, use of one or more of these mechanisms may be desirable. This document is not an Internet Standards Track specification; it is published for informational purposes.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "authors": [
      {
        "name": "Mike Shand"
      },
      {
        "name": "Stewart Bryant"
      }
    ],
    "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/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docId": "RFC5715",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docLabel": "IETF RFC 5715",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docNumber": "5715",
    "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/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docTitle": "A Framework for Loop-Free Convergence",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "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/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "doi": "10.17487/RFC5715",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "href": "https://doi.org/10.17487/RFC5715",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "keywords": [
      "FRR",
      "Routing Convergence",
      "Network Topology",
      "Packet Marking",
      "FIB"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "IP Fast Reroute",
        "MPLS Fast Reroute",
        "Routing Convergence",
        "Network Topology",
        "PLSN",
        "Not-via",
        "Incremental Cost",
        "Packet Marking",
        "Ordered Fib",
        "Ofib"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T21:13:50.763Z",
      "version": "extractDocs.js@commit:2d729ed26f61"
    },
    "pages": "22",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "publicationDate": "2010-01-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "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/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "references": {
      "bibliographic": [
        "RFC1305",
        "RFC2475",
        "RFC3168",
        "RFC4090",
        "RFC5036",
        "RFC5714",
        "orphan/RFC5715/h:866a7bdc",
        "orphan/RFC5715/h:22672e9c",
        "orphan/RFC5715/h:890dd79d",
        "orphan/RFC5715/h:a21344e8",
        "orphan/RFC5715/h:d7b154f7",
        "orphan/RFC5715/h:ba38f958",
        "orphan/RFC5715/h:573cad06"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=13 proseBlocks=15 skippedAnchorBlocks=14",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
        "updated": "2026-10-20T17:29:05.090Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc5715/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5715/",
      "updated": "2026-10-20T17:29:05.090Z",
      "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/rfc5715/",
        "updated": "2026-10-20T17:29:05.090Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "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/rfc5715/",
        "updated": "2026-10-20T17:29:05.090Z",
        "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/rfc5715/",
        "updated": "2026-10-20T17:29:05.090Z",
        "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/rfc5715/",
        "updated": "2026-10-20T17:29:05.090Z",
        "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/rfc5715/",
        "updated": "2026-10-20T17:29:05.090Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    }
  }
}