All Downloads are FREE. Search and download functionalities are using the official Maven repository.

[email protected] Maven / Gradle / Ivy

The newest version!
module bgp-openconfig-extensions {
    yang-version 1;
    namespace "urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions";
    prefix "odl-oc-ext";

    import openconfig-bgp-types { prefix bgp-types; }
    import openconfig-network-instance { prefix netinst; }
    import openconfig-bgp { prefix openconfig-bgp; }
    import ietf-inet-types { prefix inet; }
    import yang-ext { prefix ext; revision-date 2013-07-09; }
    import openconfig-bgp-operational { prefix bgp-op; }

    organization "Cisco Systems, Inc.";
    contact "Milos Fabian ";

    description
        "This module contains the custom extensions to the
        draft-ietf-idr-bgp-model-00 Yang data models.

        Copyright (c)2015 Cisco Systems, Inc. All rights reserved.

        This program and the accompanying materials are made available
        under the terms of the Eclipse Public License v1.0 which
        accompanies this distribution, and is available at
        http://www.eclipse.org/legal/epl-v10.html";

    revision "2018-03-29" {
        description "Add support for add-path for all afi/safi.";
    }

    revision 2018-03-21 {
        description "Augment Peer group with transport config.";
    }

    revision 2017-12-07 {
        description "Add support for add-path in base BGP NLRI.";
    }

    revision 2016-06-14 {
        description
            "Update to follow naming conventions.";
    }

    revision 2015-09-30 {
        description "Initial revision";
    }

    identity IPV4-FLOW {
        base bgp-types:afi-safi-type;
        description
          "IPv4 Flow specification (AFI,SAFI = 1,133)";
        reference "https://tools.ietf.org/html/rfc5575";
    }

    identity IPV6-FLOW {
        base bgp-types:afi-safi-type;
        description
          "IPv6 Flow specification (AFI,SAFI = 2,133)";
        reference "https://tools.ietf.org/html/draft-ietf-idr-flow-spec-v6-06";
    }

    identity IPV6-L3VPN-FLOW {
        base bgp-types:afi-safi-type;
        description
          "IPv6 Flow specification (AFI,SAFI = 2,133)";
        reference "https://tools.ietf.org/html/draft-ietf-idr-flow-spec-v6-06";
    }

    identity IPV4-L3VPN-FLOW {
        base bgp-types:afi-safi-type;
        description
          "IPv6 Flow specification (AFI,SAFI = 2,133)";
        reference "https://tools.ietf.org/html/rfc5575";
    }

    identity LINKSTATE {
        base bgp-types:afi-safi-type;
        description
          "Link-State (AFI,SAFI = 16388,71)";
        reference "https://tools.ietf.org/html/rfc7752";
    }

    identity IPV4-MCAST-VPN {
        base bgp-types:afi-safi-type;
        description
            "Multicast IPv4 VPN (AFI,SAFI = 1,5)";
        reference "RFC6514";
    }

    identity IPV6-MCAST-VPN {
        base bgp-types:afi-safi-type;
        description
            "Multicast IPv6 VPN (AFI,SAFI = 2,5)";
        reference "RFC6514";
    }

    identity ROUTE-TARGET-CONSTRAIN {
        base bgp-types:afi-safi-type;
        description
            "Route Target constrains (AFI,SAFI = 1,132)";
        reference "RFC4684";
    }

    grouping transport-config {
        leaf remote-port {
            type inet:port-number;
            default 179;
            description
                "Remote port being used by the peer for the TCP session
                 supporting the BGP session";
        }
    }

    grouping neighbor-afi-safi-ll-graceful-restart-state {
        leaf ll-received {
            type boolean;
            description
                "This leaf indicates whether the neighbor advertised the
                ability to support long-lived graceful-restart for this AFI-SAFI";
        }
        leaf ll-advertised {
            type boolean;
            description
                "This leaf indicates whether the ability to support
                long-lived graceful-restart has been advertised to the peer";
        }
        leaf ll-stale-timer {
            type uint32;
            description
                "Value of timer used during long-lived graceful restart in nseconds.
                If table is both advertised and received use lower value. Zero value
                means table is not supported by any side";
            units seconds;
        }
    }

