| draft-ietf-netconf-configuration-tracing-05.txt | draft-ietf-netconf-configuration-tracing-06.txt | |||
|---|---|---|---|---|
| OPSAWG J. Quilbeuf | OPSAWG J. Quilbeuf | |||
| Internet-Draft B. Claise | Internet-Draft Huawei | |||
| Intended status: Standards Track Huawei | Intended status: Standards Track B. Claise | |||
| Expires: 19 September 2025 T. Graf | Expires: 7 May 2026 Everything OPS | |||
| T. Graf | ||||
| Swisscom | Swisscom | |||
| D. Lopez | D. Lopez | |||
| Telefonica I+D | Telefonica I+D | |||
| Q. Sun | Q. Sun | |||
| China Telecom | China Telecom | |||
| 18 March 2025 | 3 November 2025 | |||
| External Trace ID for Configuration Tracing | External Trace ID for Configuration Tracing | |||
| draft-ietf-netconf-configuration-tracing-05 | draft-ietf-netconf-configuration-tracing-06 | |||
| Abstract | Abstract | |||
| Network equipment are often configured by a variety of network | Network equipment are often configured by a variety of network | |||
| management systems (NMS), protocols, and teams. If a network issue | management systems (NMS), protocols, and teams. If a network issue | |||
| arises (e.g., because of a wrong configuration change), it is | arises (e.g., because of a wrong configuration change), it is | |||
| important to quickly identify the root cause and obtain the reason | important to quickly identify the root cause and obtain the reason | |||
| for pushing that modification. Another potential network issue can | for pushing that modification. Another potential network issue can | |||
| stem from concurrent NMSes with overlapping intents, each having | stem from concurrent NMSes with overlapping intents, each having | |||
| their own tasks to perform. In such a case, it is important to map | their own tasks to perform. In such a case, it is important to map | |||
| skipping to change at page 2, line 15 ¶ | skipping to change at page 2, line 20 ¶ | |||
| 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 19 September 2025. | This Internet-Draft will expire on 7 May 2026. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 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 7, line 39 ¶ | skipping to change at page 7, line 39 ¶ | |||
| Orchestrator. For 'tx-2' and 'tx-3', the client is the id of the | Orchestrator. For 'tx-2' and 'tx-3', the client is the id of the | |||
| Controller. | Controller. | |||
| It is technically possible that several clients push configuration to | It is technically possible that several clients push configuration to | |||
| the candidate configuration datastore and only one of them commits | the candidate configuration datastore and only one of them commits | |||
| the changes to the running configuration datastore. From the running | the changes to the running configuration datastore. From the running | |||
| configuration datastore perspective, which is the effective one, | configuration datastore perspective, which is the effective one, | |||
| there is a single modification, but caused by several clients, which | there is a single modification, but caused by several clients, which | |||
| means that this modification should have several corresponding | means that this modification should have several corresponding | |||
| client-ids. Although, this case is technically possible, it is a bad | client-ids. Although, this case is technically possible, it is a bad | |||
| practice. We won’t cover it in this document. In other terms, we | practice. We won't cover it in this document. In other terms, we | |||
| assume that a given configuration modification on a server is caused | assume that a given configuration modification on a server is caused | |||
| by a single client, and thus has a single corresponding client-id. | by a single client, and thus has a single corresponding client-id. | |||
| 4.4. Using the YANG module | 4.4. Using the YANG module | |||
| The YANG module defined below enables tracing a configuration change | The YANG module defined below enables tracing a configuration change | |||
| in a Network Equipment back to its origin, for instance a service | in a Network Equipment back to its origin, for instance a service | |||
| request in an orchestrator. To do so, the Anomaly Detection System | request in an orchestrator. To do so, the Anomaly Detection System | |||
| (ADS) should have, for each client-id, access to some credentials | (ADS) should have, for each client-id, access to some credentials | |||
| enabling read access to the YANG module for configuration tracing on | enabling read access to the YANG module for configuration tracing on | |||
| skipping to change at page 10, line 23 ¶ | skipping to change at page 10, line 23 ¶ | |||
| The presence of a client-id indicates that the trace-parent has been | The presence of a client-id indicates that the trace-parent has been | |||
| transmitted by that client. If the trace is initiated by the current | transmitted by that client. If the trace is initiated by the current | |||
| server, there is no associated client-id. | server, there is no associated client-id. | |||
| Even if this document focuses only on NETCONF or RESTCONF, the use | Even if this document focuses only on NETCONF or RESTCONF, the use | |||
| cases defined in Section 3 are not specific to NETCONF or RESTCONF | cases defined in Section 3 are not specific to NETCONF or RESTCONF | |||
| and the mechanism described in this document could be adapted to | and the mechanism described in this document could be adapted to | |||
| other configuration mechanisms. For instance, a configuration | other configuration mechanisms. For instance, a configuration | |||
| modification pushed via CLI can be identified via a label, which | modification pushed via CLI can be identified via a label, which | |||
| could contain the trace-parent. As such cases are difficult to | could contain the trace-parent. As such cases are difficult to | |||
| standardize, we won’t cover them in this document. | standardize, we won't cover them in this document. | |||
| 5.2. YANG module ietf-external-transaction-id | 5.2. YANG module ietf-external-transaction-id | |||
| <CODE BEGINS> file "ietf-external-transaction-id@2021-11-03.yang" | <CODE BEGINS> file "ietf-external-transaction-id@2021-11-03.yang" | |||
| module ietf-external-transaction-id { | module ietf-external-transaction-id { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace | namespace | |||
| "urn:ietf:params:xml:ns:yang:ietf-external-transaction-id"; | "urn:ietf:params:xml:ns:yang:ietf-external-transaction-id"; | |||
| prefix ext-txid; | prefix ext-txid; | |||
| skipping to change at page 15, line 11 ¶ | skipping to change at page 15, line 11 ¶ | |||
| This section is to be removed before publishing as an RFC. | This section is to be removed before publishing as an RFC. | |||
| None | None | |||
| 10. Normative References | 10. Normative References | |||
| [I-D.ietf-netconf-restconf-trace-ctx-headers] | [I-D.ietf-netconf-restconf-trace-ctx-headers] | |||
| Gagliano, R., Larsson, K., and J. Lindblad, "RESTCONF | Gagliano, R., Larsson, K., and J. Lindblad, "RESTCONF | |||
| Extension to Support Trace Context Headers", Work in | Extension to Support Trace Context Headers", Work in | |||
| Progress, Internet-Draft, draft-ietf-netconf-restconf- | Progress, Internet-Draft, draft-ietf-netconf-restconf- | |||
| trace-ctx-headers-06, 3 March 2025, | trace-ctx-headers-07, 19 October 2025, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-netconf- | <https://datatracker.ietf.org/doc/html/draft-ietf-netconf- | |||
| restconf-trace-ctx-headers-06>. | restconf-trace-ctx-headers-07>. | |||
| [I-D.ietf-netconf-trace-ctx-extension] | [I-D.ietf-netconf-trace-ctx-extension] | |||
| Gagliano, R., Larsson, K., and J. Lindblad, "NETCONF | Gagliano, R., Larsson, K., and J. Lindblad, "NETCONF | |||
| Extension to support Trace Context propagation", Work in | Extension to support Trace Context propagation", Work in | |||
| Progress, Internet-Draft, draft-ietf-netconf-trace-ctx- | Progress, Internet-Draft, draft-ietf-netconf-trace-ctx- | |||
| extension-04, 3 March 2025, | extension-05, 19 October 2025, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-netconf- | <https://datatracker.ietf.org/doc/html/draft-ietf-netconf- | |||
| trace-ctx-extension-04>. | trace-ctx-extension-05>. | |||
| [I-D.ietf-netconf-transaction-id] | [I-D.ietf-netconf-transaction-id] | |||
| Lindblad, J., "Transaction ID Mechanism for NETCONF", Work | Lindblad, J., "Transaction ID Mechanism for NETCONF", Work | |||
| in Progress, Internet-Draft, draft-ietf-netconf- | in Progress, Internet-Draft, draft-ietf-netconf- | |||
| transaction-id-07, 19 October 2024, | transaction-id-07, 19 October 2024, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-netconf- | <https://datatracker.ietf.org/doc/html/draft-ietf-netconf- | |||
| transaction-id-07>. | transaction-id-07>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| skipping to change at page 16, line 29 ¶ | skipping to change at page 16, line 29 ¶ | |||
| "W3C Recommendation on Trace Context", 23 November 2021, | "W3C Recommendation on Trace Context", 23 November 2021, | |||
| <https://www.w3.org/TR/2021/REC-trace-context- | <https://www.w3.org/TR/2021/REC-trace-context- | |||
| 1-20211123/>. | 1-20211123/>. | |||
| 11. Informative References | 11. Informative References | |||
| [I-D.ietf-netmod-rfc8407bis] | [I-D.ietf-netmod-rfc8407bis] | |||
| Bierman, A., Boucadair, M., and Q. Wu, "Guidelines for | Bierman, A., Boucadair, M., and Q. Wu, "Guidelines for | |||
| Authors and Reviewers of Documents Containing YANG Data | Authors and Reviewers of Documents Containing YANG Data | |||
| Models", Work in Progress, Internet-Draft, draft-ietf- | Models", Work in Progress, Internet-Draft, draft-ietf- | |||
| netmod-rfc8407bis-22, 14 January 2025, | netmod-rfc8407bis-28, 5 June 2025, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | <https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | |||
| rfc8407bis-22>. | rfc8407bis-28>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
| skipping to change at page 17, line 9 ¶ | skipping to change at page 17, line 9 ¶ | |||
| [RFC9417] Claise, B., Quilbeuf, J., Lopez, D., Voyer, D., and T. | [RFC9417] Claise, B., Quilbeuf, J., Lopez, D., Voyer, D., and T. | |||
| Arumugam, "Service Assurance for Intent-Based Networking | Arumugam, "Service Assurance for Intent-Based Networking | |||
| Architecture", RFC 9417, DOI 10.17487/RFC9417, July 2023, | Architecture", RFC 9417, DOI 10.17487/RFC9417, July 2023, | |||
| <https://www.rfc-editor.org/info/rfc9417>. | <https://www.rfc-editor.org/info/rfc9417>. | |||
| Appendix A. Changes between revisions | Appendix A. Changes between revisions | |||
| This section is to be removed before publishing as an RFC. | This section is to be removed before publishing as an RFC. | |||
| 05 -> 06 | ||||
| * Change Benoit's affiliation | ||||
| 04 -> 05 | 04 -> 05 | |||
| * Fix security considerations template | * Fix security considerations template | |||
| 03 -> 04 | 03 -> 04 | |||
| * Add security and IANA considerations | * Add security and IANA considerations | |||
| 01 -> 02 | 01 -> 02 | |||
| skipping to change at page 17, line 42 ¶ | skipping to change at page 18, line 4 ¶ | |||
| 00 -> 01 | 00 -> 01 | |||
| * Define Parent and Child Transaction | * Define Parent and Child Transaction | |||
| * Context for the "local-commit-id" concept | * Context for the "local-commit-id" concept | |||
| * Feedback from Med, both in text and YANG module | * Feedback from Med, both in text and YANG module | |||
| Appendix B. Example of NETCONF message | Appendix B. Example of NETCONF message | |||
| <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1" | <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1" | |||
| xmlns:w3ctc="urn:ietf:params:xml:ns:netconf:w3ctc:1.0" | xmlns:w3ctc="urn:ietf:params:xml:ns:netconf:w3ctc:1.0" | |||
| xmlns:ext-txid= | xmlns:ext-txid= | |||
| "urn:ietf:params:xml:ns:yang:ietf-external-transaction-id" | "urn:ietf:params:xml:ns:yang:ietf-external-transaction-id" | |||
| w3ctc:traceparent= | w3ctc:traceparent= | |||
| "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01" | "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01" | |||
| ext-txid:client-id="controller-01"> | ext-txid:client-id="controller-01"> | |||
| <commit/> | <commit/> | |||
| </rpc> | </rpc> | |||
| Figure 4: Example of NETCONF commit RPC with annotations | Figure 4: Example of NETCONF commit RPC with annotations | |||
| In Figure 4, we present an RPC annotated with the traceparent and the | In Figure 4, we present an RPC annotated with the traceparent and the | |||
| client-id. The traceparent example is taken from | client-id. The traceparent example is taken from | |||
| [I-D.ietf-netconf-trace-ctx-extension]. The client-id annotation is | [I-D.ietf-netconf-trace-ctx-extension]. The client-id annotation is | |||
| defined in our YANG module. Here the client-id passed is | defined in our YANG module. Here the client-id passed is | |||
| 'controller-01'. | 'controller-01'. | |||
| Acknowledgements | Acknowledgements | |||
| The authors would like to thank Mohamed Boucadair, Jan Linblad and | The authors would like to thank Mohamed Boucadair, Jan Linblad and | |||
| Roque Gagliano for their reviews and propositions. | Roque Gagliano for their reviews and propositions. | |||
| Authors' Addresses | Authors' Addresses | |||
| Jean Quilbeuf | Jean Quilbeuf | |||
| Huawei | Huawei | |||
| Email: jean.quilbeuf@huawei.com | Email: jean.quilbeuf@huawei.com | |||
| Benoit Claise | Benoit Claise | |||
| Huawei | Everything OPS | |||
| Email: benoit.claise@huawei.com | Email: benoit@everything-ops.net | |||
| Thomas Graf | Thomas Graf | |||
| Swisscom | Swisscom | |||
| Binzring 17 | Binzring 17 | |||
| CH-8045 Zurich | CH-8045 Zurich | |||
| Switzerland | Switzerland | |||
| Email: thomas.graf@swisscom.com | Email: thomas.graf@swisscom.com | |||
| Diego R. Lopez | Diego R. Lopez | |||
| Telefonica I+D | Telefonica I+D | |||
| Don Ramon de la Cruz, 82 | Don Ramon de la Cruz, 82 | |||
| Madrid 28006 | Madrid 28006 | |||
| Spain | Spain | |||
| Email: diego.r.lopez@telefonica.com | Email: diego.r.lopez@telefonica.com | |||
| Qiong Sun | Qiong Sun | |||
| China Telecom | China Telecom | |||
| Email: sunqiong@chinatelecom.cn | Email: sunqiong@chinatelecom.cn | |||
| End of changes. 17 change blocks. | ||||
| 18 lines changed or deleted | 22 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||