[Search] [txt|xml|pdfized|bibtex] [Tracker] [Email] [Nits]
Versions: 00                                                            
IDR Working Group                                               K. Patel
Internet-Draft                                                   D. Jain
Intended status: Standards Track                                   Cisco
Expires: January 9, 2017                                        S. Hares
                                                                  Huawei
                                                            July 8, 2016


               Yang Data Model for BGP extended features
                 draft-keyupate-idr-bgp-ext-yang-00.txt

Abstract

   This document defines a YANG data model that can be used to configure
   and manage BGP features which are not covered in the base BGP YANG
   data model.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 9, 2017.

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Patel, et al.            Expires January 9, 2017                [Page 1]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   2.  Definitions and Acronyms  . . . . . . . . . . . . . . . . . .   3
   3.  BGP extended features . . . . . . . . . . . . . . . . . . . .   3
     3.1.  AIGP  . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.2.  Aggregate routes  . . . . . . . . . . . . . . . . . . . .   4
     3.3.  DMZ link bandwidth  . . . . . . . . . . . . . . . . . . .   4
     3.4.  Network . . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.5.  Dampening . . . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Yang model  . . . . . . . . . . . . . . . . . . . . . . . . .   4
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  13
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  13
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  13
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  15
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  15

1.  Introduction

   YANG [RFC6020] is a data definition language that was introduced to
   define the contents of a conceptual data store that allows networked
   devices to be managed using NETCONF [RFC6241].  YANG is proving
   relevant beyond its initial confines, as bindings to other interfaces
   (e.g.  ReST) and encodings other than XML (e.g.  JSON) are being
   defined.  Furthermore, YANG data models can be used as the basis of
   implementation for other interfaces, such as CLI and programmatic
   APIs.

   This document defines a YANG data model that can be used to configure
   and manage BGP features which are not covered in the base model
   [I-D.ietf-idr-bgp-model].  This model is defined by augmenting the
   applicable containers from the base BGP model.




Patel, et al.            Expires January 9, 2017                [Page 2]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  Definitions and Acronyms

   AF: Address Family

   AIGP: Accumulated IGP

   AS: Autonomous System

   BGP: Border Gateway Protocol

   DMZ: Demilitarized zone.  Used in context of DMZ link bandwidth for a
   link that connects two single hop eBGP peers.

   IGP: Interior Gatewate Protocol

   MED(med): Multi Exit Discriminator

   NETCONF: Network Configuration Protocol

   ReST: Representational State Transfer, a style of stateless interface
   and protocol that is generally carried over HTTP

   YANG: Data definition language for NETCONF

3.  BGP extended features

   This yang model covers a number of BGP extended features by
   augmenting BGP base model defiend in [I-D.ietf-idr-bgp-model].  These
   features are described below.  This model is expected to grow with
   more such features in future.

3.1.  AIGP

   The Accumulated IGP Metric Attribute for BGP is an optional non-
   transitive BGP path attribute and is specified in [RFC7311].
   Configuration to enable and set the parameters for AIGP are
   applicable per address family per neighbor granularity.  These are
   defined by agumenting AF containers under neighbor and peer-group
   from base BGP model [I-D.ietf-idr-bgp-model].






Patel, et al.            Expires January 9, 2017                [Page 3]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


3.2.  Aggregate routes

   This refers to the BGP specific configuration for enabling mechanisms
   for route aggregation as per [RFC4271] [RFC2519] . These parameters
   are modeled as new leafs augmenting global address family containers
   from the BGP base yang model [I-D.ietf-idr-bgp-model].

3.3.  DMZ link bandwidth

   The BGP link bandwidth feature is used to advertise the bandwidth of
   an autonomous system exit link as an extended community [TODO:
   reference].  Configuration to enable DMZ link bandwidth extended
   community is modeled by augmenting BGP neighbor and peer-group
   containers defined in [I-D.ietf-idr-bgp-model].

3.4.  Network

   Leafs to add network in BGP routing table.  BGP global address family
   container from the base BGP model [I-D.ietf-idr-bgp-model] is
   agumented for this purpose.

3.5.  Dampening

   Configration parameters for BGP dampening behavior as defined in
   [RFC2439].  These parameters are defined under BGP global address
   family mode.

4.  Yang model


       module: ietf-bgp-extensions
augment /bgp:bgp/bgp:global:
augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi:
   +--rw aggregate-addr
   |  +--rw aggregate-address?   inet:ip-address
   |  +--rw summary-only?        boolean
   |  +--rw as-set?              boolean
   |  +--rw as-confed-set?       boolean
   |  +--rw route-policy?        string
   +--rw aggregate-timer
   |  +--rw enable?      boolean
   |  +--rw threshold?   uint16
   +--rw network
   |  +--rw network?   inet:ip-address
   |  +--rw policy?    string
   +--rw bgp-dampening
   |  +--rw half-time?          uint8
   |  +--rw reuse-limit?         uint16



Patel, et al.            Expires January 9, 2017                [Page 4]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


   |  +--rw supresss-limit?      uint16
   |  +--rw max-supress-time?   uint8
   |  +--rw policy?             string
   |  ...

   +--rw auto-summary?              boolean
   +--rw advertise-best-external?   boolean

augment /bgp:bgp/bgp:neighbors/bgp:neighbor:
   +--rw propagate-dmzlink-bw?   boolean

augment /bgp:bgp/bgp:neighbors/bgp:neighbor/bgp:afi-safis/bgp:afi-safi:
   +--rw aigp
   |  +--rw enable?                boolean
   |  +--rw send-med?              boolean
   |  +--rw send-cost-community
   |     +--rw id?                    uint32
   |     +--rw igp-cost-transitive?   boolean
   |     +--rw point-of-insertion?    enumeration
   +--rw soft-reconfig?   enumeration

augment /bgp:bgp/bgp:peer-groups/bgp:peer-group:
   +--rw propagate-dmzlink-bw?   boolean

augment /bgp:bgp/bgp:peer-groups/bgp:peer-group/bgp:afi-safis/bgp:afi-safi:
   +--rw aigp
   |  +--rw enable?                boolean
   |  +--rw send-med?              boolean
   |  +--rw send-cost-community
   |     +--rw id?                    uint32
   |     +--rw igp-cost-transitive?   boolean
   |     +--rw point-of-insertion?    enumeration
   +--rw soft-reconfig?   enumeration





<CODE BEGINS> file "ietf-bgp-extensions@2016-07-08.yang"

module ietf-bgp-extensions {
  namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-extensions";
  // replace with IANA namespace when assigned

  prefix bgp-ext;

  import ietf-inet-types {
    prefix inet;



Patel, et al.            Expires January 9, 2017                [Page 5]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


  }


  import ietf-bgp {
    prefix bgp;
    revision-date 2016-01-06;
  }

  organization
    "Cisco Systems
     170 West Tasman Drive
     San Jose, CA 95134-1706
     USA";
  contact
     "Keyur Patel keyupate@cisco.com
      Dhanendra Jain   dhjain@cisco.com
      Susan Hares shares@ndzh.com";

  description
    "This YANG module defines the extensions to the base BGP yang
     model common across all of the vendor implementations of the
     protocol. It is intended that the model will be extended by
     vendors to define vendor-specific models.


     Terms and Acronyms

     AIGP (aigp): Accumulated IGP

     BGP (bgp): Border Gateway Protocol

     IGP (igp): Interior Gateway Protocol

     IP (ip): Internet Protocol

     IPv4 (ipv4):Internet Protocol Version 4

     IPv6 (ipv6): Internet Protocol Version 6

     MED(med): Multi Exit Discriminator

     MTU (mtu) Maximum Transmission Unit

    ";

  revision 2016-07-08 {
    description
      "Initial revision.";



Patel, et al.            Expires January 9, 2017                [Page 6]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


    reference
      "RFC XXXX: A YANG Data Model for BGP extended features";
  }

  //
  // AIGP parameters used in global mode and neighbor AF mode.
  //
  grouping bgp-aigp {
    description
      "A set of configuration parameters applicable for AIGP configuration";
    container aigp {
      description "AIGP configuration parameters";
      leaf enable {
         type boolean;
         description "Enable AIGP";
      }
      leaf send-med {
         type boolean;
         description "Send AIGP value in MED";
      }
      container send-cost-community {
        description "Send AIGP value in Cost Community";
        leaf id {
          type uint32;
          description "Cost Community ID";
        }
        leaf igp-cost-transitive {
          type boolean;
          description "Enable transitive cost community";
        }
        leaf point-of-insertion {
          type enumeration {
            enum igp-cost {
              description "Cost community is used after IGP distance to next-hop";
            }
            enum pre-bestpath {
              description "Cost community is first step in best-path calculation";
            }
          }
          description "Point of insertion for best-path calculation";
        }
      }
    }
  }

  //
  // DMZ link bandwidth params
  //



Patel, et al.            Expires January 9, 2017                [Page 7]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


  grouping bgp-dmz-link-bw {
    description
      "A set of configuration parameters for DMZ link bandwidth";
    leaf propagate-dmzlink-bw {
      type boolean;
      description
        "Propagate the DMZ link bandwidth.";
    }
  }

  //
  // BGP dampening params
  //
  grouping bgp-dampening-params {
    description "BGP dampening parameters";
    container bgp-dampening {
      description
      "BGP Route Flap Dampening.";

       leaf half-time {
         type uint8 {
           range "1..45";
         }
         description
          "Half Time (in minutes) to reduce the penalty
           assigned to a route by half.";
       }

       leaf reuse-limit {
         type uint16 {
           range "1..20000";
         }
         description
         "A configurable numeric value that is compared with the penalty.
          If the penalty is less than the reuse limit, a suppressed route
          that is up will no longer be suppressed. ";
       }

       leaf supresss-limit {
         type uint16 {
           range "1..20000";
         }
         description
         "A configurable numeric value that is compared with the penalty.
          If the penalty is greater than the suppress limit,
          the route is suppressed";
       }




Patel, et al.            Expires January 9, 2017                [Page 8]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


       leaf max-supress-time {
         type uint8 {
           range "1..255";
         }
         description
         "The longest amount of time, in minutes, that a route can be suppressed.";
       }
       leaf policy {
         type string ; //TBD leafref to policy model
         description
          "Policy to specify criteria for dampening";
      }
    }
  }

  //
  // Grouping for Aggregate address
  //
  grouping bgp-aggregate-addr {
    description "BGP aggregate address parameters grouping";
    container aggregate-addr {
      description "Aggregate address configuration";
      leaf aggregate-address {
        type inet:ip-address;
        description
          "Configure BGP aggregate address.";
      }
      leaf summary-only {
        type boolean;
        description "Filter more specific routes from updates";
      }
      leaf as-set {
        type boolean;
        description "Generate AS set path information";
      }
      leaf as-confed-set {
        type boolean;
        description "Generate AS confed set path information";
      }
      leaf route-policy {
        type string;
        description "Policy to filter routes and specify conditions";
      }
    }
  }

  //
  // Grouping for soft reconfig



Patel, et al.            Expires January 9, 2017                [Page 9]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


  //
  grouping soft-reconfig {
    description "Soft reconfig parameters. Configuring this enables storing
                 of routes as received by this node, prior to applying
                 inbound route-policy";
    leaf soft-reconfig {
      type enumeration {
        enum "always" {
          description "Use soft reconfig database upon neighbor reset even
                       if route refresh is configured";
        }
        enum "backup" {
          description "Use soft reconfig database as backup to route refresh";
        }
      }
      description "Enable storing of unprocessed routes as received by this node";
    }
  }

