draft-clacla-netmod-yang-model-update-02

Slides:



Advertisements
Similar presentations
YANG Boot Camp The YANG Gang IETF 71. YANG Boot Camp The YANG Gang IETF 71.
Advertisements

Draft-bogdanovic-netmod-yang- model-classification-03 IETF 92 Dallas NETMOD WG B. Claise, C. Moberg, Cisco Systems D. Bogdanovic Juniper Networks.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
NETCONF Server and RESTCONF Server Configuration Models draft-ietf-netconf-server-model-06 NETCONF WG IETF #92 Dallas, TX, USA.
NETMOD Architecture Phil Shafer IETF 72.
1 Lecture 19 Configuration Management Software Engineering.
Abierman-rmonwg-17mar03 1 RMONMIB WG 56th IETF San Francisco, California March 17, 2003 Discussion: Admin:
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
IETF71 DIME WG RFC3588bis and Extensibility Status Victor Fajardo (draft-ietf-dime-rfc3588bis-10.txt)
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Yang Shi (Richard), Yong Zhang IETF 74 th 26 March 2009, San Francisco CAPWAP WG MIB Drafts Report.
7/11/2006IETF-66 MSEC IPsec composite groups page 1 George Gross IdentAware ™ Multicast Security IETF-66, Montreal, Canada July.
BLISS Problem Statement Jonathan Rosenberg Cisco.
SIP PUBLISH draft-ietf-simple-publish-01 Aki Niemi
1 Complex Types and Typed Instance Identifiers IETF #76 NETMOD WG
Representing Netconf Data Models using Document Schema Definition Languages (DSDL) Rohan Mahy Sharon Chisholm Lada Lhotka IETF 72 - Dublin.
David Orchard W3C Lead BEA Systems Web service and XML Extensibility and Versioning.
Real-Time Streaming Protocol draft-ietf-mmusic-rfc2326bis-01.txt Magnus Westerlund.
New Revision of the Interactive Connectivity Establishment (ICE) IETF 85, Atlanta November 6 th, 2012 Ari Keränen.
SIP Events: Changes and Open Issues IETF 50 / SIP Working Group Adam Roach
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Netconf Schema Query Mark Scott IETF 70 Vancouver December 2007
AX DEVELOPMENT FOR NON- DEVELOPERS Why did my 15 minute change take 3 weeks.
Network Device YANG Organizational Model draft-rtgyangdt-rtgwg-device-model-03 Authors: Acee Lindem, Christian Hopps, Dean Bogdanovic, Lou Berger (Ed.)
YANG Roque Gagliano.
SIP Extension for Multilevel Precedence and Preemption (MLPP)
Interface extensions YANG & VLAN sub-interface YANG Status update
YANG Hackathon Achievements
RADEXT WG RADIUS Attribute Guidelines
draft-ietf-l3sm-l3vpn-service-model IETF 94 - Yokohama
draft-litkowski-isis-yang-isis-cfg IETF 90 - Toronto
Interface extensions YANG & VLAN sub-interface YANG Status update
Chapter 18 Maintaining Information Systems
Gaudi software release procedures
Routing Area Yang Architecture Design Team Update
CVS revisions UML diagram
Maintaining software solutions
GMPLS Signaling Extensions for the Evolving G.709 OTN Control
Knowledge Representation
CONEX BoF.
Balazs Lengyel, Ericsson
Joe Clarke (presenting)
SISAI STATISTICAL INFORMATION SYSTEMS ARCHITECTURE AND INTEGRATION
NETMOD IETF 103 Bangkok Nov , 2018
Interface extensions YANG & VLAN sub-interface YANG Status update
NMDA Q & A draft-dsdt-nmda-guidelines &
Updates to Draft Specification for DTN TCPCLv4
Post WG LC NMDA datastore architecture draft
A YANG model to manage the optical interface parameters for an external transponder in a WDM network draft-dharini-ccamp-dwdm-if-param-yang-01
Evolution of the Subscription & Event Notification Drafts IETF #98 Chicago Eric Voit 28-Mar-2017 DRAFT Authors on at least 1 drafts Andy Bierman Alexander.
Discussing an OVS/OVN Split
Data Structures & Algorithms
An MPLS-Based Forwarding Plane for Service Function Chaining
YANG Instance Data for Documenting Server Capabilities
Getting to Know Model-Driven Management With the YANG Catalog
Handling YANG Revisions – Discussion Kickoff
WG Document Status Compiled By: Matt Hartley, Lou Berger, Vishnu Pavan Beeram IETF TEAS Working Group.
L. Xia, J. Strassner, C. Basile, D. Lopez
NETMOD Versioning Design Team Update
Joe Clarke (presenting)
TCB Control Block Sharing: 2140bis draft-ietf-tcpm-2140bis-00
Task 62 Scope – Config / Operational State
NETMOD Versioning Design Team Update
Rob Wilton (presenting)
System Center Third Party Tools Ivanti Patch and RCT Recast April 2019.
Interface extensions YANG & VLAN sub-interface YANG Status update
Schema version selection Reshad Rahman (presenting), Rob Wilton
Interface extensions YANG & VLAN sub-interface YANG Status update
Presentation transcript:

draft-clacla-netmod-yang-model-update-02 New YANG Module Update Procedure draft-clacla-netmod-yang-model-update-02 Benoît Claise, Cisco Joe Clarke, Cisco Kevin D'Souza, AT&T Netmod WG November 15, 2017

Problem Illustrated

Problem Illustrated

Problem Illustrated Area of confusion. E.g., ietf-rip shows a dependency to both ietf-routing and ietf-routing-2 since there is no explicit linkage between the two.

Problem Explication Background: ietf-routing-2 has been renamed to ietf-routing, so not really an issue Not a new problem, but the first occurrence in the IETF (openconfig mentioned this) Have to warn all ietf-routing dependent YANG module authors that they have to import a different YANG module now Btw, had to create a script from the yangcatalog to get those email addresses Industry-wide issue: cross SDO, cross opensource, cross vendors From a tooling point of view, no way to know that YANG module-B updates/obsoletes YANG module-A Without going the RFC header tag

Sources of the Problem Let’s re-think our YANG module update strategy YANG “updating a module” rules are strict in term of backward compatibility The YANG module (structure) have to be perfect Slow Standardization As a consequence of the YANG update rules Some YANG modules are not backward compatible. It’s a fact Ex: L3VPN Ex: some “native” models Let’s re-think our YANG module update strategy 

The Bigger Problem/End Goal: Service Composition Operators want to automate services Services YANG modules maps to multiple device YANG modules Potentially from multiple sources Service creation: which YANG module work together? Which YANG modules work together (“release bundle”, “package”) Testing and/or metadata (tree-type/dependency) Service maintenance/upgrade Mapping to all YANG paths Impact to my service if I upgrade a device? Path change? In case of non backward compatible YANG modules, is my service impacted? Let’s re-think our YANG module update strategy 

Proposed Solution We relax the YANG update rules: "As experience is gained with a module, it may be desirable to revise that module. Changes to published modules are allowed, even if they have some potential to cause interoperability problems, at the condition that the semantic versioning change are clearly indicated based on the SEMVER YANG extension.” Keep the same YANG module name SEMVER extension in YANG module MAJOR is incremented when the new version of the specification is incompatible with previous versions. MINOR is incremented when new functionality is added in a manner that is backward-compatible with previous versions. PATCH is incremented when bug fixes are made in a backward- compatible manner Note: based on an openconfig previous proposal

Tracking Module Changes ietf-interfaces@2013-12-23 ietf-interfaces@2017-08-17 Derived-semantic-version is determined using: Order all modules of the same name by revision from oldest to newest. If module A, revision N+1 has failed compilation, bump its derived semantic MAJOR version. Else, run "pyang --check-update-from" on module A, revision N and revision N+1 to see if backward-incompatible changes exist. If backward-incompatible changes exist, bump module A, revision N+1's derived MAJOR semantic version. If no backward-incompatible changes exist, compare the pyang trees of module A, revision N and revision N+1. If there are structural differences (e.g., new nodes), bump module A, revision N+1's derived MINOR semantic version. If no structural differences exist, bump module A, revision N+1's derived PATCH semantic version.

Which problem does it solve? YANG modules backward compatibility Automation oolchain works Experiment in yangcatalog.org Fit well in the service composition concept No YANG path update with new YANG modules SEMVER composition of any new YANG modules

Open Issues Next to “import by revision” (though this is seldom used), do we need import by semantic version: "version==X", "version>=X", "major version==X", "major version>=X", etc. A new naming convention for modules? Today, modules are named in module@revision.yang notation.  Re-using the '@' for version is not ideal.  Perhaps a new character such as '%' is needed (i.e., module%version.yang).  In this manner, both version and revision could be used. module bundle/package? modules that are part of a bundle and are known to interoperate.  A new kind of import is required.  Today, we have import by revision (though this is seldom used).  There should also be an import by module-version (i.e., the semantic version).  This import will not simply be a copy of import by revision.  Consideration needs to be given to expressions such as "version==X", "version>=X", "major version==X", "major version>=X", etc. Similarly to import-by-version, we may also require a new naming convention for modules.  Today, modules are named in module@revision.yang notation.  Re-using the '@' for version is not ideal.  Perhaps a new character such as '%' is needed (i.e., module%version.yang).  In this manner, both version and revision could be used. Taking another page from Openconfig, the notion of a module bundle should be considered.  That is, there may need to be a way to enumerate modules that are part of a bundle and are known to interoperate.  This may not be as critical if a rich import-by-version is defined. Similarly, the concept of a feature bundle should be considered.  Typically, operators combine and test YANG modules to build value-add services.  These bundles form releases for specific features or services, and it is critical to ensure as the modules evolve, the bundles can coherently evolve with them.