| < draft-sambo-ccamp-yang-fsm-transponder-reconf-00.txt | draft-sambo-ccamp-yang-fsm-transponder-reconf-01.txt > | |||
|---|---|---|---|---|
| CCAMP Working Group N. Sambo | CCAMP Working Group N. Sambo | |||
| Internet-Draft P. Castoldi | Internet-Draft P. Castoldi | |||
| Intended status: Standards Track A. Sgambelluri | Intended status: Standards Track A. Sgambelluri | |||
| Expires: September 6, 2018 Scuola Superiore Sant'Anna | Expires: January 3, 2019 Scuola Superiore Sant'Anna | |||
| G. Fioccola | G. Fioccola | |||
| Telecom Italia | Telecom Italia | |||
| F. Cugini | F. Cugini | |||
| CNIT | CNIT | |||
| D. Ceccarelli | D. Ceccarelli | |||
| Ericsson | Ericsson | |||
| H. Song | H. Song | |||
| T. Zhou | T. Zhou | |||
| Huawei | Huawei | |||
| March 5, 2018 | July 2, 2018 | |||
| Finite state machine YANG model augmentation for Transponder | Finite state machine YANG model augmentation for Transponder | |||
| Reconfiguration | Reconfiguration | |||
| draft-sambo-ccamp-yang-fsm-transponder-reconf-00 | draft-sambo-ccamp-yang-fsm-transponder-reconf-01 | |||
| Abstract | Abstract | |||
| YANG enables to compile a set of consistent vendor-neutral data | YANG enables to compile a set of consistent vendor-neutral data | |||
| models for optical networks and components based on actual | models for optical networks and components based on actual | |||
| operational needs emerging from heterogeneous use cases. A YANG | operational needs emerging from heterogeneous use cases. A YANG | |||
| model has been also proposed to describe finite state machine to | model has been also proposed to describe finite state machine to | |||
| program network elements that are modeled with YANG. This document | program network elements that are modeled with YANG. This document | |||
| augments the more generic YANG model for finite state machine | augments the more generic YANG model for finite state machine | |||
| [I-D.sambo-netmod-yang-fsm], in order to pre-instruct an optical | [I-D.sambo-netmod-yang-fsm], in order to pre-instruct an optical | |||
| skipping to change at page 1, line 49 ¶ | skipping to change at page 1, line 49 ¶ | |||
| 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 September 6, 2018. | This Internet-Draft will expire on January 3, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 2, line 28 ¶ | skipping to change at page 2, line 28 ¶ | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
| 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Flexible Transponders . . . . . . . . . . . . . . . . . . . . 4 | 4. Flexible Transponders . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5. Augmenting the FSM YANG model for transponder reconfiguration 7 | 5. Augmenting the FSM YANG model for transponder reconfiguration 7 | |||
| 6. Code of the YANG model for transponder reconfiguration . . . 9 | 6. Code of the YANG model for transponder reconfiguration . . . 9 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 15 | 10.2. Informative References . . . . . . . . . . . . . . . . . 16 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 1. Introduction | 1. Introduction | |||
| Networks are evolving toward more programmability, flexibility, and | Networks are evolving toward more programmability, flexibility, and | |||
| multi-vendor interoperability. Multi-vendor interoperability can be | multi-vendor interoperability. Multi-vendor interoperability can be | |||
| applied in the context of nodes, i.e. a node composed of components | applied in the context of nodes, i.e. a node composed of components | |||
| provided by different vendors (named fully disaggregated white box) | provided by different vendors (named fully disaggregated white box) | |||
| is assembled under the same control system. This way, operators can | is assembled under the same control system. This way, operators can | |||
| optimize costs and network performance without the need of being tied | optimize costs and network performance without the need of being tied | |||
| to single vendor equipment. NETCONF protocol RFC6241 [RFC6241] based | to single vendor equipment. NETCONF protocol RFC6241 [RFC6241] based | |||
| skipping to change at page 7, line 37 ¶ | skipping to change at page 7, line 37 ¶ | |||
| |_______________________| | |_______________________| | |||
| Figure 3: Flow chart of the approach exploiting YANG models in this | Figure 3: Flow chart of the approach exploiting YANG models in this | |||
| draft | draft | |||
| 5. Augmenting the FSM YANG model for transponder reconfiguration | 5. Augmenting the FSM YANG model for transponder reconfiguration | |||
| This section augments the FSM YANG model presented in | This section augments the FSM YANG model presented in | |||
| [I-D.sambo-netmod-yang-fsm] to address the specific use case of | [I-D.sambo-netmod-yang-fsm] to address the specific use case of | |||
| transponder reconfiguration triggered by physical layer changes. The | transponder reconfiguration triggered by physical layer changes. The | |||
| FSM model is based on the following main attributes: states, | FSM is installed by the SDN controller in the local controller of the | |||
| transitions (corresponding to some specific event), and actions. In | transponder and then runs there. The installation of the FSM can be | |||
| particular, more specifically with respect to | enabled through a NETCONF <edit-config> message. Through FSM, the | |||
| [I-D.sambo-netmod-yang-fsm], in such a use case, a state corresponds | SDN controller instructs the transponder about the possible events | |||
| to a specific configuration of transponder transmission parameters: | (e.g., BER above a threshold) and reactions (e.g., change of | |||
| e.g., given by the modulation format and the FEC. A transition is | modulation format) by setting the thresholds (e.g., BER threshold) | |||
| triggered when the pre-FEC BER (or another parameter such as the | and the reconfiguration settings. The FSM model is based on the | |||
| OSNR) is below or above a threshold. To this purpose, with respect | following main attributes: states, transitions (corresponding to some | |||
| to [I-D.sambo-netmod-yang-fsm], the attribute <filter> is expressed | specific event), and actions. In particular, more specifically with | |||
| by the definition of thresholds and operators. The action mainly | respect to [I-D.sambo-netmod-yang-fsm], in such a use case, a state | |||
| consists of the change of modulation format and/or FEC. | corresponds to a specific configuration of transponder transmission | |||
| parameters: e.g., given by the modulation format and the FEC. A | ||||
| transition is triggered when the pre-FEC BER (or another parameter | ||||
| such as the OSNR) is below or above a threshold. To this purpose, | ||||
| with respect to [I-D.sambo-netmod-yang-fsm], the attribute <filter> | ||||
| is expressed by the definition of thresholds and operators. The | ||||
| action mainly consists of the change of modulation format and/or FEC. | ||||
| The Tree of the YANG model for transponder reconfiguration | The Tree of the YANG model for transponder reconfiguration | |||
| (augmentation of the YANG model for FSM) is reported below. | (augmentation of the YANG model for FSM) is reported below. | |||
| module: ietf-treconf | module: ietf-treconf | |||
| +--rw current-state? leafref | +--rw current-state? leafref | |||
| +--rw states | +--rw states | |||
| +--rw state [id] | +--rw state [id] | |||
| +--rw id state-id-type | +--rw id state-id-type | |||
| +--rw description? string | +--rw description? string | |||
| skipping to change at page 8, line 45 ¶ | skipping to change at page 9, line 4 ¶ | |||
| when an action is executed (e.g., new modulation format and FEC). | when an action is executed (e.g., new modulation format and FEC). | |||
| For more details about the other model attributes, the reader can | For more details about the other model attributes, the reader can | |||
| refer to [I-D.sambo-netmod-yang-fsm]. | refer to [I-D.sambo-netmod-yang-fsm]. | |||
| In such a use case, we assume that an event (e.g., BER>TH) is | In such a use case, we assume that an event (e.g., BER>TH) is | |||
| revealed by the digital signal processing (DSP) of the receiver. | revealed by the digital signal processing (DSP) of the receiver. | |||
| Once the event is recognized, the modulation format and/or the FEC | Once the event is recognized, the modulation format and/or the FEC | |||
| have to be changed, both at the receiver and the transmitter. Thus, | have to be changed, both at the receiver and the transmitter. Thus, | |||
| the list of actions to be executed includes the change of | the list of actions to be executed includes the change of | |||
| transmission parameters at the receiver side, as well as the | transmission parameters at the receiver side. Moreover, transmission | |||
| generation of a message sent by the receiver controller to the | and receiver must be synchronized about the transmission settings | |||
| transmitter controller to synchronize about the transmission | (modulation format and so no) for a proper transmission. Thus, when | |||
| parameters to be adopted. This message can be sent over a control | the transponder at the receiver side decides to change its state, the | |||
| channel between transmitter and receiver. Such transponder | remote transponder at the transmitter side has to do the same state | |||
| reconfiguration based on FSM has been successfully demonstrated by | transition. To this purpose, the list of actions also includes this | |||
| integrating control and data planes in a lab and field trials. | coordination. In particular, the transponder at the receiver side | |||
| sends a message to the transmitter to synchronize about the | ||||
| transmission parameters to be adopted. This message can be sent over | ||||
| a control channel. This way both the transmitter and receiver | ||||
| operates with the same transmission parameters: e.g. the format, | ||||
| FEC, and so on. | ||||
| Such transponder reconfiguration based on FSM has been successfully | ||||
| demonstrated by integrating control and data planes in a lab and | ||||
| field trials. | ||||
| Finally, a last consideration concerns the impact on transmission bit | ||||
| rate when changing some transmission parameters. When passing from a | ||||
| more spectral efficient modulation format (but less robust with | ||||
| respect to physical impairments) to a less spectral efficient | ||||
| modulation format (more robust) such that could be polarization | ||||
| multiplexing 16 quadrature phase shift keying (PM-16QAM) and PM | ||||
| quadrature phase shift keying (PM-QPSK) the bit rate is reduced | ||||
| (halved in the case of PM-16QAM and PM-QPSK). This means that part | ||||
| of the traffic cannot be recovered through FSM, but needs of other | ||||
| restoration mechanisms (e.g., dynamic restoration). As an example, | ||||
| the gain of the proposed FSM mechanism promptly recovering part of | ||||
| the bit rate can be applied to high-priority traffic so that its | ||||
| recovery can be faster without involving central controller, while | ||||
| other classical recovery mechanisms (involving the sending of alarms, | ||||
| their processing, new computations and setup) can be adopted for best | ||||
| effort traffic (as the traffic that cannot be recovered when passing | ||||
| from PM-16QAM to PM-QPSK). The same happens changing the code rate: | ||||
| at fixed baud rate and modulation format, if the code redundancy is | ||||
| increased, the net bit rate is decreased. Again, part of the traffic | ||||
| can be promptly recovered through FSM, while the other by relying on | ||||
| classical recovery mechanisms. A future version of the draft will | ||||
| expand the list of actions also including the mechanism for recovery | ||||
| the remaining traffic. | ||||
| 6. Code of the YANG model for transponder reconfiguration | 6. Code of the YANG model for transponder reconfiguration | |||
| The related code is reported below. | The related code is reported below. | |||
| <CODE BEGINS> file "ietf-treconf@2016-03-15.yang" | <CODE BEGINS> file "ietf-treconf@2016-03-15.yang" | |||
| module ietf-treconf { | module ietf-treconf { | |||
| namespace "http://sssup.it/fsm"; | namespace "http://sssup.it/fsm"; | |||
| prefix fsm; | prefix fsm; | |||
| organization | organization | |||
| "Scuola Superiore Sant'Anna Network and Services Laboratory"; | "Scuola Superiore Sant'Anna Network and Services Laboratory"; | |||
| contact | contact | |||
| " Editor: Matteo Dallaglio | " Editor: Matteo Dallaglio | |||
| <mailto:m.dallaglio@sssup.it> | <mailto:m.dallaglio@sssup.it> | |||
| "; | "; | |||
| description | description | |||
| "This module contains a YANG definitions of a generic finite state machine."; | "This module contains a YANG definitions of a generic finite state | |||
| machine."; | ||||
| revision 2016-03-15 { | revision 2016-03-15 { | |||
| description "Initial Revision."; | description "Initial Revision."; | |||
| reference | reference | |||
| "RFC xxxx:"; | "RFC xxxx:"; | |||
| } | } | |||
| identity TRANSITION { | identity TRANSITION { | |||
| description "Base for all types of event"; | description "Base for all types of event"; | |||
| } | } | |||
| skipping to change at page 10, line 4 ¶ | skipping to change at page 10, line 43 ¶ | |||
| "The event when the database changes."; | "The event when the database changes."; | |||
| } | } | |||
| // typedef statements | // typedef statements | |||
| typedef transition-type { | typedef transition-type { | |||
| description "it defines the transition type"; | description "it defines the transition type"; | |||
| type identityref { | type identityref { | |||
| base TRANSITION; | base TRANSITION; | |||
| } | } | |||
| } | } | |||
| typedef transition-id-type { | typedef transition-id-type { | |||
| description "it defines the transition id type"; | description "it defines the transition id type"; | |||
| type uint32; | type uint32; | |||
| } | } | |||
| // grouping statements | // grouping statements | |||
| grouping action-block { | grouping action-block { | |||
| description "it defines the grouping action"; | description "it defines the grouping action"; | |||
| leaf id { | leaf id { | |||
| description "it defines the id of the transition"; | description "it defines the id of the transition"; | |||
| type transition-id-type; | type transition-id-type; | |||
| } | } | |||
| leaf type { | leaf type { | |||
| description "it defines if the action has to be simply executed or if a conditional statement has to be checked before execution"; | description "it defines if the action has to be simply executed | |||
| or if a conditional statement has to be checked before execution"; | ||||
| type enumeration { | type enumeration { | |||
| enum "CONDITIONAL_OP"{ | enum "CONDITIONAL_OP"{ | |||
| description "it defines the type CONDITIONAL OPERATION to check a statement before execution. In this draft, at the moment, only SIMPLE will be assumed"; | description "it defines the type CONDITIONAL OPERATION to check a | |||
| statement before execution. In this draft, at the moment, only SIMPLE | ||||
| will be assumed"; | ||||
| } | } | |||
| enum "SIMPLE_OP"{ | enum "SIMPLE_OP"{ | |||
| description "it defines the type SIMPLE OPERATION: i.e., an operation to be directly executed; | description "it defines the type SIMPLE OPERATION: i.e., an operation | |||
| to be directly executed; | ||||
| } | } | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| } | } | |||
| grouping execution-top { | grouping execution-top { | |||
| description "it defines the execution attribute"; | description "it defines the execution attribute"; | |||
| anyxml execute { | anyxml execute { | |||
| description "Represent the action to perform"; | description "Represent the action to perform"; | |||
| } | } | |||
| skipping to change at page 11, line 4 ¶ | skipping to change at page 11, line 47 ¶ | |||
| description "the id of the next action to execute"; | description "the id of the next action to execute"; | |||
| } | } | |||
| } | } | |||
| container simple { | container simple { | |||
| when "../type = 'SIMPLE_OP'"; | when "../type = 'SIMPLE_OP'"; | |||
| description | description | |||
| "Simple execution of an action without checking any condition"; | "Simple execution of an action without checking any condition"; | |||
| uses execution-top; | uses execution-top; | |||
| } | } | |||
| } | } | |||
| grouping action-top { | grouping action-top { | |||
| description "it defines the grouping of action"; | description "it defines the grouping of action"; | |||
| list action { | list action { | |||
| description "it defines the list of actions"; | description "it defines the list of actions"; | |||
| key "id"; | key "id"; | |||
| ordered-by user; | ordered-by user; | |||
| uses action-block; | uses action-block; | |||
| } | } | |||
| } | } | |||
| grouping on-change { | grouping on-change { | |||
| description | description | |||
| "Event occuring when a modification of one or more | "Event occuring when a modification of one or more | |||
| objects occurs"; | objects occurs"; | |||
| leaf threshold-parameter { | leaf threshold-parameter { | |||
| description "it defines the threshold of an event determined by a threshold exceed"; | description "it defines the threshold of an event determined by | |||
| a threshold exceed"; | ||||
| type decimal64; | type decimal64; | |||
| } | } | |||
| leaf threshold-operator { | leaf threshold-operator { | |||
| description "it defines the operator to check the threshold exceed: <, > <=, >="; | description "it defines the operator to check the threshold | |||
| exceed: <, > <=, >="; | ||||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| grouping transition-top { | grouping transition-top { | |||
| description "it defines the grouping transition"; | description "it defines the grouping transition"; | |||
| leaf name { | leaf name { | |||
| description "it defines the transition name"; | description "it defines the transition name"; | |||
| type string; | type string; | |||
| skipping to change at page 12, line 6 ¶ | skipping to change at page 13, line 4 ¶ | |||
| leaf description { | leaf description { | |||
| description "it describes the transition with a string"; | description "it describes the transition with a string"; | |||
| type string; | type string; | |||
| } | } | |||
| // list of all possible events | // list of all possible events | |||
| uses on-change { | uses on-change { | |||
| when "type = 'ON_CHANGE'"; | when "type = 'ON_CHANGE'"; | |||
| } | } | |||
| container transition-action { | container transition-action { | |||
| description "it defines the container actions to take during the transition"; | description "it defines the container actions to take during the | |||
| transition"; | ||||
| uses action-top; | uses action-top; | |||
| } | } | |||
| } | } | |||
| grouping transitions-top { | grouping transitions-top { | |||
| description "it defines the grouping transition"; | description "it defines the grouping transition"; | |||
| container transitions { | container transitions { | |||
| description "it defines the container transitions"; | description "it defines the container transitions"; | |||
| list transition { | list transition { | |||
| description "it defines the list of transitions"; | description "it defines the list of transitions"; | |||
| End of changes. 20 change blocks. | ||||
| 41 lines changed or deleted | 84 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/ | ||||