  //
  // Grouping for all AF extensions.
  //
  grouping bgp-af-extension-cfg {
    description
      "Grouping for configuration parameters which are applicable
       to all address families of the BGP router.";

    // Aggregate related
    uses bgp-aggregate-addr;

    // Aggregate Timer
    container aggregate-timer {
      description
        "Configure aggregation timer to specify time interval at which BGP routes
         will be aggregated for route aggregation.";
      leaf enable {
        type boolean;
        default "true";
        description "Enable aggregate timer";
      }
      leaf threshold {
        type uint16 {
          range "6..60";
        }
        description "Threshold value in seconds";
      }
    }




Patel, et al.            Expires January 9, 2017               [Page 10]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


    //Network
    container network {
      description "Add networks to BGP table";
      leaf network {
         type inet:ip-address;
         description
           "Specify a network to announce via BGP.";
      }
      leaf policy {
         type string; //TBD leaf to policy model.
         description "Modify route attribute as per policy";
      }
    }

    // Dampening
    uses bgp-dampening-params;

    //Other leafs
    leaf auto-summary {
      type boolean;
      description
       "Enable automatic network number summarization";
    }
    // Best external
    leaf advertise-best-external {
      type boolean;
      description
        "Advertise best external path to the internal peers.";
    }
  }


  // Global mode extensions can go here.
  grouping bgp-gbl-extension-cfg {
     description "BGP process global extensions grouping";
     // BGP process global extensions here.
  }

  // Global address family specific extensions.
  grouping bgp-gbl-af-extension-cfg {
    description "BGP global address family specific extensions";

    //AF extensions common to all AFs
    uses bgp-af-extension-cfg;
  }

  // Neighbor mode extensions.
  grouping bgp-nbr-extension-cfg {



Patel, et al.            Expires January 9, 2017               [Page 11]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


    description "BGP neighbor specific extensions";
    //NBR extensions go here
    uses bgp-dmz-link-bw;
  }

  // Neighbor address family specific extensions.
  grouping bgp-nbr-af-extension-cfg {
    description "BGP neighbor address-family specific extensions";
    // NBR-AF extensions go here
    uses bgp-aigp ;
    uses soft-reconfig;
  }

  //-----------------------------------
  // Augment BGP model in various places.
  //------------------------------------

  // BGP Global parameters
  augment "/bgp:bgp/bgp:global" {
     description "BGP global mode specific extensions";
     //add BGP global extensions here
     uses bgp-gbl-extension-cfg;
  }

  // BGP Global Address Family Specific
  augment "/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi" {
     description "BGP global address family mode specific extensions";
      //add BGP global AF extensions here
      uses bgp-gbl-af-extension-cfg;
  }


  //BGP Neighbor Specific
  augment "/bgp:bgp/bgp:neighbors/bgp:neighbor" {
     description "BGP neighbor mode specific extensions";
      // add nbr specific extensions here
      uses bgp-nbr-extension-cfg;
  }

  //BGP Neighbor address-family Specific
  augment "/bgp:bgp/bgp:neighbors/bgp:neighbor/bgp:afi-safis/bgp:afi-safi" {
     description "BGP neighbor address family mode specific extensions";
      // add nbr AFI-SAFI specific extensions here.
      uses bgp-nbr-af-extension-cfg;
  }

  // BGP Neighbor Groups specific
  augment "/bgp:bgp/bgp:peer-groups/bgp:peer-group" {



Patel, et al.            Expires January 9, 2017               [Page 12]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


     description "BGP peer-group mode specific extensions";
     // add nbr specific extensions here
      uses bgp-nbr-extension-cfg;
  }

  // BGP Neighbor Group address-family Specific.
  augment "/bgp:bgp/bgp:peer-groups/bgp:peer-group/bgp:afi-safis/bgp:afi-safi" {
     description "BGP peer-group address family mode specific extensions";
      // add nbr AFI-SAFI specific extensions here.
      uses bgp-nbr-af-extension-cfg;
  }
}



