{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-15T19:19:23.310Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC6754",
  "document": {
    "abstract": "A Protocol Independent Multicast (PIM) router uses the Reverse Path Forwarding (RPF) procedure to select an upstream interface and router in order to build forwarding state. When there are equal cost multipaths (ECMPs), existing implementations often use hash algorithms to select a path. Such algorithms do not allow the spread of traffic among the ECMPs according to administrative metrics. This usually leads to inefficient or ineffective use of network resources. This document introduces the ECMP Redirect, a mechanism to improve the RPF procedure over ECMPs. It allows ECMP selection to be based on administratively selected metrics, such as data transmission delays, path preferences, and routing metrics. [STANDARDS-TRACK]",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "authors": [
      {
        "name": "Yiqun Cai"
      },
      {
        "name": "Liming Wei"
      },
      {
        "name": "Heidi Ou"
      },
      {
        "name": "Vishal Arya"
      },
      {
        "name": "Sunil Jethwani"
      }
    ],
    "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/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docId": "RFC6754",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docLabel": "IETF RFC 6754",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docNumber": "6754",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docTitle": "Protocol Independent Multicast Equal-Cost Multipath (ECMP) Redirect",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "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/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "doi": "10.17487/RFC6754",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "href": "https://doi.org/10.17487/RFC6754",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "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/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "publicationDate": "2012-10-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "references": {
      "bibliographic": [
        "RFC3973",
        "RFC5015",
        "RFC5905",
        "RFC6166",
        "RFC6395"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=7 proseBlocks=10 skippedAnchorBlocks=8",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "normative": [
        "RFC2119",
        "RFC4601"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc6754/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
      "updated": "2026-10-15T19:19:23.310Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "amendedBy": [
        "RFC8736",
        "RFC9436"
      ],
      "amendedBy$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "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/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "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/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6754/",
        "updated": "2026-10-15T19:19:23.310Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      }
    }
  }
}