{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-20T21:17:19.747Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC8309",
  "document": {
    "abstract": "The IETF has produced many modules in the YANG modeling language. The majority of these modules are used to construct data models to model devices or monolithic functions. A small number of YANG modules have been defined to model services (for example, the Layer 3 Virtual Private Network Service Model (L3SM) produced by the L3SM working group and documented in RFC 8049). This document describes service models as used within the IETF and also shows where a service model might fit into a software-defined networking architecture. Note that service models do not make any assumption of how a service is actually engineered and delivered for a customer; details of how network protocols and devices are engineered to deliver a service are captured in other modules that are not exposed through the interface between the customer and the provider.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "authors": [
      {
        "name": "Qin Wu"
      },
      {
        "name": "Will (Shucheng) LIU"
      },
      {
        "name": "Adrian Farrel"
      }
    ],
    "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/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docId": "RFC8309",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docLabel": "IETF RFC 8309",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docNumber": "8309",
    "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/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docTitle": "Service Models Explained",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "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/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "doi": "10.17487/RFC8309",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "href": "https://doi.org/10.17487/RFC8309",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "keywords": [
      "YANG",
      "NETCONF RESTCONF",
      "Data Modeling",
      "SDN",
      "Service Orchestrator"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "YANG",
        "NETCONF RESTCONF",
        "Data Modeling",
        "SDN",
        "Software Defined Network",
        "Service Orchestrator"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T21:17:19.747Z",
      "version": "extractDocs.js@commit:2d729ed26f61"
    },
    "pages": "23",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "publicationDate": "2018-01-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "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/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "references": {
      "bibliographic": [
        "IETF.draft-dhjain-bess-bgp-l3vpn-yang-02",
        "IETF.draft-ietf-bess-evpn-yang-03",
        "IETF.draft-ietf-l2sm-l2vpn-service-model-04",
        "IETF.draft-ietf-bess-l2vpn-yang-07",
        "RFC6020",
        "RFC6241",
        "RFC7149",
        "RFC7223",
        "RFC7297",
        "RFC7407",
        "RFC7426",
        "RFC7491",
        "RFC7950",
        "RFC8040",
        "RFC8049",
        "orphan/RFC8309/h:6e99da79"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=19 proseBlocks=28 skippedAnchorBlocks=20",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
        "updated": "2026-10-20T17:32:50.742Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "normative": [
        "RFC3444",
        "RFC8199"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
        "updated": "2026-10-20T17:32:50.742Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc8309/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc8309/",
      "updated": "2026-10-20T17:32:50.742Z",
      "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/rfc8309/",
        "updated": "2026-10-20T17:32:50.742Z",
        "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/rfc8309/",
        "updated": "2026-10-20T17:32:50.742Z",
        "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/rfc8309/",
        "updated": "2026-10-20T17:32:50.742Z",
        "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/rfc8309/",
        "updated": "2026-10-20T17:32:50.742Z",
        "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/rfc8309/",
        "updated": "2026-10-20T17:32:50.742Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    }
  }
}