<CODE ENDS>

5.  IANA Considerations

6.  Security Considerations

   The transport protocol used for sending the BGP configuration data
   MUST support authentication and SHOULD support encryption.  The data-
   model by itself does not create any security implications.

   This draft does not change any underlying security issues inherent in
   the base BGP model [I-D.ietf-idr-bgp-model], that it augments to
   define yang model for extented features.

7.  Acknowledgements

   The authors would like to thank TBD for their detail reviews and
   comments.

8.  References

8.1.  Normative References

   [I-D.ietf-idr-bgp-model]
              Shaikh, A., Shakir, R., Patel, K., Hares, S., D'Souza, K.,
              Bansal, D., Clemm, A., Zhdankin, A., Jethanandani, M., and
              X. Liu, "BGP Model for Service Provider Networks", draft-
              ietf-idr-bgp-model-01 (work in progress), January 2016.

   [I-D.ietf-netmod-routing-cfg]
              Lhotka, L., "A YANG Data Model for Routing Management",
              draft-ietf-netmod-routing-cfg-15 (work in progress), May
              2014.



Patel, et al.            Expires January 9, 2017               [Page 13]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC2439]  Villamizar, C., Chandra, R., and R. Govindan, "BGP Route
              Flap Damping", RFC 2439, DOI 10.17487/RFC2439, November
              1998, <http://www.rfc-editor.org/info/rfc2439>.

   [RFC2519]  Chen, E. and J. Stewart, "A Framework for Inter-Domain
              Route Aggregation", RFC 2519, DOI 10.17487/RFC2519,
              February 1999, <http://www.rfc-editor.org/info/rfc2519>.

   [RFC2547]  Rosen, E. and Y. Rekhter, "BGP/MPLS VPNs", RFC 2547,
              DOI 10.17487/RFC2547, March 1999,
              <http://www.rfc-editor.org/info/rfc2547>.

   [RFC4271]  Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
              Border Gateway Protocol 4 (BGP-4)", RFC 4271,
              DOI 10.17487/RFC4271, January 2006,
              <http://www.rfc-editor.org/info/rfc4271>.

   [RFC4364]  Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
              Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
              2006, <http://www.rfc-editor.org/info/rfc4364>.

   [RFC4760]  Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
              "Multiprotocol Extensions for BGP-4", RFC 4760,
              DOI 10.17487/RFC4760, January 2007,
              <http://www.rfc-editor.org/info/rfc4760>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <http://www.rfc-editor.org/info/rfc6020>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <http://www.rfc-editor.org/info/rfc6241>.

   [RFC7224]  Bjorklund, M., "IANA Interface Type YANG Module",
              RFC 7224, DOI 10.17487/RFC7224, May 2014,
              <http://www.rfc-editor.org/info/rfc7224>.







Patel, et al.            Expires January 9, 2017               [Page 14]


Internet-Draft  Yang Data Model for BGP extended features      July 2016


   [RFC7311]  Mohapatra, P., Fernando, R., Rosen, E., and J. Uttaro,
              "The Accumulated IGP Metric Attribute for BGP", RFC 7311,
              DOI 10.17487/RFC7311, August 2014,
              <http://www.rfc-editor.org/info/rfc7311>.

8.2.  Informative References

   [RFC5492]  Scudder, J. and R. Chandra, "Capabilities Advertisement
              with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February
              2009, <http://www.rfc-editor.org/info/rfc5492>.

Authors' Addresses

   Keyur Patel
   Cisco
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: keyupate@cisco.com


   Dhanendra Jain
   Cisco
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: dhjain@cisco.com


   Susan Hares
   Huawei
   7453 Hickory Hill
   Saline, MI  48176
   USA

   Email: shares@ndzh.com













Patel, et al.            Expires January 9, 2017               [Page 15]