< draft-shi-alto-yang-model-02.txt   draft-shi-alto-yang-model-03.txt >
ALTO Working Group X. Shi ALTO Working Group X. Shi
Internet-Draft Yale University Internet-Draft Yale University
Intended status: Informational Y. Yang Intended status: Informational Y. Yang
Expires: September 10, 2015 Tongji/Yale University Expires: September 24, 2015 Tongji/Yale University
M. Scharf M. Scharf
Alcatel-Lucent Bell Labs Alcatel-Lucent Bell Labs
March 9, 2015 March 23, 2015
A YANG Data Model for Base ALTO Data A YANG Data Model for Base ALTO Data
draft-shi-alto-yang-model-02 draft-shi-alto-yang-model-03
Abstract Abstract
This document defines a YANG model for the base ALTO information This document defines a YANG model for the base ALTO information
resources defined in [RFC7285]. In particular, the introduction of resources defined in [RFC7285]. In particular, the introduction of
this model allows a standard approach to provision and update ALTO this model allows a standard approach to provision and update ALTO
state stored at an ALTO server. state stored at an ALTO server.
Status of This Memo Status of This Memo
skipping to change at page 1, line 36 skipping to change at page 1, line 36
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 September 10, 2015. This Internet-Draft will expire on September 24, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 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 Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 4, line 44 skipping to change at page 4, line 44
| +--rw map* [pid] | +--rw map* [pid]
| +--rw pid alto:pid-name | +--rw pid alto:pid-name
| +--rw endpoint-address-group* [address-type] | +--rw endpoint-address-group* [address-type]
| +--rw address-type endpoint-address-type | +--rw address-type endpoint-address-type
| +--rw endpoint-prefix* endpoint-prefix | +--rw endpoint-prefix* endpoint-prefix
+--rw cost-maps +--rw cost-maps
| +--rw cost-map* [resource-id] | +--rw cost-map* [resource-id]
| +--rw resource-id alto:resource-id | +--rw resource-id alto:resource-id
| +--rw tag alto:tag-string | +--rw tag alto:tag-string
| +--rw meta | +--rw meta
| | +--rw dependent-vtags* | | +--rw dependent-vtags* [resource-id tag]
| | | +--rw resource-id resource-id | | | +--rw resource-id resource-id
| | | +--rw tag tag-string | | | +--rw tag tag-string
| | +--rw cost-type | | +--rw cost-type
| | +--rw cost-mode cost-mode | | +--rw cost-mode cost-mode
| | +--rw cost-metric cost-metric | | +--rw cost-metric cost-metric
| | +--rw description? string | | +--rw description? string
| +--rw map* [src] | +--rw map* [src]
| +--rw src alto:pid-name | +--rw src alto:pid-name
| +--rw dst-costs* [dst] | +--rw dst-costs* [dst]
| +--rw dst alto:pid-name | +--rw dst alto:pid-name
| +--rw cost | +--rw cost
+--rw endpoint-property-map +--rw endpoint-property-map
+--rw meta +--rw meta
| +--rw dependent-vtags* | +--rw dependent-vtags* [resource-id tag]
| +--rw resource-id resource-id | +--rw resource-id resource-id
| +--rw tag tag-string | +--rw tag tag-string
+--rw endpoint-properties* [endpoint] +--rw endpoint-properties* [endpoint]
+--rw endpoint typed-endpoint-address +--rw endpoint typed-endpoint-address
+--rw properties* [property-type] +--rw properties* [property-type]
+--rw property-type endpoint-property-type +--rw property-type endpoint-property-type
+--rw property endpoint-property-value +--rw property endpoint-property-value
Figure 2: Tree Diagram of ALTO YANG Model. Figure 2: Tree Diagram of ALTO YANG Model.
skipping to change at page 10, line 9 skipping to change at page 10, line 9
[draft-shi-alto-yang-json] [draft-shi-alto-yang-json]
Shi, X. and Y. Yang, "Modeling JSON Messages Using YANG", Shi, X. and Y. Yang, "Modeling JSON Messages Using YANG",
draft-shi-alto-yang-json-00 (work in progress), October draft-shi-alto-yang-json-00 (work in progress), October
2014. 2014.
Appendix A. YANG Data Model for ALTO Protocol Appendix A. YANG Data Model for ALTO Protocol
A.1. ALTO/YANG: Common Data Types A.1. ALTO/YANG: Common Data Types
<CODE BEGINS> file "alto-service-types@2015-03-22.yang"
module alto-service-types { module alto-service-types {
yang-version 1; yang-version 1;
namespace "urn:ietf:params:xml:ns:yang:alto-service-types"; namespace "urn:ietf:params:xml:ns:yang:alto-service-types";
// TODO: replace with IANA namespace when assigned // TODO: replace with IANA namespace when assigned
prefix "alto"; prefix "alto";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization "ALTO WG"; organization "ALTO WG";
contact "alto@ietf.org"; contact "alto@ietf.org";
description description
"This module defines the data types and groupings for a semantically "This module defines the data types and groupings for a semantically
equivalent data model for the ALTO services defined in RFC7285."; equivalent data model for the ALTO services defined in RFC7285.";
revision 2015-03-22 {
description "IETF92 revision.";
}
revision 2014-11-01 { revision 2014-11-01 {
description "Separate types module"; description "Separate types module";
} }
revision 2014-10-24 { revision 2014-10-24 {
description "Initial version."; description "Initial version.";
} }
/******************** /********************
* TYPE DEFINITIONS * * TYPE DEFINITIONS *
skipping to change at page 24, line 4 skipping to change at page 24, line 8
mandatory true; mandatory true;
} }
leaf property { leaf property {
type endpoint-property-value; type endpoint-property-value;
mandatory true; mandatory true;
} }
description description
"EndpointProps. RFC7285 Sec. 11.4.1.6." + "EndpointProps. RFC7285 Sec. 11.4.1.6." +
" object { " object {
EndpointPropertyType -> JSONValue; EndpointPropertyType -> JSONValue;
} EndpointProps;"; } EndpointProps;";
} }
description description
"EndpointPropertyMapData. Sec. 11.4.1.6." + "EndpointPropertyMapData. Sec. 11.4.1.6." +
" object-map { " object-map {
TypedEndpointAddr -> EndpointProps; TypedEndpointAddr -> EndpointProps;
} EndpointPropertyMapData;"; } EndpointPropertyMapData;";
} }
description description
"InfoResourceEndpointProperties. Sec. 11.4.1.6." + "InfoResourceEndpointProperties. Sec. 11.4.1.6." +
" object { " object {
EndpointPropertyMapData endpoint-properties; EndpointPropertyMapData endpoint-properties;
} InfoResourceEndpointProperties : ResponseEntityBase;"; } InfoResourceEndpointProperties : ResponseEntityBase;";
} }
} }
<CODE ENDS>
Figure 3: ALTO/YANG Common Types. Figure 3: ALTO/YANG Common Types.
A.2. ALTO/YANG Model A.2. ALTO/YANG Model
<CODE BEGINS> file "alto-service@2015-03-22.yang"
module alto-service { module alto-service {
yang-version 1; yang-version 1;
namespace "urn:ietf:params:xml:ns:yang:alto-service"; namespace "urn:ietf:params:xml:ns:yang:alto-service";
// TODO: replace with IANA namespace when assigned // TODO: replace with IANA namespace when assigned
prefix "as"; prefix "as";
import alto-service-types { import alto-service-types {
prefix alto; prefix alto;
} }
organization "ALTO WG"; organization "ALTO WG";
contact "alto@ietf.org"; contact "alto@ietf.org";
description description
"This module defines a semantically equivalent data model "This module defines a semantically equivalent data model
for the ALTO services defined in RFC7285."; for the ALTO services defined in RFC7285.";
revision 2015-03-03 { revision 2015-03-22 {
description "Revise according to IETF91."; description "Revise according to IETF91.";
} }
revision 2014-11-01 { revision 2014-11-01 {
description "Inherit from alto-service-types."; description "Inherit from alto-service-types.";
} }
revision 2014-10-24 { revision 2014-10-24 {
description "Initial version."; description "Initial version.";
} }
/****************************************** /******************************************
Groupings for ALTO information resource Groupings for ALTO information resource
*******************************************/ *******************************************/
grouping network-map-data { grouping network-map-data {
list map { list map {
skipping to change at page 25, line 48 skipping to change at page 26, line 4
type alto:pid-name; type alto:pid-name;
} }
key "src"; key "src";
list dst-costs { list dst-costs {
leaf dst { leaf dst {
type alto:pid-name; type alto:pid-name;
} }
key "dst"; key "dst";
uses alto:alto-cost; uses alto:alto-cost;
} }
} }
} }
/* Cost Map Grouping */ /* Cost Map Grouping */
grouping cost-map { grouping cost-map {
leaf resource-id { leaf resource-id {
type alto:resource-id; type alto:resource-id;
mandatory true; mandatory true;
} }
leaf tag { leaf tag {
type alto:tag-string; type alto:tag-string;
mandatory true; //TODO: sx: mandatory tag? tag manager? mandatory true;
} }
container meta { container meta {
must "current()"; must "current()";
uses alto:cost-map-meta; uses alto:cost-map-meta;
} }
uses cost-map-data; uses cost-map-data;
} }
grouping alto-resources { grouping alto-resources {
container IRD { container IRD {
skipping to change at page 27, line 4 skipping to change at page 27, line 8
} }
/**************************************************** /****************************************************
DATA INSTANCES of all ALTO information resources DATA INSTANCES of all ALTO information resources
unfiltered network-maps, unfiltered cost-maps are all instances unfiltered network-maps, unfiltered cost-maps are all instances
of resources. IRD is also modeled as data. of resources. IRD is also modeled as data.
The design uses augment as the basic approach to implement The design uses augment as the basic approach to implement
inheritance. inheritance.
****************************************************/ ****************************************************/
container resources { container resources {
uses alto-resources; uses alto-resources;
} }
} }
<CODE ENDS>
Figure 4: ALTO YANG Model. Figure 4: ALTO YANG Model.
Appendix B. Using NETCONF to Read ALTO/YANG Information Appendix B. Using NETCONF to Read ALTO/YANG Information
NETCONF has provided two RPCs to retrieve data: the <get> operation NETCONF has provided two RPCs to retrieve data: the <get> operation
and the <get-config> operation. The <get> operation can be used to and the <get-config> operation. The <get> operation can be used to
retrieve both configuration data and state data, whereas the <get- retrieve both configuration data and state data, whereas the <get-
config> operation is used to retrieve only configuration data. Since config> operation is used to retrieve only configuration data. Since
state data is read-only, in the current design, we model ALTO state data is read-only, in the current design, we model ALTO
 End of changes. 18 change blocks. 
11 lines changed or deleted 18 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/