{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-17T00:36:09.985Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC7039",
  "document": {
    "abstract": "Source Address Validation Improvement (SAVI) methods were developed to prevent nodes attached to the same IP link from spoofing each other's IP addresses, so as to complement ingress filtering with finer-grained, standardized IP source address validation. This document is a framework document that describes and motivates the design of the SAVI methods. Particular SAVI methods are described in other documents.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "authors": [
      {
        "name": "Jianping Wu"
      },
      {
        "name": "Jun Bi"
      },
      {
        "name": "Marcelo Bagnulo"
      },
      {
        "name": "Fred Baker"
      },
      {
        "name": "Christian Vogt"
      }
    ],
    "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/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "docId": "RFC7039",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "docLabel": "IETF RFC 7039",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "docNumber": "7039",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "docTitle": "Source Address Validation Improvement (SAVI) Framework",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "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/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "doi": "10.17487/RFC7039",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "href": "https://doi.org/10.17487/RFC7039",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "keywords": [
      "Anti-Spoofing",
      "Ingress Filtering"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "Anti-spoofing",
        "BCP38",
        "Ingress Filtering"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-17T00:36:09.985Z",
      "version": "extractDocs.js@commit:e15f05a0bdbb"
    },
    "pages": "14",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "publicationDate": "2013-10-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "references": {
      "bibliographic": [
        "RFC2827",
        "RFC3704",
        "orphan/RFC7039/h:ad6458a6",
        "orphan/RFC7039/h:4dca729b",
        "orphan/RFC7039/h:43161bcc"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=14 proseBlocks=18 skippedAnchorBlocks=16",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
        "updated": "2026-10-16T20:45:35.946Z",
        "version": "extractDocs.js@commit:2c3b1db1b97b"
      },
      "normative": [
        "RFC2131",
        "RFC3315",
        "RFC3971",
        "RFC4862",
        "RFC5026",
        "RFC5739",
        "RFC5996",
        "RFC6620",
        "RFC6959"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
        "updated": "2026-10-16T20:45:35.946Z",
        "version": "extractDocs.js@commit:2c3b1db1b97b"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc7039/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
      "updated": "2026-10-16T20:45:35.946Z",
      "version": "extractDocs.js@commit:2c3b1db1b97b"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
        "updated": "2026-10-16T20:45:35.946Z",
        "version": "extractDocs.js@commit:2c3b1db1b97b"
      },
      "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/rfc7039/",
        "updated": "2026-10-16T20:45:35.946Z",
        "version": "extractDocs.js@commit:2c3b1db1b97b"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
        "updated": "2026-10-16T20:45:35.946Z",
        "version": "extractDocs.js@commit:2c3b1db1b97b"
      },
      "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/rfc7039/",
        "updated": "2026-10-16T20:45:35.946Z",
        "version": "extractDocs.js@commit:2c3b1db1b97b"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7039/",
        "updated": "2026-10-16T20:45:35.946Z",
        "version": "extractDocs.js@commit:2c3b1db1b97b"
      }
    }
  }
}