    augment /netinst:network-instances/netinst:network-instance/netinst:protocols/netinst:protocol {
        ext:augment-identifier network-instance-protocol;
        uses openconfig-bgp:bgp-top {
            augment bgp/neighbors/neighbor/afi-safis/afi-safi {
                ext:augment-identifier neighbor-add-paths-config;
                uses openconfig-bgp:bgp-neighbor-add-paths_config;
            }
            augment bgp/global/afi-safis/afi-safi {
                ext:augment-identifier global-add-paths-config;
                uses openconfig-bgp:bgp-neighbor-add-paths_config;
            }
            augment bgp/global/afi-safis/afi-safi/state {
                ext:augment-identifier global-afi-safi_state-augmentation;
                uses bgp-op:bgp-global-afi-safi_state;
            }
            augment bgp/neighbors/neighbor/transport/config {
                ext:augment-identifier neighbor-transport-config;
                uses transport-config;
            }
            augment bgp/neighbors/neighbor/config {
                ext:augment-identifier neighbor-peer-group-config;
                description
                    "Augmentation to allow association of a neighbor with a
                     peer-group";
                uses openconfig-bgp:bgp-neighbor-peer-group_config;
            }
            augment bgp/global/config {
                ext:augment-identifier global-config-augmentation;
                leaf route-reflector-cluster-id {
                    type bgp-types:rr-cluster-id-type;
                    description
                      "Route-reflector cluster id to use when local router is
                      configured as a route reflector.";
                  }
            }
            augment bgp/neighbors/neighbor/state {
                ext:augment-identifier neighbor_state-augmentation;
                uses bgp-op:bgp-neighbor_state;
            }
            augment bgp/neighbors/neighbor/state {
                ext:augment-identifier bgp-neighbor_state-augmentation;
                container messages {
                    container sent {
                        uses bgp-op:bgp-neighbor-message-counters-sent_state;
                    }

                    container received {
                        uses bgp-op:bgp-neighbor-message-counters-received_state;
                    }
                }

                container queues {
                    uses bgp-op:bgp-neighbor-queue-counters_state;
                }
            }
            augment bgp/neighbors/neighbor/timers/state {
                ext:augment-identifier neighbor-timers_state-augmentation;
                uses bgp-op:bgp-neighbor-timers_state;
            }
            augment bgp/neighbors/neighbor/transport/state {
                ext:augment-identifier neighbor-transport_state-augmentation;
                uses bgp-op:bgp-neighbor-transport_state;
            }
            augment bgp/neighbors/neighbor/error-handling/state {
                ext:augment-identifier neighbor-error-handling_state-augmentation;
                uses bgp-op:bgp-neighbor-error-handling_state;
            }
            augment bgp/neighbors/neighbor/afi-safis/afi-safi/state {
                ext:augment-identifier neighbor-afi-safi_state-augmentation;
                uses bgp-op:bgp-neighbor-afi-safi_state;
            }
            augment bgp/neighbors/neighbor/graceful-restart/state {
                ext:augment-identifier neighbor-graceful-restart_state-augmentation;
                uses bgp-op:bgp-afi-safi-graceful-restart_state;
            }
            augment bgp/neighbors/neighbor/afi-safis/afi-safi/graceful-restart/state {
                ext:augment-identifier neighbor-afi-safi-graceful-restart_state-augmentation;
                uses bgp-op:bgp-neighbor-afi-safi-graceful-restart_state;
                uses neighbor-afi-safi-ll-graceful-restart-state;
            }
            augment bgp/peer-groups/peer-group/state {
                ext:augment-identifier peer-group_state-augmentation;
                uses bgp-op:bgp-peer-group_state;
            }
            augment bgp/peer-groups/peer-group/transport/config {
                ext:augment-identifier peer-group-transport-config;
                uses transport-config;
            }
            augment bgp/peer-groups/peer-group/afi-safis/afi-safi {
                ext:augment-identifier group-add-paths-config;
                uses openconfig-bgp:bgp-neighbor-add-paths_config;
            }
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy