| < draft-cptb-grow-bmp-yang-01.txt | draft-cptb-grow-bmp-yang-02.txt > | |||
|---|---|---|---|---|
| GROW C. Cardona | GROW C. Cardona | |||
| Internet-Draft P. Lucente | Internet-Draft P. Lucente | |||
| Intended status: Standards Track NTT | Intended status: Standards Track NTT | |||
| Expires: 8 September 2022 T. Graf | Expires: 22 September 2022 T. Graf | |||
| Swisscom | Swisscom | |||
| B. Claise | B. Claise | |||
| Huawei | Huawei | |||
| 7 March 2022 | 21 March 2022 | |||
| BMP YANG Module | BMP YANG Module | |||
| draft-cptb-grow-bmp-yang-01 | draft-cptb-grow-bmp-yang-02 | |||
| Abstract | Abstract | |||
| This document proposes a YANG module for BMP (BGP Monitoring | This document proposes a YANG module for BMP (BGP Monitoring | |||
| Protocol) configuration and monitoring. A complementary RPC triggers | Protocol) configuration and monitoring. A complementary RPC triggers | |||
| a refresh of the session of a BMP station. | a refresh of the session of a BMP station. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| 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 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 22 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 | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| extracted from this document must include Revised BSD License text as | extracted from this document must include Revised BSD License text as | |||
| described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 3. Model summary . . . . . . . . . . . . . . . . . . . . . . . . 2 | 3. Model summary . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Base ietf-bmp YANG module . . . . . . . . . . . . . . . . . . 3 | 4. Base ietf-bmp YANG module . . . . . . . . . . . . . . . . . . 3 | |||
| 4.1. Tree View . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4.1. Tree View . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 4 | 4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 12 | 6.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 13 | |||
| 7. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 6.2. The YANG Module Name Registration . . . . . . . . . . . . 14 | |||
| 8. Normative References . . . . . . . . . . . . . . . . . . . . 12 | 7. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13 | 8. Normative References . . . . . . . . . . . . . . . . . . . . 14 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
| 1. Terminology | 1. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| Routing Information Bases, peers, monitoring stations are defined in | Routing Information Bases, peers, monitoring stations are defined in | |||
| skipping to change at page 3, line 40 ¶ | skipping to change at page 3, line 45 ¶ | |||
| data model. | data model. | |||
| module: ietf-bmp | module: ietf-bmp | |||
| +--rw bmp | +--rw bmp | |||
| +--rw stations | +--rw stations | |||
| | +--rw station* [id] | | +--rw station* [id] | |||
| | +--rw id string | | +--rw id string | |||
| | +--rw connection | | +--rw connection | |||
| | | +--rw destination-address inet:ip-address | | | +--rw destination-address inet:ip-address | |||
| | | +--rw local-address? inet:ip-address | | | +--rw local-address? inet:ip-address | |||
| | | +--rw destination-port? inet:ip-address | | | +--rw destination-port? inet:port-number | |||
| | +--rw bmp_session | | +--rw bmp_session | |||
| | | +--rw initiation-message? string | | | +--rw initiation-message? string | |||
| | | +--rw statistics-interval? uint32 | | | +--rw statistics-interval? uint32 | |||
| | +--rw bmp_sources | | +--rw bmp_sources | |||
| | | +--rw adj-rib-in-pre | | | +--rw adj-rib-in-pre | |||
| | | | +--rw enabled? boolean | | | | +--rw enabled? boolean | |||
| | | | +--rw address-families | | | | +--rw address-families | |||
| | | | +--rw address-family* [name] | | | | +--rw address-family* [name] | |||
| | | | +--rw name leafref | | | | +--rw name leafref | |||
| | | | +--rw peers* union | | | | +--rw peers* union | |||
| skipping to change at page 4, line 24 ¶ | skipping to change at page 4, line 29 ¶ | |||
| | | | +--rw address-family* [name] | | | | +--rw address-family* [name] | |||
| | | | +--rw name leafref | | | | +--rw name leafref | |||
| | | | +--rw peers* union | | | | +--rw peers* union | |||
| | | +--rw adj-rib-out-post | | | +--rw adj-rib-out-post | |||
| | | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| | | +--rw address-families | | | +--rw address-families | |||
| | | +--rw address-family* [name] | | | +--rw address-family* [name] | |||
| | | +--rw name leafref | | | +--rw name leafref | |||
| | | +--rw peers* union | | | +--rw peers* union | |||
| | +--rw session-stats | | +--rw session-stats | |||
| | +--rw discontinuity-time | ||||
| | | yang:date-and-time | ||||
| | +--ro established-session? boolean | | +--ro established-session? boolean | |||
| | +--ro total-route-monitoring-messages? uint32 | | +--ro total-route-monitoring-messages? uint64 | |||
| | +--ro total-statistics-messages? uint32 | | +--ro total-statistics-messages? uint64 | |||
| | +--ro total-peer-down-messages? uint32 | | +--ro total-peer-down-messages? uint64 | |||
| | +--ro total-peer-up-messages? uint32 | | +--ro total-peer-up-messages? uint64 | |||
| | +--ro total-initiation-messages? uint32 | | +--ro total-initiation-messages? uint64 | |||
| | +--ro total-route-mirroring-messages? uint32 | | +--ro total-route-mirroring-messages? uint64 | |||
| +--rw actions | +--rw actions | |||
| +---x session-reset | +---x session-reset | |||
| +---w input | +---w input | |||
| | +---w station? -> /bmp/stations/station/id | | +---w station? -> /bmp/stations/station/id | |||
| +--ro output | +--ro output | |||
| +--ro (outcome)? | +--ro (outcome)? | |||
| +--:(success) | +--:(success) | |||
| | +--ro success? empty | | +--ro success? empty | |||
| +--:(failure) | +--:(failure) | |||
| +--ro failure? string | +--ro failure? string | |||
| 4.2. YANG Module | 4.2. YANG Module | |||
| <CODE BEGINS> file "ietf-bmp@2022-01-27.yang" | <CODE BEGINS> file "ietf-bmp@2022-01-27.yang" | |||
| module ietf-bmp { | module ietf-bmp { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bmp"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bmp"; | |||
| prefix ietf-bmp; | prefix bmp; | |||
| import ietf-yang-types { | ||||
| prefix yang; | ||||
| } | ||||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| reference | reference | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
| } | } | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix rt; | prefix rt; | |||
| reference | reference | |||
| "RFC 8349, A YANG Data Model for Routing Management | "RFC 8349, A YANG Data Model for Routing Management | |||
| skipping to change at page 5, line 14 ¶ | skipping to change at page 5, line 29 ¶ | |||
| prefix inet; | prefix inet; | |||
| reference | reference | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
| } | } | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix rt; | prefix rt; | |||
| reference | reference | |||
| "RFC 8349, A YANG Data Model for Routing Management | "RFC 8349, A YANG Data Model for Routing Management | |||
| (NMDA Version)."; | (NMDA Version)."; | |||
| } | } | |||
| import ietf-bgp-types { | import ietf-bgp-types { | |||
| prefix bt; | prefix bt; | |||
| reference | reference | |||
| "RFC XXXX, BGP YANG Model for Service Provider Network."; | "RFC XXXX: BGP YANG module for Service Provider Network. | |||
| RFC-EDITOR: please update XXX with the RFC ID assigned | ||||
| to I-D.ietf-idr-bgp-model"; | ||||
| } | } | |||
| import ietf-bgp { | import ietf-bgp { | |||
| prefix bgp; | prefix bgp; | |||
| reference | reference | |||
| "RFC XXXX: BGP YANG module for Service Provider Network."; | "RFC XXXX: BGP YANG module for Service Provider Network. | |||
| RFC-EDITOR: please update XXX with the RFC ID assigned | ||||
| to I-D.ietf-idr-bgp-model"; | ||||
| } | ||||
| import ietf-netconf-acm { | ||||
| prefix nacm; | ||||
| reference | ||||
| "RFC 8341: Network Configuration Access Control Model"; | ||||
| } | } | |||
| organization | organization | |||
| "IETF GROW Working Group"; | "IETF GROW Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/grow/> | "WG Web: <https://datatracker.ietf.org/wg/grow/> | |||
| WG List: <mailto:grow@ietf.org> | WG List: <mailto:grow@ietf.org> | |||
| Author: Camilo Cardona | Author: Camilo Cardona | |||
| <mailto:camilo@ntt.net> | <mailto:camilo@ntt.net> | |||
| skipping to change at page 6, line 23 ¶ | skipping to change at page 6, line 49 ¶ | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC 9196 | This version of this YANG module is part of RFC 9196 | |||
| (https://www.rfc-editor.org/info/rfc9196); see the RFC itself | (https://www.rfc-editor.org/info/rfc9196); see the RFC itself | |||
| for full legal notices."; | for full legal notices."; | |||
| revision 2022-01-27 { | revision 2022-01-27 { | |||
| description | description | |||
| "initial version"; | "initial version"; | |||
| reference | reference | |||
| "[RFC-to-be]: BMP YANG Module"; | "RFC YYYY: BMP YANG Module | |||
| RFC-EDITOR: please update YYYY with this RFC ID"; | ||||
| } | } | |||
| typedef bmp-peer-types { | ||||
| typedef bmp_peer_types { | ||||
| type enumeration { | type enumeration { | |||
| enum all_peers { | enum all-peers { | |||
| value 10; | value 10; | |||
| description | description | |||
| "Selects all peers"; | "Selects all peers."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Enum values for peer selection specific for BMP"; | "Enum values for peer selection specific for BMP. The | |||
| all-peers value is an explicit way of defining that the device | ||||
| should send the updates from all peers to the station for | ||||
| a particular RIB/AFI. The module also allows the selection | ||||
| of individual peers (through its remote-address), or use the | ||||
| bgp:peer-type to select the type of peers."; | ||||
| } | } | |||
| grouping bmp_ip_connection { | grouping bmp-ip-connection { | |||
| description | description | |||
| "common elements for defining connectivity | "common elements for defining connectivity | |||
| to a bmp station"; | to a bmp station"; | |||
| leaf destination-address { | leaf destination-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Destination IP address of station"; | "Destination IP address of station"; | |||
| } | } | |||
| leaf local-address { | leaf local-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Local IP address to source connections"; | "Local IP address to source connections"; | |||
| } | } | |||
| leaf destination-port { | leaf destination-port { | |||
| type inet:ip-address; | type inet:port-number; | |||
| description | description | |||
| "Destination port for connections"; | "Destination port for connections"; | |||
| } | } | |||
| } | } | |||
| grouping bmp_peer_ribs_filter { | grouping bmp-peer-ribs-filter { | |||
| description | description | |||
| "Leaves for configuring RIBs where | "Leaves for configuring RIBs where | |||
| origin/destination peers are well defined."; | origin/destination peers are well defined."; | |||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables the specified RIB"; | "Enables the specified RIB"; | |||
| } | } | |||
| container address-families { | container address-families { | |||
| description | description | |||
| skipping to change at page 7, line 46 ¶ | skipping to change at page 8, line 30 ¶ | |||
| "Name of the address family"; | "Name of the address family"; | |||
| } | } | |||
| leaf-list peers { | leaf-list peers { | |||
| type union { | type union { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols/" | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/bgp:bgp/" | + "rt:control-plane-protocol/bgp:bgp/" | |||
| + "bgp:neighbors/bgp:neighbor/bgp:remote-address"; | + "bgp:neighbors/bgp:neighbor/bgp:remote-address"; | |||
| } | } | |||
| type bt:peer-type; | type bt:peer-type; | |||
| type bmp_peer_types; | type bmp-peer-types; | |||
| } | } | |||
| description | description | |||
| "Peers can be identified by a remote-address, | "Peers can be identified by a remote-address, | |||
| or by a enum value corresponding to groups of peers. | or by an enum value corresponding to groups of peers. | |||
| This way an operator can select all external peers, | This way an operator can select all external peers, | |||
| all internal peers, or all peers."; | all internal peers, or all peers."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping bmp_route_monitoring_sources { | grouping bmp-route-monitoring-sources { | |||
| description | description | |||
| ""; | ""; | |||
| container adj-rib-in-pre { | container adj-rib-in-pre { | |||
| description | description | |||
| "Configuration for the adj-rib-in pre-policy"; | "Configuration for the adj-rib-in pre-policy"; | |||
| uses bmp_peer_ribs_filter; | reference | |||
| "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; | ||||
| uses bmp-peer-ribs-filter; | ||||
| } | } | |||
| container adj-rib-in-post { | container adj-rib-in-post { | |||
| description | description | |||
| "Configuration for the adj-rib-in post-policy"; | "Configuration for the adj-rib-in post-policy"; | |||
| uses bmp_peer_ribs_filter; | reference | |||
| "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; | ||||
| uses bmp-peer-ribs-filter; | ||||
| } | } | |||
| container local-rib { | container local-rib { | |||
| description | description | |||
| "Configuration for the local-rib"; | "Configuration for the local-rib"; | |||
| reference | ||||
| "RFC9069: Support for Local RIB in the BGP Monitoring | ||||
| Protocol (BMP), Section 3."; | ||||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables the specified RIB"; | "Enables the specified RIB"; | |||
| } | } | |||
| leaf-list address-families { | leaf-list address-families { | |||
| type identityref { | type identityref { | |||
| base bt:afi-safi-type; | base bt:afi-safi-type; | |||
| } | } | |||
| description | description | |||
| "List of address families to enable for | "List of address families to enable for | |||
| local-rib."; | local-rib."; | |||
| } | } | |||
| } | } | |||
| container adj-rib-out-pre { | container adj-rib-out-pre { | |||
| description | description | |||
| "Configuration for the adj-rib-out pre-policy"; | "Configuration for the adj-rib-out pre-policy"; | |||
| uses bmp_peer_ribs_filter; | uses bmp-peer-ribs-filter; | |||
| reference | ||||
| "RFC8671: Support for Adj-RIB-Out in the BGP Monitoring | ||||
| Protocol (BMP) , Section 3."; | ||||
| } | } | |||
| container adj-rib-out-post { | container adj-rib-out-post { | |||
| description | description | |||
| "Configuration for the adj-rib-out post-policy"; | "Configuration for the adj-rib-out post-policy"; | |||
| uses bmp_peer_ribs_filter; | uses bmp-peer-ribs-filter; | |||
| reference | ||||
| "RFC8671: Support for Adj-RIB-Out in the BGP Monitoring | ||||
| Protocol (BMP) , Section 3."; | ||||
| } | } | |||
| } | } | |||
| grouping bmp_session_options { | ||||
| grouping bmp-session-options { | ||||
| description | description | |||
| "leaves for configuration of the bmp session"; | "leaves for configuration of the bmp session"; | |||
| leaf initiation-message { | leaf initiation-message { | |||
| type string; | type string; | |||
| description | description | |||
| "User defined message to append to the | "User defined message to append to the | |||
| initiation message"; | initiation message"; | |||
| } | } | |||
| leaf statistics-interval { | leaf statistics-interval { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Default Interval for statistic message."; | "Default Interval for statistic message."; | |||
| skipping to change at page 9, line 40 ¶ | skipping to change at page 10, line 38 ¶ | |||
| leaf id { | leaf id { | |||
| type string; | type string; | |||
| description | description | |||
| "Identification string for the station"; | "Identification string for the station"; | |||
| } | } | |||
| // Connection, missing tcp tuning params | // Connection, missing tcp tuning params | |||
| // like keep-alives, segment sizes, etc. | // like keep-alives, segment sizes, etc. | |||
| container connection { | container connection { | |||
| description | description | |||
| "Connection details for the station"; | "Connection details for the station"; | |||
| uses bmp_ip_connection; | uses bmp-ip-connection; | |||
| } | } | |||
| container bmp_session { | container bmp_session { | |||
| description | description | |||
| "BMP session options for the station"; | "BMP session options for the station"; | |||
| uses bmp_session_options; | uses bmp-session-options; | |||
| } | } | |||
| container bmp_sources { | container bmp_sources { | |||
| description | description | |||
| "Configuration of the data sources for the station"; | "Configuration of the data sources for the station"; | |||
| uses bmp_route_monitoring_sources; | uses bmp-route-monitoring-sources; | |||
| } | } | |||
| container session-stats { | container session-stats { | |||
| description | description | |||
| "stats and operational values for the station"; | "stats and operational values for the station"; | |||
| leaf discontinuity-time { | ||||
| type yang:date-and-time; | ||||
| mandatory true; | ||||
| description | ||||
| "The time on the most recent occasion at which any one | ||||
| or more of this station's counters suffered a | ||||
| discontinuity. If no such discontinuities have | ||||
| occurred since the last re-initialization of the local | ||||
| management subsystem, then this node contains the time | ||||
| the local management subsystem re-initialized | ||||
| itself."; | ||||
| } | ||||
| leaf established-session { | leaf established-session { | |||
| type boolean; | type boolean; | |||
| config false; | config false; | |||
| description | description | |||
| "Value indicating if the session is currently | "Value indicating if the session is currently | |||
| established"; | established"; | |||
| } | } | |||
| leaf total-route-monitoring-messages { | leaf total-route-monitoring-messages { | |||
| type uint32; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Number of route-monitoring messages sent since last | "Number of route-monitoring messages sent since last | |||
| successful connection"; | successful connection"; | |||
| } | } | |||
| leaf total-statistics-messages { | leaf total-statistics-messages { | |||
| type uint32; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Number of statistics messages sent since last | "Number of statistics messages sent since last | |||
| successful connection"; | successful connection"; | |||
| } | } | |||
| leaf total-peer-down-messages { | leaf total-peer-down-messages { | |||
| type uint32; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Number of peer-down messages sent since last | "Number of peer-down messages sent since last | |||
| successful connection"; | successful connection"; | |||
| } | } | |||
| leaf total-peer-up-messages { | leaf total-peer-up-messages { | |||
| type uint32; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Number of peer-up messages sent since last successful | "Number of peer-up messages sent since last successful | |||
| connection"; | connection"; | |||
| } | } | |||
| leaf total-initiation-messages { | leaf total-initiation-messages { | |||
| type uint32; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Number of initiation messages sent since last | "Number of initiation messages sent since last | |||
| successful connection"; | successful connection"; | |||
| } | } | |||
| leaf total-route-mirroring-messages { | leaf total-route-mirroring-messages { | |||
| type uint32; | type uint64; | |||
| config false; | config false; | |||
| description | description | |||
| "Number of route-mirroring messages sent since last | "Number of route-mirroring messages sent since last | |||
| successful connection"; | successful connection"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container actions { | container actions { | |||
| nacm:default-deny-all; | ||||
| description | description | |||
| "Container with the actions for the BMP operation"; | "Container with the actions for the BMP operation"; | |||
| action session-reset { | action session-reset { | |||
| description | description | |||
| "Resets the session for a station."; | "Resets the session for a station."; | |||
| input { | input { | |||
| leaf station { | leaf station { | |||
| type leafref { | type leafref { | |||
| path "/bmp/stations/station/id"; | path "/bmp/stations/station/id"; | |||
| } | } | |||
| skipping to change at page 12, line 13 ¶ | skipping to change at page 13, line 24 ¶ | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. Security Considerations | 5. Security Considerations | |||
| The YANG module specified in this document defines a schema for data | The YANG module specified in this document defines a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC8446]. | [RFC8446]. The NETCONF Access Control Model (NACM) [RFC8341] | |||
| provides the means to restrict access for particular NETCONF or | ||||
| RESTCONF users to a preconfigured subset of all available NETCONF or | ||||
| RESTCONF protocol operations and content. | ||||
| BGP data is sensible for security considerations. The model | BGP data is sensible for security considerations. The model | |||
| described in this document could be used to send BGP information to | described in this document could be used to send BGP information to | |||
| malicious BMP stations. Write access to this model should therefore | malicious BMP stations. Write access to this model should therefore | |||
| be properly protected. | be properly protected. | |||
| The session-reset action can demand considerable amount of resources | The session-reset action can demand considerable amount of resources | |||
| from network elements. It should thus be protected from illegal | from network elements. It should thus be protected from illegal | |||
| access. | access. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| 6.1. The IETF XML Registry | 6.1. The IETF XML Registry | |||
| This document registers two URIs in the IETF XML registry [RFC3688]. | This document registers a URIs in the IETF XML registry [RFC3688]. | |||
| Following the format in [RFC3688], the following registrations are | Following the format in [RFC3688], the following registrations are | |||
| requested: | requested: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-bmp | URI: urn:ietf:params:xml:ns:yang:ietf-bmp | |||
| Registrant Contact: The NETCONF WG of the IETF. | Registrant Contact: The IESG. | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| 6.2. The YANG Module Name Registration | ||||
| This document registers the following YANG module in the " YANG | ||||
| Module Names" registry registry [RFC6020]: | ||||
| Name: ietf-bmp | ||||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-bmp | ||||
| Prefix: bmp | ||||
| Reference: [This RFC-to-be] | ||||
| 7. Open Issues | 7. Open Issues | |||
| Shall we copy the TCP tuning and security parameters from the BGP | Shall we copy the TCP tuning and security parameters from the BGP | |||
| specifications? | specifications? | |||
| The security considerations section will have to be aligned with | The security considerations section will have to be aligned with | |||
| https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines | https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines | |||
| 8. Normative References | 8. Normative References | |||
| [I-D.ietf-idr-bgp-model] | ||||
| Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP | ||||
| YANG Model for Service Provider Networks", Work in | ||||
| Progress, Internet-Draft, draft-ietf-idr-bgp-model-13, 6 | ||||
| March 2022, <https://www.ietf.org/archive/id/draft-ietf- | ||||
| idr-bgp-model-13.txt>. | ||||
| [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, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [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 | ||||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | ||||
| DOI 10.17487/RFC6020, October 2010, | ||||
| <https://www.rfc-editor.org/info/rfc6020>. | ||||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | ||||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | ||||
| <https://www.rfc-editor.org/info/rfc6991>. | ||||
| [RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP | [RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP | |||
| Monitoring Protocol (BMP)", RFC 7854, | Monitoring Protocol (BMP)", RFC 7854, | |||
| DOI 10.17487/RFC7854, June 2016, | DOI 10.17487/RFC7854, June 2016, | |||
| <https://www.rfc-editor.org/info/rfc7854>. | <https://www.rfc-editor.org/info/rfc7854>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Access Control Model", STD 91, RFC 8341, | ||||
| DOI 10.17487/RFC8341, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8341>. | ||||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | ||||
| Routing Management (NMDA Version)", RFC 8349, | ||||
| DOI 10.17487/RFC8349, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8349>. | ||||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| Acknowledgements | Acknowledgements | |||
| The authors would like to thank Pierre Vander Vorst for his review | The authors would like to thank Pierre Vander Vorst and Tom Petch for | |||
| and feedback. | their review and feedback. | |||
| Authors' Addresses | Authors' Addresses | |||
| Camilo Cardona | Camilo Cardona | |||
| NTT | NTT | |||
| 164-168, Carrer de Numancia | 164-168, Carrer de Numancia | |||
| 08029 Barcelona | 08029 Barcelona | |||
| Spain | Spain | |||
| Email: camilo@ntt.net | Email: camilo@ntt.net | |||
| Paolo Lucente | Paolo Lucente | |||
| End of changes. 53 change blocks. | ||||
| 54 lines changed or deleted | 148 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/ | ||||