{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-16T16:59:32.978Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC5014",
  "document": {
    "abstract": "The IPv6 default address selection document (RFC 3484) describes the rules for selecting source and destination IPv6 addresses, and indicates that applications should be able to reverse the sense of some of the address selection rules through some unspecified API. However, no such socket API exists in the basic (RFC 3493) or advanced (RFC 3542) IPv6 socket API documents. This document fills that gap partially by specifying new socket-level options for source address selection and flags for the getaddrinfo() API to specify address selection based on the source address preference in accordance with the socket-level options that modify the default source address selection algorithm. The socket API described in this document will be particularly useful for IPv6 applications that want to choose between temporary and public addresses, and for Mobile IPv6 aware applications that want to use the care-of address for communication. It also specifies socket options and flags for selecting Cryptographically Generated Address (CGA) or non-CGA source addresses. This memo provides information for the Internet community.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "authors": [
      {
        "name": "Erik Nordmark"
      },
      {
        "name": "Samita Chakrabarti"
      },
      {
        "name": "Julien Laganier"
      }
    ],
    "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/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docId": "RFC5014",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docLabel": "IETF RFC 5014",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docNumber": "5014",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docTitle": "IPv6 Socket API for Source Address Selection",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "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/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "doi": "10.17487/RFC5014",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "href": "https://doi.org/10.17487/RFC5014",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "keywords": [
      "CGA"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "Getaddrinfo()cga",
        "Cryptographically Generated Address"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T16:59:32.978Z",
      "version": "extractDocs.js@commit:30d92d8ed083"
    },
    "pages": "24",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "publicationDate": "2007-09-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "references": {
      "bibliographic": [
        "RFC2460",
        "RFC3041",
        "RFC3542",
        "RFC3775",
        "RFC3971",
        "RFC3972",
        "orphan/RFC5014/h:19e0b290"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=11 proseBlocks=13 skippedAnchorBlocks=11",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
        "updated": "2026-10-16T15:47:38.566Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "normative": [
        "RFC2119",
        "RFC3484",
        "RFC3493"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
        "updated": "2026-10-16T15:47:38.566Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc5014/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
      "updated": "2026-10-16T15:47:38.566Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
        "updated": "2026-10-16T15:47:38.566Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "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/rfc5014/",
        "updated": "2026-10-16T15:47:38.566Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
        "updated": "2026-10-16T15:47:38.566Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "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/rfc5014/",
        "updated": "2026-10-16T15:47:38.566Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5014/",
        "updated": "2026-10-16T15:47:38.566Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      }
    }
  }
}