| < draft-palmero-opsawg-dmlmo-03.txt | draft-palmero-opsawg-dmlmo-04.txt > | |||
|---|---|---|---|---|
| OPSA Working Group M. Palmero | OPSA Working Group M. Palmero | |||
| Internet-Draft F. Brockners | Internet-Draft F. Brockners | |||
| Intended status: Standards Track Cisco Systems | Intended status: Standards Track Cisco Systems | |||
| Expires: 8 September 2022 S. Kumar | Expires: 23 September 2022 S. Kumar | |||
| NC State University | NC State University | |||
| S. Bhandari | S. Bhandari | |||
| Thoughtspot | Thoughtspot | |||
| C. Cardona | C. Cardona | |||
| NTT | NTT | |||
| D. Lopez | D. Lopez | |||
| Telefonica I+D | Telefonica I+D | |||
| 7 March 2022 | 22 March 2022 | |||
| Data Model for Lifecycle Management and Operations | Data Model for Lifecycle Management and Operations | |||
| draft-palmero-opsawg-dmlmo-03 | draft-palmero-opsawg-dmlmo-04 | |||
| Abstract | Abstract | |||
| This document motivates and specifies a data model for lifecycle | This document motivates and specifies a data model for lifecycle | |||
| management and operations. It describes the motivation and | management and operations. It describes the motivation and | |||
| requirements to collect asset-centric metrics including but not | requirements to collect asset-centric metrics including but not | |||
| limited to asset adoption and usability, licensing, supported | limited to asset adoption and usability, licensing, supported | |||
| features and capabilities, enabled features and capabilities, etc.; | features and capabilities, enabled features and capabilities, etc.; | |||
| with the primary objective to measure and improve the overall user | with the primary objective to measure and improve the overall user | |||
| experience along the lifecycle journey, from technical requirements | experience along the lifecycle journey, from technical requirements | |||
| skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 46 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 8 September 2022. | This Internet-Draft will expire on 23 September 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 42 ¶ | skipping to change at page 2, line 42 ¶ | |||
| 4.7. Optimal Software Version (OSV) . . . . . . . . . . . . . 9 | 4.7. Optimal Software Version (OSV) . . . . . . . . . . . . . 9 | |||
| 4.7.1. Software Conformance . . . . . . . . . . . . . . . . 9 | 4.7.1. Software Conformance . . . . . . . . . . . . . . . . 9 | |||
| 4.7.2. Risk Trend Analysis . . . . . . . . . . . . . . . . . 10 | 4.7.2. Risk Trend Analysis . . . . . . . . . . . . . . . . . 10 | |||
| 4.7.3. What-if Analysis . . . . . . . . . . . . . . . . . . 10 | 4.7.3. What-if Analysis . . . . . . . . . . . . . . . . . . 10 | |||
| 4.8. Asset Retirement - End of Life (EOL) . . . . . . . . . . 11 | 4.8. Asset Retirement - End of Life (EOL) . . . . . . . . . . 11 | |||
| 5. Information Model . . . . . . . . . . . . . . . . . . . . . . 11 | 5. Information Model . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6. Data Models . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 6. Data Models . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 6.1. Tree Diagrams of the modules that form LMO . . . . . . . 12 | 6.1. Tree Diagrams of the modules that form LMO . . . . . . . 12 | |||
| 6.1.1. Aggregated Asset Inventory . . . . . . . . . . . . . 12 | 6.1.1. Aggregated Asset Inventory . . . . . . . . . . . . . 12 | |||
| 6.1.2. Licenses . . . . . . . . . . . . . . . . . . . . . . 13 | 6.1.2. Licenses . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6.1.3. Usage . . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.1.3. Usage . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 6.1.4. Usage . . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.1.4. Usage . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.1.5. Incident Management . . . . . . . . . . . . . . . . . 13 | 6.1.5. Incident Management . . . . . . . . . . . . . . . . . 16 | |||
| 6.1.6. Organization . . . . . . . . . . . . . . . . . . . . 13 | 6.1.6. Organization . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6.1.7. Service . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.1.7. User . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6.1.8. User . . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.2. LMO Modules . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6.2. LMO Modules . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.2.1. LMO Common Module . . . . . . . . . . . . . . . . . . 18 | |||
| 6.2.1. LMO Module . . . . . . . . . . . . . . . . . . . . . 13 | 7. Deployment Considerations . . . . . . . . . . . . . . . . . . 29 | |||
| 7. Deployment Considerations . . . . . . . . . . . . . . . . . . 15 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 29 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 9.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 30 | |||
| 9.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 16 | 9.2. The YANG Module Names Registry . . . . . . . . . . . . . 31 | |||
| 9.2. The YANG Module Names Registry . . . . . . . . . . . . . 17 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 32 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 18 | 10.2. Informative References . . . . . . . . . . . . . . . . . 32 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 19 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Change log . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| Change log . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
| 1. Introduction | 1. Introduction | |||
| The virtualization of hardware assets and the development of | The virtualization of hardware assets and the development of | |||
| applications using microservice architecture for cloud-native | applications using microservice architecture for cloud-native | |||
| infrastructure created new consumption and licensing models. Any | infrastructure created new consumption and licensing models. Any | |||
| service can be deployed by composing multiple assets together where | service can be deployed by composing multiple assets together where | |||
| an asset refers to hardware, software, application, system or | an asset refers to hardware, software, application, system or | |||
| service. For example, cloud-native infrastructure from one vendor | service. For example, cloud-native infrastructure from one vendor | |||
| may be hosted on the physical server from another vendor or a | may be hosted on the physical server from another vendor or a | |||
| skipping to change at page 13, line 4 ¶ | skipping to change at page 13, line 4 ¶ | |||
| datasets: incident, feature usage or licenses. | datasets: incident, feature usage or licenses. | |||
| 6. Data Models | 6. Data Models | |||
| 6.1. Tree Diagrams of the modules that form LMO | 6.1. Tree Diagrams of the modules that form LMO | |||
| 6.1.1. Aggregated Asset Inventory | 6.1.1. Aggregated Asset Inventory | |||
| This specification uses [I-D.draft-ietf-netmod-geo-location-11], | This specification uses [I-D.draft-ietf-netmod-geo-location-11], | |||
| [I-D.draft-ietf-opsawg-sbom-access-03] | [I-D.draft-ietf-opsawg-sbom-access-03] | |||
| module: ietf-lmo-assets-inventory | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw vendor? ietf-lmo-common:vendor-id | ||||
| +--rw name? string | ||||
| +--rw description? string | ||||
| +--rw pid? string | ||||
| +--rw serial-number? string | ||||
| +--rw vid? string | ||||
| +--rw mac-address? yang:mac-address | ||||
| +--rw ip-address* inet:ip-address | ||||
| +--rw entity-name? string | ||||
| +--rw product-description? string | ||||
| +--rw udi? string | ||||
| +--rw transparency-info? inet:uri | ||||
| +--rw role? identityref | ||||
| +--rw aggregation? boolean | ||||
| +--rw number-of-instances? uint32 | ||||
| +--rw platform-dependency-os? identityref | ||||
| +--rw install-location | ||||
| +--rw deployment-mode? identityref | ||||
| +--rw activation-date? yang:date-and-time | ||||
| +--rw software-version? string | ||||
| +--ro hotfixes | ||||
| | +--ro hostfix* [] | ||||
| | +--ro version? identityref | ||||
| | +--ro order? uint8 | ||||
| +--rw software-type? string | ||||
| +--rw sign-of-life-timestamp? yang:date-and-time | ||||
| +--rw tags? string | ||||
| 6.1.2. Licenses | 6.1.2. Licenses | |||
| module: ietf-lmo-licenses | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw virtual-account? string | ||||
| +--rw model? ietf-lmo-common:license-model-t | ||||
| +--rw buying-program? identityref | ||||
| +--rw offer-type? identityref | ||||
| +--rw external-store? boolean | ||||
| +--rw pid? string | ||||
| +--rw purchase-order-id? ietf-lmo-common:purchase-order-t | ||||
| +--rw account-id? string | ||||
| +--rw assets | ||||
| | +--rw asset* [lmo-class id] | ||||
| | +--rw lmo-class -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| | +--rw id -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| +--rw features | ||||
| | +--rw feature* [lmo-class id] | ||||
| | +--rw lmo-class -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| | +--rw id -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| +--rw state? ietf-lmo-common:license-state-t | ||||
| +--rw renewal-profile | ||||
| +--rw purchase-date? yang:date-and-time | ||||
| +--rw claim-date? yang:date-and-time | ||||
| +--rw activation-date? yang:date-and-time | ||||
| +--rw expiration-date? yang:date-and-time | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw licenses | ||||
| +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| 6.1.3. Usage | 6.1.3. Usage | |||
| module: ietf-lmo-feature | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw features | ||||
| +--rw feature* [lmo-class id] | ||||
| +--rw lmo-class -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| +--rw id -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw name? string | ||||
| +--rw summary? string | ||||
| +--rw category? string | ||||
| +--rw entitlement? string | ||||
| +--rw first-available-version? string | ||||
| +--ro backported-versions | ||||
| | +--ro backported-version* [] | ||||
| | +--ro version? identityref | ||||
| +--rw scope? identityref | ||||
| +--rw config-options* [id] | ||||
| | +--rw id string | ||||
| | +--rw name? string | ||||
| | +--rw summary? string | ||||
| | +--rw characteristic* [id] | ||||
| | +--rw id string | ||||
| | +--rw name? string | ||||
| | +--rw value? string | ||||
| +--rw asset | ||||
| | +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| | +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| +--rw subfeatures | ||||
| +--rw subfeature* [lmo-class id] | ||||
| +--rw lmo-class -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| +--rw id -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| 6.1.4. Usage | 6.1.4. Usage | |||
| module: ietf-lmo-usage | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw feature | ||||
| | +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| | +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| +--rw name? string | ||||
| +--rw summary? string | ||||
| +--rw uri? string | ||||
| +--rw deployment-mode? identityref | ||||
| +--rw scope? identityref | ||||
| +--rw activation-status? string | ||||
| +--rw instances? uint32 | ||||
| +--rw count-type? identityref | ||||
| +--rw timestamp? yang:date-and-time | ||||
| +--rw count? uint32 | ||||
| +--rw frequency* [name] | ||||
| | +--rw name string | ||||
| | +--rw type-freq? string | ||||
| | +--rw value? yang:counter64 | ||||
| +--rw resource-consumption* [id] | ||||
| +--rw id string | ||||
| +--rw name? string | ||||
| +--rw summary? string | ||||
| +--rw characteristic* [id] | ||||
| +--rw id string | ||||
| +--rw name? string | ||||
| +--rw unit? string | ||||
| +--rw value? yang:counter64 | ||||
| +--rw value-max? yang:counter64 | ||||
| 6.1.5. Incident Management | 6.1.5. Incident Management | |||
| module: ietf-lmo-incident-management | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw id? string | ||||
| +--rw title? string | ||||
| +--rw summary? string | ||||
| +--rw severity? string | ||||
| +--rw status? string | ||||
| +--rw created? yang:date-and-time | ||||
| +--rw last_updated? yang:date-and-time | ||||
| +--rw capability? string | ||||
| +--rw technology? string | ||||
| +--rw subtechnology? string | ||||
| +--rw problem-type? string | ||||
| +--rw resolution? string | ||||
| +--rw owner? string | ||||
| +--rw support-engineer? string | ||||
| +--rw asset | ||||
| | +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| | +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| +--rw feature | ||||
| | +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| | +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| +--rw contract-number? string | ||||
| 6.1.6. Organization | 6.1.6. Organization | |||
| 6.1.7. Service | module: ietf-lmo-organization | |||
| 6.1.8. User | augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | |||
| +--rw address? string | ||||
| +--rw department? boolean | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw organization | ||||
| +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| 6.1.7. User | ||||
| module: ietf-lmo-user | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw billing-account? uint32 | ||||
| +--rw represents | ||||
| | +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| | +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| +--rw authority? enumeration | ||||
| +--rw email? string | ||||
| augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst: | ||||
| +--rw user | ||||
| +--rw lmo-class? -> /ietf-lmo:lmos/lmo/lmo-class | ||||
| +--rw id? -> deref(../lmo-class)/../ietf-lmo:inst/id | ||||
| 6.2. LMO Modules | 6.2. LMO Modules | |||
| 6.2.1. LMO Module | 6.2.1. LMO Common Module | |||
| <CODE BEGINS> file "ietf-lmo@2022-03-01.yang" | <CODE BEGINS> file "ietf-lmo-common@2022-02-28.yang" | |||
| module ietf-lmo { | module ietf-lmo-common { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-lmo"; | namespace "urn:ietf:params:xml:ns:yang:ietf-lmo-common"; | |||
| prefix ietf-lmo; | prefix ietf-lmo-common; | |||
| import ietf-lmo-common { | ||||
| prefix ietf-lmo-common; | ||||
| } | ||||
| import ietf-yang-types { | ||||
| prefix yang; | ||||
| } | ||||
| organization | organization | |||
| "IETF OPSA (Operations and Management Area) Working Group"; | "IETF OPSA (Operations and Management Area) Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/opsawg/> | "WG Web: <https://datatracker.ietf.org/wg/opsawg/> | |||
| WG List: <mailto:opsawg@ietf.org> | WG List: <mailto:opsawg@ietf.org> | |||
| Editor: Jan Lindblad | ||||
| <mailto:jlindbla@cisco.com> | ||||
| Editor: Marisol Palmero | Editor: Marisol Palmero | |||
| <mailto:mpalmero@cisco.com>"; | <mailto:mpalmero@cisco.com> | |||
| Editor: Josh Suhr | ||||
| <mailto:josuhr@cisco.com> | ||||
| Editor: Sudhendu Kumar | ||||
| <mailto:skumar23@ncsu.edu>"; | ||||
| description | description | |||
| "This YANG module add the flexibility to define its own | "This YANG module defines a collection of useful data types | |||
| and extensible set of lmo classes. | and identity for Lifecycle Management and Operations (LMO). | |||
| Copyright (c) 2021 IETF Trust and the persons identified as | Copyright (c) 2021 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
| the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
| forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC XXXX | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | |||
| for full legal notices."; | for full legal notices."; | |||
| revision 2022-03-01 { | ||||
| revision 2022-02-28 { | ||||
| description | description | |||
| "Initial revision for LMO Module as part of the | "Introduced flexible root structure"; | |||
| LMO YANG Model"; | reference | |||
| "RFC XXXX: LMO YANG Model"; | ||||
| } | ||||
| revision 2021-08-23 { | ||||
| description | ||||
| "Initial revision for Common Module as part of the LMO | ||||
| YANG Model"; | ||||
| reference | reference | |||
| "RFC XXXX: LMO YANG Model"; | "RFC XXXX: LMO YANG Model"; | |||
| } | } | |||
| container lmos { | typedef license-id-t { | |||
| //config false; //temporarily commented out for easy testing | type string; | |||
| list lmo { | description | |||
| key lmo-class; | "License ID Type"; | |||
| leaf lmo-class { | } | |||
| type identityref { | typedef license-model-t { | |||
| base ietf-lmo-common:lmo-class; | type enumeration { | |||
| } | enum perpetual { | |||
| description | ||||
| "Perpetual license"; | ||||
| } | ||||
| enum subscription { | ||||
| description | ||||
| "Subscription license"; | ||||
| } | ||||
| enum usage-based { | ||||
| description | ||||
| "Usage-based license"; | ||||
| } | ||||
| enum other { | ||||
| description | ||||
| "Undefined license type"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "License Model Type"; | ||||
| } | ||||
| identity license-buying-program-t { | ||||
| description | ||||
| "License Buying Program that contains the plan to generate | ||||
| revenue for specific asset"; | ||||
| } | ||||
| identity enterprise-agreement { | ||||
| base license-buying-program-t; | ||||
| description | ||||
| "Enterprise Agreement"; | ||||
| } | ||||
| identity managed-service-license-agreement { | ||||
| base license-buying-program-t; | ||||
| description | ||||
| "Managed Service License Agreement"; | ||||
| } | ||||
| identity service-provider-network-agreement { | ||||
| base license-buying-program-t; | ||||
| description | ||||
| "Service Provider Network Agreement"; | ||||
| } | ||||
| identity collab-active-user { | ||||
| base license-buying-program-t; | ||||
| description | ||||
| "Collaboration Active User"; | ||||
| } | ||||
| identity service-full-coverage { | ||||
| base license-buying-program-t; | ||||
| description | ||||
| "Service Full-Coverage"; | ||||
| } | ||||
| identity offer-type-t { | ||||
| description | ||||
| "License Offer Type, part of the plan to generate revenue | ||||
| for specific asset"; | ||||
| } | ||||
| identity perpetual-software { | ||||
| base offer-type-t; | ||||
| description | ||||
| "Perpetual softwar gives the user the right to use the | ||||
| program indefinitely"; | ||||
| } | ||||
| identity standalone-hardware { | ||||
| base offer-type-t; | ||||
| description | ||||
| "Standalone hardware is able to function independently | ||||
| of other hardware"; | ||||
| } | ||||
| identity on-premise-software-subscription { | ||||
| base offer-type-t; | ||||
| description | ||||
| "On-Premise software subscription, relates to a temporary | ||||
| on-prem licencing model, allowing users to pay a per user | ||||
| fee"; | ||||
| } | ||||
| identity cloud-software-saas-subscription { | ||||
| base offer-type-t; | ||||
| description | ||||
| "Cloud Software (SaaS) subscription is a service busines | ||||
| model where the user is entitled to use the cloud software | ||||
| for a specific time period"; | ||||
| } | ||||
| identity third-party-software { | ||||
| base offer-type-t; | ||||
| description | ||||
| "It includes licenses, agreements, obligations or other | ||||
| commitment under which the user can use the asset not | ||||
| directly sold by the manufacturer"; | ||||
| } | ||||
| identity flex-cloud-prem-subscription { | ||||
| base offer-type-t; | ||||
| description | ||||
| "Flex Cloud-Prem subscription allows software vendros to | ||||
| limit the number of licenses for the use of the specific | ||||
| asset"; | ||||
| } | ||||
| typedef license-key-t { | ||||
| type string; | ||||
| description | ||||
| "License Key Type"; | ||||
| } | ||||
| typedef purchase-order-t { | ||||
| type string; | ||||
| description | ||||
| "License purchase order number"; | ||||
| } | ||||
| typedef license-state-t { | ||||
| type enumeration { | ||||
| enum inactive { | ||||
| description | ||||
| "Inactive State"; | ||||
| } | ||||
| enum active { | ||||
| description | ||||
| "Active State"; | ||||
| } | ||||
| enum unknown { | ||||
| description | ||||
| "Unknown State"; | ||||
| } | } | |||
| list inst { | ||||
| key id; | ||||
| leaf id { | ||||
| type string; | ||||
| } | ||||
| container parent { | ||||
| leaf lmo-class { | ||||
| type leafref { | ||||
| path /lmos/lmo/lmo-class; | ||||
| } | ||||
| } | ||||
| leaf id { | ||||
| type leafref { | ||||
| path deref(../lmo-class)/../inst/id; | ||||
| } | ||||
| } | ||||
| } | ||||
| container capture-info { | ||||
| // Moved capture-info to the instance level, as | ||||
| // asset/... data will generally be collected | ||||
| // from one source at one time. | ||||
| description | ||||
| "Capture information for this data"; | ||||
| leaf collected-on { | } | |||
| type yang:date-and-time; | description | |||
| description | "License State Type"; | |||
| "Time at which this data was collected"; | } | |||
| } | ||||
| leaf collected-from { | typedef asset-id { | |||
| type string; | type string; | |||
| description | description | |||
| "Identifier for original source of this data"; | "Asset ID Type"; | |||
| } | } | |||
| } | ||||
| typedef vendor-id { | ||||
| type enumeration { | ||||
| enum cisco { | ||||
| description | ||||
| "Vendor-id is Cisco"; | ||||
| } | ||||
| enum other { | ||||
| description | ||||
| "Vendor-id is not determined"; | ||||
| } | } | |||
| } | } | |||
| description | ||||
| "Vendor identifier"; | ||||
| } | ||||
| identity asset-type { | ||||
| description | ||||
| "type of the asset: hardware, software, software cloud, ..."; | ||||
| } | ||||
| identity hw { | ||||
| base asset-type; | ||||
| description | ||||
| "Hardware refers to any physical device"; | ||||
| } | ||||
| identity sw { | ||||
| base asset-type; | ||||
| description | ||||
| "Software refers to a collection of code installed on a | ||||
| hardware asset"; | ||||
| } | ||||
| identity sw-cloud { | ||||
| base asset-type; | ||||
| description | ||||
| "Cloud-based software, that allows users access to software | ||||
| application that run on a shared computing resources via | ||||
| Internet"; | ||||
| } | } | |||
| identity phone { | ||||
| base asset-type; | ||||
| description | ||||
| "Mobile telephone or a handheld two-way communication device | ||||
| over a cellular network."; | ||||
| } | ||||
| identity other { | ||||
| base asset-type; | ||||
| description | ||||
| "Different or additional type not specified as part of another | ||||
| defined asset-type."; | ||||
| } | ||||
| identity asset-subtype { | ||||
| description | ||||
| "subtype of the asset: router, switch, wireless, | ||||
| controller, ..."; | ||||
| } | ||||
| identity router { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Network connecting device. It operates at layer-3 of the OSI | ||||
| model."; | ||||
| } | ||||
| identity switch { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Network connecting device. It operates at layer-2(Data Link | ||||
| Layer) of the OSI model."; | ||||
| } | ||||
| identity wireless { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Network connecting device. It creates a wireless local area | ||||
| network. It connects to a wired router, switch, or hub via an | ||||
| Ethernet cable, and projects a Wi-Fi signal to a designated | ||||
| area"; | ||||
| } | ||||
| identity controller { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Centralized device in the network which is used in combination | ||||
| with network connection devices, when there is a need to manage | ||||
| them in large quantities."; | ||||
| } | ||||
| identity board { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Electronic circuit board in an asset which interconnects | ||||
| another hardware assets attached to it."; | ||||
| } | ||||
| identity p-supply { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Power supply, as it might have independent identity."; | ||||
| } | ||||
| identity transceiver { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Device that is both a transmitter and a receiver. Usually | ||||
| it's in a single device. | ||||
| This is commonly used as a modular network interface"; | ||||
| } | ||||
| identity others { | ||||
| base asset-subtype; | ||||
| description | ||||
| "Different or additional type not specified as part of another | ||||
| defined asset-subtype."; | ||||
| } | ||||
| identity version { | ||||
| description | ||||
| "Base identity for all version types"; | ||||
| } | ||||
| identity version-sw { | ||||
| base version; | ||||
| description | ||||
| "Version release of the operating system that runs on the | ||||
| asset"; | ||||
| } | ||||
| identity platform-dependency-os { | ||||
| description | ||||
| "Operating system that creates an environment for the asset | ||||
| to get deployed. Enum of options covering OS platform | ||||
| dependency."; | ||||
| } | ||||
| identity linux { | ||||
| base platform-dependency-os; | ||||
| description | ||||
| "UNIX like operating system"; | ||||
| } | ||||
| identity windows { | ||||
| base platform-dependency-os; | ||||
| description | ||||
| "Windows operating system"; | ||||
| } | ||||
| identity macOS { | ||||
| base platform-dependency-os; | ||||
| description | ||||
| "Mac operating system develop by Apple, Inc."; | ||||
| } | ||||
| identity darwin { | ||||
| base platform-dependency-os; | ||||
| description | ||||
| "Open-source Unix-like operating system first released by Apple | ||||
| Inc."; | ||||
| } | ||||
| identity ubuntu { | ||||
| base platform-dependency-os; | ||||
| description | ||||
| "Linux distribution, used in desktop distribution"; | ||||
| } | ||||
| identity red-hat { | ||||
| base platform-dependency-os; | ||||
| description | ||||
| "Red Hat Enterprise Linux, released in multiple server and | ||||
| desktop versions"; | ||||
| } | ||||
| // NEED to extend and include iOS, Android, etc.; | ||||
| identity role { | ||||
| description | ||||
| "What the role of a given device/component is in the network. | ||||
| This attribute normally will be configured on the specific | ||||
| component during setup. This attribute normally will be | ||||
| configured on the specific component during setup"; | ||||
| } | ||||
| identity border-router { | ||||
| base role; | ||||
| description | ||||
| "Router that provides connectivity between interior and | ||||
| exterior network routers or to the cloud"; | ||||
| } | ||||
| identity access { | ||||
| base role; | ||||
| description | ||||
| "Router that provides access to a larger communication network | ||||
| of some sort."; | ||||
| } | ||||
| identity control-plane { | ||||
| base role; | ||||
| description | ||||
| "Network component that controls how data packets are | ||||
| forwarded"; | ||||
| } | ||||
| identity edge { | ||||
| base role; | ||||
| description | ||||
| "Router that provides an entry point into enterprise or service | ||||
| provider core networks"; | ||||
| } | ||||
| identity core { | ||||
| base role; | ||||
| description | ||||
| "Component part of the high-speed backbone of the network. It | ||||
| provides fast and efficient data transport"; | ||||
| } | ||||
| identity datacenter { | ||||
| base role; | ||||
| description | ||||
| "Component placed in the data center, mantaining and housing | ||||
| back-end IT system and data stores"; | ||||
| } | ||||
| identity branch { | ||||
| base role; | ||||
| description | ||||
| "Router in a remote branch of an enterprise's network"; | ||||
| } | ||||
| identity deployment-mode { | ||||
| description | ||||
| "This attribute will denote the configured deployment mode | ||||
| for the asset and features, if applicable; e.g., | ||||
| High Availability(HA) or Faiover cluster, virtual appliance, | ||||
| etc."; | ||||
| } | ||||
| identity primary { | ||||
| base deployment-mode; | ||||
| description | ||||
| "Asset or featurs that support critical applications to | ||||
| minimize system downtime, to achieve high availabiilty or | ||||
| failover"; | ||||
| } | ||||
| identity secondary { | ||||
| base deployment-mode; | ||||
| description | ||||
| "Redundant asset or feature, that is triggered when the | ||||
| primary encounters performance issues, to achieve high | ||||
| availability or failover"; | ||||
| } | ||||
| identity cloud { | ||||
| base deployment-mode; | ||||
| description | ||||
| "Especially it refers to remote, distributed and shared asset | ||||
| resources (i.e. data storage, computing power, etc.), which | ||||
| are hooked together and meant to operate as a single | ||||
| ecosystem."; | ||||
| } | ||||
| identity virtual-appliance { | ||||
| base deployment-mode; | ||||
| description | ||||
| "pre-configured virtual machine image, ready to run on a | ||||
| hypervisor"; | ||||
| } | ||||
| identity container { | ||||
| base deployment-mode; | ||||
| description | ||||
| "Standard unit of software that packages up code and all its | ||||
| dependencies so the application runs quickly and reliably from | ||||
| one computing environment to another"; | ||||
| } | ||||
| identity undeployed { | ||||
| base deployment-mode; | ||||
| description | ||||
| "it refers to an asset that is undeployed"; | ||||
| } | ||||
| identity counter-type { | ||||
| description | ||||
| "Specify the different type of counters, i.e accumulated-count, | ||||
| average-count, last-count, high-water mark count, low-water | ||||
| mark count" ; | ||||
| } | ||||
| identity accumulated { | ||||
| base counter-type; | ||||
| description | ||||
| "monotonically increasing counters. They're useful for | ||||
| aggregating metric information such as the number of hits | ||||
| on a web page, how many users log into a portal, etc."; | ||||
| } | ||||
| identity average { | ||||
| base counter-type; | ||||
| description | ||||
| "typical value in a set of metrics, in particular the mean, | ||||
| which is calculated by dividing the sum of the values in the | ||||
| set by their number."; | ||||
| } | ||||
| identity last { | ||||
| base counter-type; | ||||
| description | ||||
| "Last value measured and collected for specific metric."; | ||||
| } | ||||
| identity high-water-mark { | ||||
| base counter-type; | ||||
| description | ||||
| "Highest level of value in a set of metrics."; | ||||
| } | ||||
| identity low-water-mark { | ||||
| base counter-type; | ||||
| description | ||||
| "Lowest level of value in a set of metrics."; | ||||
| } | ||||
| identity feature-scope { | ||||
| description | ||||
| "Optional tag that could apply to any usage feature, so that | ||||
| if there are multiple dimensions of reporting that need to | ||||
| be accommodated (i.e., report feature usage by 'site')"; | ||||
| } | ||||
| identity site { | ||||
| base feature-scope; | ||||
| description | ||||
| "Single location, part of the network"; | ||||
| } | ||||
| identity network { | ||||
| base feature-scope; | ||||
| description | ||||
| "scope limited to the networking assets"; | ||||
| } | ||||
| typedef feature-usage-type { | ||||
| type enumeration { | ||||
| enum none { | ||||
| description | ||||
| "No Usage"; | ||||
| } | ||||
| enum low { | ||||
| description | ||||
| "Usage meeting the Low Threshold"; | ||||
| } | ||||
| enum medium { | ||||
| description | ||||
| "Usage meeting the Medium Threshold"; | ||||
| } | ||||
| enum high { | ||||
| description | ||||
| "Usage meeting the High Threshold"; | ||||
| } | ||||
| // NEED to elaborate more on this list, based on use case | ||||
| // validation | ||||
| } | ||||
| description | ||||
| "feature usage % 0-25-50-75-100"; | ||||
| } | ||||
| identity lmo-class { | ||||
| description "Base identity for classes of LMOs"; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | <CODE ENDS> | |||
| 7. Deployment Considerations | 7. Deployment Considerations | |||
| LMO Data Models defines the data schemas for LMO data. LMO Data | LMO Data Models defines the data schemas for LMO data. LMO Data | |||
| Models are based on YANG. YANG data models can be used independent | Models are based on YANG. YANG data models can be used independent | |||
| of the transport and can be converted into any encoding format | of the transport and can be converted into any encoding format | |||
| supported by the network configuration protocol. YANG is a protocol | supported by the network configuration protocol. YANG is a protocol | |||
| independent. | independent. | |||
| skipping to change at page 17, line 13 ¶ | skipping to change at page 31, line 9 ¶ | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-lmo-incident-management | URI: urn:ietf:params:xml:ns:yang:ietf-lmo-incident-management | |||
| Registrant Contact: The OPSA WG of the IETF. | Registrant Contact: The OPSA WG of the IETF. | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-lmo-organization | URI: urn:ietf:params:xml:ns:yang:ietf-lmo-organization | |||
| Registrant Contact: The OPSA WG of the IETF. | Registrant Contact: The OPSA WG of the IETF. | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-lmo-service | ||||
| Registrant Contact: The OPSA WG of the IETF. | ||||
| XML: N/A, the requested URI is an XML namespace. | ||||
| URI: urn:ietf:params:xml:ns:yang:ietf-lmo-user | URI: urn:ietf:params:xml:ns:yang:ietf-lmo-user | |||
| Registrant Contact: The OPSA WG of the IETF. | Registrant Contact: The OPSA WG of the IETF. | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| 9.2. The YANG Module Names Registry | 9.2. The YANG Module Names Registry | |||
| This document registers YANG modules in the YANG Module Names | This document registers YANG modules in the YANG Module Names | |||
| registry [RFC7950]. Following the format in [RFC7950], the | registry [RFC7950]. Following the format in [RFC7950], the | |||
| registrations defined below are requested: | registrations defined below are requested: | |||
| skipping to change at page 18, line 4 ¶ | skipping to change at page 31, line 42 ¶ | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-assets-inventory | namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-assets-inventory | |||
| maintained by IANA: N | maintained by IANA: N | |||
| prefix: lmoasset | prefix: lmoasset | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| name: ietf-lmo-licenses | name: ietf-lmo-licenses | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-licenses | namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-licenses | |||
| maintained by IANA: N | maintained by IANA: N | |||
| prefix: lmolicense | prefix: lmolicense | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| name: ietf-lmo-feature | name: ietf-lmo-feature | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-feature | namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-feature | |||
| maintained by IANA: N | maintained by IANA: N | |||
| prefix: lmousage | prefix: lmousage | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| name: ietf-lmo-usage | name: ietf-lmo-usage | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-usage | namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-usage | |||
| maintained by IANA: N | maintained by IANA: N | |||
| prefix: lmousage | prefix: lmousage | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| name: ietf-lmo-incident-management | name: ietf-lmo-incident-management | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-incident-management | namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-incident-management | |||
| maintained by IANA: N | maintained by IANA: N | |||
| prefix: lmoscm | prefix: lmoscm | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| name: ietf-lmo-organization | name: ietf-lmo-organization | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-organization | namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-organization | |||
| maintained by IANA: N | maintained by IANA: N | |||
| prefix: lmoscm | prefix: lmoscm | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| name: ietf-lmo-service | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-service | ||||
| maintained by IANA: N | ||||
| prefix: lmoscm | ||||
| reference: RFC XXXX | ||||
| name: ietf-lmo-user | name: ietf-lmo-user | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-user | namespace: urn:ietf:params:xml:ns:yang:ietf-lmo-user | |||
| maintained by IANA: N | maintained by IANA: N | |||
| prefix: lmoscm | prefix: lmoscm | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| skipping to change at page 20, line 10 ¶ | skipping to change at page 33, line 47 ¶ | |||
| Dhiren Tailor and Jan Lindblad. | Dhiren Tailor and Jan Lindblad. | |||
| The authors wish to thank Gonzalo Salgueiro, Martin Beverley and many | The authors wish to thank Gonzalo Salgueiro, Martin Beverley and many | |||
| others for their helpful comments and suggestions. | others for their helpful comments and suggestions. | |||
| Change log | Change log | |||
| RFC Editor Note: This section is to be removed during the final | RFC Editor Note: This section is to be removed during the final | |||
| publication of the document. | publication of the document. | |||
| version 04 | ||||
| * Remove ietf-lmo-service YANG module, as service is considered | ||||
| within the asset concept | ||||
| * Fix introduced to the .xml and .txt avoiding a compiling issue on | ||||
| the YANG modules. | ||||
| version 03 | version 03 | |||
| * Flexible root structure has been introduced by the ietf-lmo YANG | * Flexible root structure has been introduced by the ietf-lmo YANG | |||
| module: Modules are arranged into layers, with ietf-lmo-common and | module: Modules are arranged into layers, with ietf-lmo-common and | |||
| ietf-lmo at the core. Other modules can be added in layers on | ietf-lmo at the core. Other modules can be added in layers on | |||
| top. This structure allows flexibility and the option to be | top. This structure allows flexibility and the option to be | |||
| enhanced by vendor implementation. | enhanced by vendor implementation. | |||
| The new structure allows to include other lmo classes, or exclude | The new structure allows to include other lmo classes, or exclude | |||
| current lmo classes. | current lmo classes. | |||
| End of changes. 30 change blocks. | ||||
| 97 lines changed or deleted | 688 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||