< 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/