{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-15T19:19:16.645Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC6391",
  "document": {
    "abstract": "Where the payload of a pseudowire comprises a number of distinct flows, it can be desirable to carry those flows over the Equal Cost Multiple Paths (ECMPs) that exist in the packet switched network. Most forwarding engines are able to generate a hash of the MPLS label stack and use this mechanism to balance MPLS flows over ECMPs. This document describes a method of identifying the flows, or flow groups, within pseudowires such that Label Switching Routers can balance flows at a finer granularity than individual pseudowires. The mechanism uses an additional label in the MPLS label stack. [STANDARDS-TRACK]",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "authors": [
      {
        "name": "Stewart Bryant"
      },
      {
        "name": "Clarence Filsfils"
      },
      {
        "name": "Ulrich Drafz"
      },
      {
        "name": "Vach Kompella"
      },
      {
        "name": "Joe Regan"
      },
      {
        "name": "Shane Amante"
      }
    ],
    "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/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docId": "RFC6391",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docLabel": "IETF RFC 6391",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docNumber": "6391",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "docTitle": "Flow-Aware Transport of Pseudowires over an MPLS Packet Switched Network",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "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/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "doi": "10.17487/RFC6391",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "href": "https://doi.org/10.17487/RFC6391",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "pages": "19",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "publicationDate": "2011-11-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "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/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "version": "extractDocs.js@commit:669b9e3c6fef"
    },
    "references": {
      "bibliographic": [
        "RFC3985",
        "RFC4090",
        "RFC4201",
        "RFC4301",
        "RFC4378",
        "RFC5286",
        "RFC5462",
        "RFC5654",
        "RFC5880",
        "RFC5920",
        "orphan/RFC6391/h:d4c40fc7",
        "orphan/RFC6391/h:65eae5e9"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=21 proseBlocks=27 skippedAnchorBlocks=23",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "normative": [
        "RFC2119",
        "RFC3032",
        "RFC4379",
        "RFC4385",
        "RFC4447",
        "RFC4448",
        "RFC4553",
        "RFC4928",
        "RFC5085"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc6391/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
      "updated": "2026-10-15T19:19:16.645Z",
      "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/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      },
      "amendedBy": [
        "RFC7274"
      ],
      "amendedBy$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "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/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "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/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "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/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "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/rfc6391/",
        "updated": "2026-10-15T19:19:16.645Z",
        "version": "extractDocs.js@commit:669b9e3c6fef"
      }
    }
  }
}