Internet DRAFT - draft-liu-pim-igmp-mld-yang

draft-liu-pim-igmp-mld-yang







Network Working Group                                             Y. Liu
Internet-Draft                                                    F. Guo
Intended status: Standards Track                                  Huawei
Expires: September 23, 2015                               March 22, 2015


 Yang Model for Internet Group Management Protocol (IGMP) and Multicast
                        Listener Discovery (MLD)
                     draft-liu-pim-igmp-mld-yang-01

Abstract

   This document defines a YANG data model that can be used to configure
   and manage IGMP and MLD.

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].

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 September 23, 2015.

Copyright Notice

   Copyright (c) 2015 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



Liu & Guo              Expires September 23, 2015               [Page 1]

Internet-Draft               GMP YANG model                   March 2015


   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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Design of Data Model  . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Overview  . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.2.  GMP Per-instance Configuration  . . . . . . . . . . . . .   4
       3.2.1.  Per-instance Parameters . . . . . . . . . . . . . . .   4
       3.2.2.  Per-SSM-Mapping Configuration of GMP Instance . . . .   5
       3.2.3.  Per-interface Configuration of GMP Instance . . . . .   5
     3.3.  Operational State . . . . . . . . . . . . . . . . . . . .   7
   4.  Notifications . . . . . . . . . . . . . . . . . . . . . . . .  10
   5.  GMP Yang Module . . . . . . . . . . . . . . . . . . . . . . .  11
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  53
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  53
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  53
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  53
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  53
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  54
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  54

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 encoding other than XML (e.g.  JSON) are
   being defined.  Furthermore, YANG data models can be used as the
   basis of implementation for other interface, such as CLI and
   Programmatic APIs.

   This document defines a YANG data model that can be used to configure
   and manage IGMP and MLD.  It includes IGMPv1[RFC1112],
   IGMPv2[RFC2236], IGMPv3[RFC3376] and MLDv1[RFC2710], MLDv2[RFC3810].
   In addition, features described in IGMP and MLD standards other than
   mentioned above RFC are also supported.  For convenience, IGMP and
   MLD are wholly called GMP below.








Liu & Guo              Expires September 23, 2015               [Page 2]

Internet-Draft               GMP YANG model                   March 2015


2.  Terminology

   o  IGMP: Internet Group Management Protocol

   o  MLD: Multicast Listener Discovery

   o  GMP: Group Management Protocol

   o  SSM: Source-Specific Multicast

3.  Design of Data Model

3.1.  Overview

   The GMP Yang module has only one main container ::

   o  gmp-instances : that contains per-instance writable configuration
      objects.

   o  gmp-group-infos : provide IGMP or MLD group state for all of the
      dynamic group members.

   o  gmp-static-group-infos : provide IGMP or MLD static group state
      for all of the static group members.

   o  gmp-if-infos : provide IGMP or MLD interface state and running
      parameters for all of the IGMP or MLD interfaces.

   o  gmp-packet-statistics : provide IGMP or MLD packet statistical
      information for all of the IGMP or MLD protocol packets.

   The figure below describes the overall structure of the GMP Yang
   module :


















Liu & Guo              Expires September 23, 2015               [Page 3]

Internet-Draft               GMP YANG model                   March 2015


module: gmp
   +--rw gmp
      +--rw gmp-instances
      |  +--rw gmp-instance* [vrf-name addr-family]
      |     +--...
      |     +--rw gmp-ssm-mappings
      |     |  +--rw gmp-ssm-mapping
      |     |     +--...
      |     +--rw gmp-interfaces
      |        +--rw gmp-interface* [vrf-name if-name addr-family]
      |           +--...
      |           +--rw gmp-static-groups
      |              +--rw gmp-static-group
      |                 +--...
      +--rw gmp-group-infos
      |  +--ro gmp-group-info* [vrf-name addr-family if-name]
      |     +--...
      |     +--ro gmp-source-infos
      |        +--ro gmp-source-info* [ipv4-source-addr ipv6-source-addr]
      |           +--...
      +--rw gmp-static-group-infos
      |  +--ro gmp-static-group-info* [vrf-name addr-family if-name]
      |     +--...
      +--rw gmp-if-infos
      |  +--ro gmp-if-info* [vrf-name if-name addr-family]
      |     +--...
      +--rw gmp-packet-statistics
         +--ro gmp-packet-statistic* [vrf-name addr-family if-name]
            +--...
         Figure 1 The overview of GMP YANG data model

3.2.  GMP Per-instance Configuration

   GMP per-instance configuration container includes parameters of the
   public GMP instance or the GMP instance binding a specific VRF.  GMP
   per-instance configuration container is divided into:

   o  Per-instance parameters

   o  Per-SSM-Mapping configuration of the GMP instance

   o  Per-interface configuration of the GMP instance

3.2.1.  Per-instance Parameters

   The per-instance parameter includes the name of the VRF bound by the
   GMP instance, and timer parameters such as query interval etc.




Liu & Guo              Expires September 23, 2015               [Page 4]

Internet-Draft               GMP YANG model                   March 2015


         +--rw gmp-instances
         |  +--rw gmp-instance* [vrf-name addr-family]
         |     +--rw vrf-name                      string
         |     +--rw addr-family                   enumeration
         |     +--rw query-interval?               uint16
         |     +--rw query-rsp-interval?           uint8
         |     +--rw robustness?                   uint8
         |     +--rw last-member-query-interval?   uint8
         |     +--rw require-router-alert?         boolean
         |     +--rw send-router-alert?            boolean
         |     +--rw other-querier-present-time?   uint16
         |     +--ro gmp-entry-limit?              uint32
         |     +--rw ipsec-name?                   string
         |     +--rw ipsec-type?                   enumeration

            Figure 2 The YANG data model of GMP instance configuration

3.2.2.  Per-SSM-Mapping Configuration of GMP Instance

   Per-SSM-Mapping configuration of the GMP instance includes the SSM
   Mapping rules.IGMPv1/v2 and MLDv1 reports can use these rules to map
   SG state for PIM SSM[RFC4607].IGMPv3 and MLDv2 can default use PIM
   SSM , which is described in [RFC4604].

        |     +--rw gmp-ssm-mappings
        |     |  +--rw gmp-ssm-mapping
        |     |     +--rw ipv4-ssm-maping-group    inet:ipv4-address
        |     |     +--rw ipv6-ssm-maping-group    inet:ipv6-address
        |     |     +--rw is-ssmap-mask            boolean
        |     |     +--rw ipv4-ssm-maping-mask?    inet:ipv4-address
        |     |     +--rw ipv6-ssm-maping-mask?    uint8
        |     |     +--rw is-masklen               boolean
        |     |     +--rw masklen?                 uint8
        |     |     +--rw ipv4-source-addr         inet:ipv4-address
        |     |     +--rw ipv6-source-addr         inet:ipv6-address

           Figure 3 The YANG data model of GMP SSM-Mapping configuration

3.2.3.  Per-interface Configuration of GMP Instance

   Per-interface configuration of the GMP instance includes the
   interface name, timer parameters, policies, static groups etc.GMP
   per-instance configuration container is divided into two containers:

   o  Per-interface parameters

   o  Per-static-group configuration of the GMP interface




Liu & Guo              Expires September 23, 2015               [Page 5]

Internet-Draft               GMP YANG model                   March 2015


3.2.3.1.  Per-interface Parameters

   The per-interface parameter includes the name of the interface, and
   the VRF name bound by the interface, and time parameters, policies
   etc.

         |     +--rw gmp-interfaces
         |        +--rw gmp-interface* [vrf-name if-name addr-family]
         |           +--rw vrf-name                         string
         |           +--rw if-name                          if-name
         |           +--rw addr-family                      enumeration
         |           +--rw gmp-enable                       boolean
         |           +--rw ip-source-ply?                   boolean
         |           +--rw ip-source-acl-name?              string
         |           +--rw ip-source-acl-name-ipv6?         string
         |           +--rw query-interval?                  uint16
         |           +--rw query-rsp-interval?              uint8
         |           +--rw robustness?                      uint8
         |           +--rw version?                         uint8
         |           +--rw last-member-query-interval?      uint8
         |           +--rw require-router-alert?            boolean
         |           +--rw send-router-alert?               boolean
         |           +--rw other-querier-present-time?      uint16
         |           +--rw immediate-leave?                 boolean
         |           +--rw immediate-leave-acl-name?        string
         |           +--rw immediate-leave-acl-name-ipv6?   string
         |           +--rw gmp-entry-limit?                 uint16
         |           +--rw except-acl-name?                 string
         |           +--rw except-acl-name-ipv6?            string
         |           +--rw ssmap-enable?                    boolean
         |           +--rw group-acl-name?                  string
         |           +--rw group-acl-name-ipv6?             string
         |           +--rw group-acl-gmp-ver?               uint8
         |           +--rw query-acl-name?                  string
         |           +--rw queryaclnameipv6?                string
         |           +--rw ipsec-name?                      string
         |           +--rw ipsec-type?                      enumeration

             Figure 4 The YANG data model of GMP interface configuration

3.2.3.2.  Per-static-group Configuration of GMP interface

   Per-static-group configuration of the GMP interface includes the
   static group address, and as a option also includes source address,
   every static group step, and group numbers on the interface.






Liu & Guo              Expires September 23, 2015               [Page 6]

Internet-Draft               GMP YANG model                   March 2015


      |           +--rw gmp-static-groups
      |              +--rw gmp-static-group
      |                 +--rw vrf-name                    string
      |                 +--rw addr-family                 enumeration
      |                 +--rw if-name                     if-name
      |                 +--rw ipv4-static-group           inet:ipv4-address
      |                 +--rw ipv6-static-group           inet:ipv6-address
      |                 +--rw is-source-addr              boolean
      |                 +--rw ipv4-source-addr?           inet:ipv4-address
      |                 +--rw ipv6-source-addr?           inet:ipv6-address
      |                 +--rw is-step-grp-mask            boolean
      |                 +--rw ipv4-inc-step-group-mask?   inet:ipv4-address
      |                 +--rw ipv6-inc-step-group-mask?   inet:ipv6-address
      |                 +--rw is-masklen                  boolean
      |                 +--rw masklen?                    uint8
      |                 +--rw total-number?               uint16

               Figure 5 The YANG data model of GMP static group configuration

3.3.  Operational State

   "gmp" container provides operational states for IGMP or MLD.  This
   container is divided in four components:

   o  gmp-group-infos : provide IGMP or MLD group state for all of the
      dynamic group members.

   o  gmp-static-group-infos : provide IGMP or MLD static group state
      for all of the static group members.

   o  gmp-if-infos : provide IGMP or MLD interface state and running
      parameters for all of the IGMP or MLD interfaces.

   o  gmp-packet-statistics : provide IGMP or MLD packet statistical
      information for all of the IGMP or MLD protocol packets.
















Liu & Guo              Expires September 23, 2015               [Page 7]

Internet-Draft               GMP YANG model                   March 2015


      +--rw gmp-group-infos
      |  +--ro gmp-group-info* [vrf-name addr-family if-name]
      |     +--ro vrf-name                   string
      |     +--ro addr-family                enumeration
      |     +--ro if-name                    if-name
      |     +--ro ipv4-group-addr?           inet:ipv4-address
      |     +--ro ipv6-group-addr?           inet:ipv6-address
      |     +--ro ipv4-last-report-addr?     inet:ipv4-address
      |     +--ro ipv6-last-report-addr?     inet:ipv6-address
      |     +--ro up-time?                   uint32
      |     +--ro expire-time?               uint32
      |     +--ro last-member-query-count?   uint8
      |     +--ro last-member-query-time?    uint8
      |     +--ro source-filter-mode?        enumeration
      |     +--ro v1-host-timer?             uint32
      |     +--ro v2-host-timer?             uint32
      |     +--ro is-ssm-mapping?            boolean
      |     +--ro gmp-source-infos
      |        +--ro gmp-source-info* [ipv4-source-addr ipv6-source-addr]
      |           +--ro ipv4-source-addr                  inet:ipv4-address
      |           +--ro ipv6-source-addr                  inet:ipv6-address
      |           +--ro source-up-time?                   uint32
      |           +--ro source-expire-time?               uint32
      |           +--ro source-last-member-query-count?   uint8
      |           +--ro source-last-member-query-time?    uint8

        The Figure 6  The YANG data model of GMP dynamic group and source information

      +--rw gmp-static-group-infos
      |  +--ro gmp-static-group-info* [vrf-name addr-family if-name]
      |     +--ro vrf-name              string
      |     +--ro addr-family           enumeration
      |     +--ro if-name               if-name
      |     +--ro ipv4-group-addr?      inet:ipv4-address
      |     +--ro ipv6-group-addr?      inet:ipv6-address
      |     +--ro ipv4-source-addr?     inet:ipv4-address
      |     +--ro ipv6-source-addr?     inet:ipv6-address
      |     +--ro multicast-boundary?   boolean

        The Figure 7  The YANG data model of GMP static group and source information











Liu & Guo              Expires September 23, 2015               [Page 8]

Internet-Draft               GMP YANG model                   March 2015


        +--rw gmp-if-infos
        |  +--ro gmp-if-info* [vrf-name if-name addr-family]
        |     +--ro vrf-name                     string
        |     +--ro if-name                      if-name
        |     +--ro addr-family                  enumeration
        |     +--ro ipv4-if-addr?                inet:ipv4-address
        |     +--ro ipv6-if-addr?                inet:ipv6-address
        |     +--ro gmp-if-state?                enumeration
        |     +--ro negotiate-query-time?        uint16
        |     +--ro configure-query-time?        uint16
        |     +--ro other-querier-timeout?       uint16
        |     +--ro max-query-response-time?     uint8
        |     +--ro last-member-query-time?      uint8
        |     +--ro startup-query-interval?      uint16
        |     +--ro startup-query-count?         uint8
        |     +--ro general-query-time?          uint16
        |     +--ro ipv4-querier-addr?           inet:ipv4-address
        |     +--ro ipv6-querier-addr?           inet:ipv6-address
        |     +--ro querier-local?               enumeration
        |     +--ro gmp-joins?                   uint32
        |     +--ro gmp-leaves?                  uint32
        |     +--ro negotiate-robust?            uint8
        |     +--ro configure-robust?            uint8
        |     +--ro startup-query-timer-state?   enumeration
        |     +--ro other-querier-timer-state?   enumeration
        |     +--ro ipsec-name?                  string
        |     +--ro ipsec-type?                  enumeration

           The Figure 8 The YANG data model of GMP interface information

       +--rw gmp-packet-statistics
          +--ro gmp-packet-statistic* [vrf-name addr-family if-name]
             +--ro vrf-name                            string
             +--ro if-name                             if-name
             +--ro addr-family                         enumeration
             +--ro ipv4-if-addr?                       inet:ipv4-address
             +--ro ipv6-if-addr?                       inet:ipv6-address
             +--ro query-recv-valid-num?               uint32
             +--ro query-recv-invalid-num?             uint32
             +--ro query-recv-ignore-num?              uint32
             +--ro report-v1v2-asm-recv-valid-num?     uint32
             +--ro report-v1v2-asm-recv-invalid-num?   uint32
             +--ro report-v1v2-asm-recv-ignore-num?    uint32
             +--ro report-v1v2-ssm-recv-valid-num?     uint32
             +--ro report-v1v2-ssm-recv-invalid-num?   uint32
             +--ro report-v1v2-ssm-recv-ignore-num?    uint32
             +--ro leave-asm-recv-valid-num?           uint32
             +--ro leave-asm-recv-invalid-num?         uint32



Liu & Guo              Expires September 23, 2015               [Page 9]

Internet-Draft               GMP YANG model                   March 2015


             +--ro leave-asm-recv-ignore-num?          uint32
             +--ro leave-ssm-recv-valid-num?           uint32
             +--ro leave-ssm-recv-invalid-num?         uint32
             +--ro leave-ssm-recv-ignore-num?          uint32
             +--ro report-v3-isin-recv-valid-num?      uint32
             +--ro report-v3-isin-recv-invalid-num?    uint32
             +--ro report-v3-isin-recv-ignore-num?     uint32
             +--ro report-v3-isex-recv-valid-num?      uint32
             +--ro report-v3-isex-recv-invalid-num?    uint32
             +--ro report-v3-isex-recv-ignore-num?     uint32
             +--ro report-v3-toin-recv-valid-num?      uint32
             +--ro report-v3-toin-recv-invalid-num?    uint32
             +--ro report-v3-toin-recv-ignore-num?     uint32
             +--ro report-v3-toex-recv-valid-num?      uint32
             +--ro report-v3-toex-recv-invalid-num?    uint32
             +--ro report-v3-toex-recv-ignore-num?     uint32
             +--ro report-v3-allow-recv-valid-num?     uint32
             +--ro report-v3-allow-recv-invalid-num?   uint32
             +--ro report-v3-allow-recv-ignore-num?    uint32
             +--ro report-v3-block-recv-valid-num?     uint32
             +--ro report-v3-block-recv-invalid-num?   uint32
             +--ro report-v3-block-recv-ignore-num?    uint32
             +--ro source-recv-valid-num?              uint32
             +--ro source-recv-invalid-num?            uint32
             +--ro source-recv-ignore-num?             uint32
             +--ro query-send-num?                     uint32
             +--ro report-v1v2-asm-send-num?           uint32
             +--ro report-v1v2-ssm-send-num?           uint32
             +--ro leave-asm-send-num?                 uint32
             +--ro leave-ssm-send-num?                 uint32
             +--ro query-g-send-num?                   uint32
             +--ro query-sg-send-num?                  uint32
             +--ro report-v3-isin-send-num?            uint32
             +--ro report-v3-isex-send-num?            uint32
             +--ro report-v3-toin-send-num?            uint32
             +--ro report-v3-toex-send-num?            uint32
             +--ro report-v3-allow-send-num?           uint32
             +--ro report-v3-block-send-num?           uint32
             +--ro source-send-num?                    uint32

         The Figure 9  The YANG data model of GMP packet statistics

4.  Notifications

   The gmp yang data model introduces some notifications:

   gmp-group-join : This notification is sent when the system receive a
   IGMP or MLD group membership report.



Liu & Guo              Expires September 23, 2015              [Page 10]

Internet-Draft               GMP YANG model                   March 2015


   gmp-group-leave : This notification is sent when the system receive a
   IGMP or MLD group membership leave.

   notifications:
      +---n gmp-group-join
      |  +--ro vrf-name?           string
      |  +--ro if-name?            if-name
      |  +--ro addr-family?        enumeration
      |  +--ro ipv4-group-addr?    inet:ipv4-address
      |  +--ro ipv6-group-addr?    inet:ipv6-address
      |  +--ro ipv4-source-addr?   inet:ipv4-address
      |  +--ro ipv6-source-addr?   inet:ipv6-address
      |  +--ro ipv4-sender-addr?   inet:ipv4-address
      |  +--ro ipv6-sender-addr?   inet:ipv6-address
      +---n gmp-group-leave
         +--ro vrf-name?           string
         +--ro if-name?            if-name
         +--ro addr-family?        enumeration
         +--ro ipv4-group-addr?    inet:ipv4-address
         +--ro ipv6-group-addr?    inet:ipv6-address
         +--ro ipv4-source-addr?   inet:ipv4-address
         +--ro ipv6-source-addr?   inet:ipv6-address
         +--ro ipv4-sender-addr?   inet:ipv4-address
         +--ro ipv6-sender-addr?   inet:ipv6-address

           The Figure 10  The YANG data model of GMP notifications

5.  GMP Yang Module

module gmp {
    namespace "urn:huawei:params:xml:ns:yang:gmp";
    // replace with IANA namespace when assigned -
    // urn:ietf:params:xml:ns:yang:1
    prefix "gmp";
    import ietf-inet-types {
        prefix inet;
    }
    organization
      "IETF PIM(Protocol Independent Multicast) Working Group";
    contact
      "liuyisong@huawei.com
       guofeng@huawei.com ";
    description
      "This YANG module defines the generic configuration data for GMP,
       i.e. IGMP and MLD, which is common across all of the vendor
       implementations of the protocol. It is intended that the module
       will be extended by vendors to define vendor-specific
       GMP configuration parameters.";



Liu & Guo              Expires September 23, 2015              [Page 11]

Internet-Draft               GMP YANG model                   March 2015


    revision 2015-03-09 {
        description
            "Add operation and notification contents.";
    }
    revision 2014-10-21 {
        description
            "Initial revision.";
    }

    typedef if-name {
        description "if-name is like ethernet1/1/1/1";
        type string {
            length "1..63";
        }
    }


    container gmp {

        container gmp-instances {

            list gmp-instance {

                key "vrf-name addr-family";
                max-elements "unbounded";
                min-elements "0";
                description "Specifies a list of gmp instances.";

                leaf vrf-name {
                    description
                      "Name of an gmp instance.If the name string is
                       empty the instance means a public instance
                       whose name is _public_.";
                    config "true";
                    //default "_public_";
                    type string {
                        length "0..32";
                    }
                }
                leaf addr-family {
                    description
                      "Specify an address family, which determines
                       whether an address is an ipv4 or ipv6 address.";
                    config "true";
                    mandatory "true";
                    type enumeration {
                        enum ipv4unicast {
                            value "0";



Liu & Guo              Expires September 23, 2015              [Page 12]

Internet-Draft               GMP YANG model                   March 2015


                            description
                              "Specify an address family, which
                               determines whether an address is an
                               ipv4 or ipv6 address.";
                        }
                        enum ipv6unicast {
                            value "1";
                            description
                              "Specify an address family, which
                               determines whether an address is an
                               ipv4 or ipv6 address.";
                        }
                    }
                }
                leaf query-interval {
                    description
                      "Specify the interval at which the router sends
                       general query messages. The value is an integer
                       ranging from 1 to 18000, in seconds. The default
                       value for ipv4 is 60, and 125 for ipv6.";
                    config "true";
                    default "60";
                    type uint16 {
                        range "1..18000";
                    }
                }
                leaf query-rsp-interval {
                    description
                      "Specify the maximum response time for a query
                       message. The value is an integer ranging from
                       1 to 25, in seconds. The default value is 10.";
                    config "true";
                    default "10";
                    type uint8 {
                        range "1..25";
                    }
                }
                leaf robustness {
                    description
                      "Specify the number of times for retransmitting
                       a message to avoid the packet loss. The value is
                       an integer ranging from 2 to 5. The default
                       value is 2.";
                    config "true";
                    default "2";
                    type uint8 {
                        range "2..5";
                    }



Liu & Guo              Expires September 23, 2015              [Page 13]

Internet-Draft               GMP YANG model                   March 2015


                }
                leaf last-member-query-interval {
                    description
                      "Specify the interval at which the querier sends
                       last-member query messages. The value is an
                       integer ranging from 1 to 5, in seconds. The
                       default value is 1. This parameter makes sense
                       only when the current querier runs igmpv2,
                       igmpv3 or mld.";
                    config "true";
                    default "1";
                    type uint8 {
                        range "1..5";
                    }
                }
                leaf require-router-alert {
                    description
                      "Configure the router to process only the
                       messages whose ip headers contain router-alert
                       options globally. By default, the router does
                       not check whether the received igmp messages
                       contain router-alert options.";
                    config "true";
                    type boolean;
                }
                leaf send-router-alert {
                    description
                      "Configure the router to send the messages with
                       router-alert options in the ip headers globally.
                       By default, the ip headers contain router-alert
                       options. ";
                    config "true";
                    type boolean;
                }
                leaf other-querier-present-time {
                    description
                      "Set the global keepalive period for other
                       queriers. ";
                    config "true";
                    type uint16 {
                        range "60..300";
                    }
                }
                leaf gmp-entry-limit {
                    description
                      "Set the maximum number of entries that can be
                       created for the current instance. The value is
                       an integer ranging from 1 to 65536. The default



Liu & Guo              Expires September 23, 2015              [Page 14]

Internet-Draft               GMP YANG model                   March 2015


                       value is 49152.";
                    config "false";
                    type uint32 {
                        range "1..65536";
                    }
                }
                leaf ipsec-name {
                    description
                      "Sa name. The value is a string of 1 to 15
                       characters.";
                    config "true";
                    type string {
                        length "1..15";
                        pattern "^[^ ]+$";
                    }
                }
                leaf ipsec-type {
                    description
                      "Ipsec type used as a query option.";
                    config "true";
                    type enumeration {
                        enum forall {
                            value "0";
                            description
                              "Ipsec type used as a query option.";
                        }
                        enum forquery {
                            value "1";
                            description
                              "Ipsec type used as a query option.";
                        }
                    }
                }

                container gmp-ssm-mappings {

                    container gmp-ssm-mapping {

                        leaf ipv4-ssm-maping-group {
                            description
                              "Specify the address of a multicast
                               group.";
                            config "true";
                            mandatory "true";
                            type inet:ipv4-address;
                        }
                        leaf ipv6-ssm-maping-group {
                            description



Liu & Guo              Expires September 23, 2015              [Page 15]

Internet-Draft               GMP YANG model                   March 2015


                              "Specify the address of a multicast
                               group.";
                            config "true";
                            mandatory "true";
                            type inet:ipv6-address;
                        }
                        leaf is-ssmap-mask {
                            description
                              "Whether a mask is configured for a
                               multicast group address.";
                            config "true";
                            mandatory "true";
                            type boolean;
                        }
                        leaf ipv4-ssm-maping-mask {
                            description
                              "Specify the mask of a multicast group
                               address.";
                            config "true";
                            type inet:ipv4-address;
                        }
                        leaf ipv6-ssm-maping-mask {
                            description
                              "Specify the mask of a multicast group
                               address.";
                            config "true";
                            type uint8 {
                                range "0..128";
                            }
                        }
                        leaf is-masklen {
                            description
                              "Whether the length is set for the mask
                               of a multicast group address.";
                            config "true";
                            mandatory "true";
                            type boolean;
                        }
                        leaf masklen {
                            description
                              "Specify the mask length of a multicast
                               group address. In the case of an ipv4
                               address, the mask length ranges from 4
                               to 32. In the case of an ipv6 address,
                               the mask length is 16/32/64/128.";
                            config "true";
                            type uint8 {
                                range "4..128";



Liu & Guo              Expires September 23, 2015              [Page 16]

Internet-Draft               GMP YANG model                   March 2015


                            }
                        }
                        leaf ipv4-source-addr {
                            description
                              "Specify the address of a multicast
                               source.";
                            config "true";
                            mandatory "true";
                            type inet:ipv4-address;
                        }
                        leaf ipv6-source-addr {
                            description
                              "Specify the address of a multicast
                               source.";
                            config "true";
                            mandatory "true";
                            type inet:ipv6-address;
                        }
                    }
                }

                container gmp-interfaces {

                    list gmp-interface {

                        key "vrf-name if-name addr-family";
                        max-elements "unbounded";
                        min-elements "0";
                        description "Specifies an gmp interface.";

                        leaf vrf-name {
                            description
                              "Name of an gmp instance. If the name
                               string is empty the instance means a
                               public instance whose name is _public_.";
                            config "true";
                            mandatory "true";
                            //default "_public_";
                            type string {
                                length "0..32";
                            }
                        }
                        leaf if-name {
                            description "Interface name.";
                            config "true";
                            type if-name;
                        }
                        leaf addr-family {



Liu & Guo              Expires September 23, 2015              [Page 17]

Internet-Draft               GMP YANG model                   March 2015


                            description
                              "Specify an address family, which
                               determines whether an address is an
                               ipv4 or ipv6 address.";
                            config "true";
                            mandatory "true";
                            type enumeration {
                                enum ipv4unicast {
                                    value "0";
                                    description
                                      "Specify an address family, which
                                       determines whether an address is
                                       an ipv4 or ipv6 address.";
                                }
                                enum ipv6unicast {
                                    value "1";
                                    description
                                      "Specify an address family, which
                                       determines whether an address is
                                       an ipv4 or ipv6 address.";
                                }
                            }
                        }
                        leaf gmp-enable {
                            description
                              "Enable protocols on an interface.";
                            config "true";
                            mandatory "true";
                            type boolean;
                        }
                        leaf ip-source-ply {
                            description
                              "Configure a policy for filtering igmp
                               report messages based on host addresses.
                               By default, no policy is configured for
                               filtering igmp report messages based on
                               host addresses.";
                            config "true";
                            type boolean;
                        }
                        leaf ip-source-acl-name {
                            description
                              "Configure an acl that defines a host
                               addresses range. The value is an integer
                               ranging from 2000 to 2999, or a
                               case-sensitive string with a maximum of
                               32 characters. By default, the acl is
                               not configured.";



Liu & Guo              Expires September 23, 2015              [Page 18]

Internet-Draft               GMP YANG model                   March 2015


                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf ip-source-acl-name-ipv6 {
                            description
                              "Configure an acl that defines a host
                               addresses range. The value is an integer
                               ranging from 2000 to 2999, or a
                               case-sensitive string with a maximum of
                               32 characters. By default, the acl is
                               not configured.";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf query-interval {
                            description
                              "Specify the interval at which the router
                               sends general query messages. The value
                               is an integer ranging from 1 to 18000,
                               in seconds. The default value for ipv4
                               is 60, and 125 for ipv6.";
                            config "true";
                            default "60";
                            type uint16 {
                                range "1..18000";
                            }
                        }
                        leaf query-rsp-interval {
                            description
                              "Specify the maximum response time for a
                               query message. The value is an integer
                               ranging from 1 to 25, in seconds. The
                               default value is 10. This time is used
                               to control the deadline of mainframe
                               feed back the relation-ship of group
                               members.";
                            config "true";
                            default "10";
                            type uint8 {
                                range "1..25";
                            }
                        }



Liu & Guo              Expires September 23, 2015              [Page 19]

Internet-Draft               GMP YANG model                   March 2015


                        leaf robustness {
                            description
                              "Specify the number of times for
                               retransmitting messages to avoid packet
                               loss. The value is an integer ranging
                               from 2 to 5. The default value is 2.";
                            config "true";
                            default "2";
                            type uint8 {
                                range "2..5";
                            }
                        }
                        leaf version {
                            description
                              "Specify the version of igmp or mld
                               running on an interface. By default,
                               igmpv2 or mldv2 is used.";
                            config "true";
                            default "2";
                            type uint8 {
                                range "1..3";
                            }
                        }
                        leaf last-member-query-interval {
                            description
                              "Specify the interval at which the
                               querier sends last-member query messages.
                               The value is an integer ranging from 1
                               to 5, in seconds. The default value is 1.
                               This parameter makes sense only when the
                               current querier runs igmpv2, igmpv3 or
                               mld.";
                            config "true";
                            default "1";
                            type uint8 {
                                range "1..5";
                            }
                        }
                        leaf require-router-alert {
                            description
                              "Configure an interface to process only
                               messages whose ip headers contain
                               router-alert options. By default, the
                               interface does not check whether the
                               received messages contain router-alert
                               options.";
                            config "true";
                            type boolean;



Liu & Guo              Expires September 23, 2015              [Page 20]

Internet-Draft               GMP YANG model                   March 2015


                        }
                        leaf send-router-alert {
                            description
                              "Configure an interface to send the
                               messages with router-alert options in
                               the ip headers. By default, the ip
                               header contain router-alert options.";
                            config "true";
                            default "true";
                            type boolean;
                        }
                        leaf other-querier-present-time {
                            description
                              "Set the keepalive period for other
                               queriers on an interface. The value
                               ranges from 60 to 300, in second.
                               By default, no keepalive period is set
                               for other queriers.";
                            config "true";
                            type uint16 {
                                range "60..300";
                            }
                        }
                        leaf immediate-leave {
                            description
                              "Configure an interface that receives a
                               leave message of a certain group to
                               immediately delete the corresponding
                               group records, without sending a
                               last-member query message.";
                            config "true";
                            type boolean;
                        }
                        leaf immediate-leave-acl-name {
                            description
                              "Configure an acl that defines a
                               multicast group range. the basic acl
                               number ranges from 2000 to 2999, and
                               the advanced acl number ranges from 3000
                               to 3999. The name is a string with a
                               maximum of 32 case-sensitive characters.
                               By default, the acl is not configured";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }



Liu & Guo              Expires September 23, 2015              [Page 21]

Internet-Draft               GMP YANG model                   March 2015


                        leaf immediate-leave-acl-name-ipv6 {
                            description
                              "Configure an acl that defines a
                               multicast group range. The basic acl
                               number ranges from 2000 to 2999, and
                               the advanced acl number ranges from 3000
                               to 3999. The name is a string with a
                               maximum of 32 case-sensitive characters.
                               By default, the acl is not configured";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf gmp-entry-limit {
                            description
                              "Specify the maximum number of entries
                               that the current interface can create.
                               It is an integer ranging from 1 to
                               16384. The default value is 16384.";
                            config "true";
                            type uint16 {
                                range "1..16384";
                            }
                        }
                        leaf except-acl-name {
                            description
                              "Specify the range of multicast groups,
                               the number of igmp entries corresponding
                               to which needs not be limited. The basic
                               acl number ranges from 2000 to 2999. The
                               basic acl filters group addresses only,
                               without distinguishing (*, g) entries
                               and (s, g) entries.";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf except-acl-name-ipv6 {
                            description
                              "Specify the range of multicast groups,
                               the number of igmp entries corresponding
                               to which needs not be limited. The basic
                               acl number ranges from 2000 to 2999. The
                               basic acl filters group addresses only,



Liu & Guo              Expires September 23, 2015              [Page 22]

Internet-Draft               GMP YANG model                   March 2015


                               without distinguishing (*, g) entries
                               and (s, g) entries";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf ssmap-enable {
                            description
                              "Enable ssm mapping on an interface.";
                            config "true";
                            type boolean;
                        }
                        leaf group-acl-name {
                            description
                              "Set a filter for multicast groups on an
                               interface to control the range of
                               multicast groups that hosts can join.
                               The basic acl number ranges from 2000
                               to 2999, and the advanced acl number
                               ranges from 3000 to 3999. The name is a
                               string with a maximum of 32 ";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf group-acl-name-ipv6 {
                            description
                              "Set a filter for multicast groups on an
                               interface to control the range of
                               multicast groups that hosts can join.
                               The basic acl number ranges from 2000
                               to 2999, and the advanced acl number
                               ranges from 3000 to 3999. The name is a
                               string with a maximum of 32 ";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf group-acl-gmp-ver {
                            description
                              "Forbids hosts that use a specified
                               version to join the multicast group.



Liu & Guo              Expires September 23, 2015              [Page 23]

Internet-Draft               GMP YANG model                   March 2015


                               The version can be specified in this
                               command only after a multicast filtering
                               policy is configured.";
                            config "true";
                            type uint8 {
                                range "1..3";
                            }
                        }
                        leaf query-acl-name {
                            description
                              "Configure an acl that defines a host
                               addresses range. The value is an integer
                               ranging from 2000 to 2999, or a
                               case-sensitive string with a maximum of
                               32 characters. By default, the acl is
                               not configured.";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf queryaclnameipv6 {
                            description
                              "Configure an acl that defines a host
                               addresses range. The value is an integer
                               ranging from 2000 to 2999, or a
                               case-sensitive string with a maximum of
                               32 characters. By default, the acl is
                               not configured.";
                            config "true";
                            type string {
                                length "1..32";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf ipsec-name {
                            description
                              "Sa name. The value is a string of 1 to
                               15 characters.";
                            config "true";
                            type string {
                                length "1..15";
                                pattern "^[^ ]+$";
                            }
                        }
                        leaf ipsec-type {
                            description



Liu & Guo              Expires September 23, 2015              [Page 24]

Internet-Draft               GMP YANG model                   March 2015


                              "Ipsec type used as a query option.";
                            config "true";
                            type enumeration {
                                enum forall {
                                    value "0";
                                    description
                                      "Ipsec type used as a query option.";
                                }
                                enum forquery {
                                    value "1";
                                    description
                                      "Ipsec type used as a query option.";
                                }
                            }
                        }

                        container gmp-static-groups {

                            container gmp-static-group {

                                leaf vrf-name {
                                    description
                                      "Name of an gmp instance. If the
                                       name string is empty the instance
                                       means a public instance whose
                                       name is _public_.";
                                    config "true";
                                    mandatory "true";
                                    //default "_public_";
                                    type string {
                                        length "0..32";
                                    }
                                }
                                leaf addr-family {
                                    description
                                      "Specify an address family, which
                                       determines whether an ipv4 or
                                       ipv6 address is used.";
                                    config "true";
                                    mandatory "true";
                                    type enumeration {
                                        enum ipv4unicast {
                                            value "0";
                                            description
                                              "Specify an address family,
                                               which determines whether
                                               an ipv4 or ipv6 address
                                               is used.";



Liu & Guo              Expires September 23, 2015              [Page 25]

Internet-Draft               GMP YANG model                   March 2015


                                        }
                                        enum ipv6unicast {
                                            value "1";
                                            description
                                              "Specify an address family,
                                               which determines whether
                                               an ipv4 or ipv6 address
                                               is used.";
                                        }
                                    }
                                }
                                leaf if-name {
                                    description "Interface name.";
                                    config "true";
                                    mandatory "true";
                                    type if-name;
                                }
                                leaf ipv4-static-group {
                                    description
                                      "Specifies the address of a
                                       static group.";
                                    config "true";
                                    mandatory "true";
                                    type inet:ipv4-address;
                                }
                                leaf ipv6-static-group {
                                    description
                                      "Specifies the address of a
                                       static group.";
                                    config "true";
                                    mandatory "true";
                                    type inet:ipv6-address;
                                }
                                leaf is-source-addr {
                                    description
                                      "Whether an address is configured
                                       for the multicast source.";
                                    config "true";
                                    mandatory "true";
                                    type boolean;
                                }
                                leaf ipv4-source-addr {
                                    description
                                      "Specifies the ipv4 address of a
                                       remote neighbor.";
                                    config "true";
                                    type inet:ipv4-address;
                                }



Liu & Guo              Expires September 23, 2015              [Page 26]

Internet-Draft               GMP YANG model                   March 2015


                                leaf ipv6-source-addr {
                                    description
                                      "Specifies the ipv6 address of a
                                       remote neighbor.";
                                    config "true";
                                    type inet:ipv6-address;
                                }
                                leaf is-step-grp-mask {
                                    description
                                      "Determine whether to specify the
                                       step mask in batch configuration
                                       mode.";
                                    config "true";
                                    mandatory "true";
                                    type boolean;
                                }
                                leaf ipv4-inc-step-group-mask {
                                    description
                                      "Specify the step mask of a group
                                       address in batch configuration
                                       mode.";
                                    config "true";
                                    type inet:ipv4-address;
                                }
                                leaf ipv6-inc-step-group-mask {
                                    description
                                      "Specify the step mask of a group
                                       address in batch configuration
                                       mode.";
                                    config "true";
                                    type inet:ipv6-address;
                                }
                                leaf is-masklen {
                                    description
                                      "Determine whether to set the
                                       length for the step mask of a
                                       multicast group address in batch
                                       configuration mode. ";
                                    config "true";
                                    mandatory "true";
                                    type boolean;
                                }
                                leaf masklen {
                                    description
                                      "Specify the mask length of a
                                       multicast group address. In the
                                       case of an ipv4 address, the
                                       mask length ranges from 4 to 32.



Liu & Guo              Expires September 23, 2015              [Page 27]

Internet-Draft               GMP YANG model                   March 2015


                                       In the case of an ipv6 address,
                                       the mask length is 16/32/64/128.";
                                    config "true";
                                    type uint8 {
                                        range "4..128";
                                    }
                                }
                                leaf total-number {
                                    description
                                      "Specify the number of multicast
                                       group addresses in batch
                                       configuration mode. It is an
                                       integer ranging from 2 to 512.";
                                    config "true";
                                    default "2";
                                    type uint16 {
                                        range "2..512";
                                    }
                                }
                            }
                        }
                    }

                }

            }

        }

        container gmp-group-infos {

            list gmp-group-info {

                key "vrf-name addr-family if-name";
                config "false";

                leaf vrf-name {
                    description "Specify the name of a vpn instance.";
                    config "false";
                    //default "_public_";
                    type string {
                        length "0..32";
                    }
                }
                leaf addr-family {
                    description
                      "Specify an address family, which determines
                       whether an address is an ipv4 or ipv6 address.";



Liu & Guo              Expires September 23, 2015              [Page 28]

Internet-Draft               GMP YANG model                   March 2015


                    config "false";
                    type enumeration {
                        enum ipv4unicast {
                            value "0";
                            description "ipv4unicast:";
                        }
                        enum ipv6unicast {
                            value "1";
                            description "ipv6unicast:";
                        }
                    }
                }
                leaf if-name {
                    description "Specify the name of an interface.";
                    config "false";
                    type if-name;
                }
                leaf ipv4-group-addr {
                    description
                      "Multicast group address. In ipv4 address, the
                       value ranges from 224.0.0.0 to 239.255.255.255. ";
                    config "false";
                    type inet:ipv4-address;
                }
                leaf ipv6-group-addr {
                    description
                      "Multicast group address. In ipv6, the value is
                       in hexadecimal notation and in the format of
                       ffxx:xxxx:xxxx::xxxx ";
                    config "false";
                    type inet:ipv6-address;
                }
                leaf ipv4-last-report-addr {
                    description
                      "Specify the host that sends the last report
                       message.";
                    config "false";
                    type inet:ipv4-address;
                }
                leaf ipv6-last-report-addr {
                    description
                      "Specify the host that sends the last report
                       message.";
                    config "false";
                    type inet:ipv6-address;
                }
                leaf up-time {
                    description



Liu & Guo              Expires September 23, 2015              [Page 29]

Internet-Draft               GMP YANG model                   March 2015


                      "Specify the time when a multicast group is
                       discovered, in seconds.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf expire-time {
                    description
                      "Specify the scheduled time to remove a group
                       from the group table. The value is expressed in
                       seconds.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf last-member-query-count {
                    description
                      "Specify the number of times that the last member
                       query message is transmitted.";
                    config "false";
                    type uint8 {
                        range "1..5";
                    }
                }
                leaf last-member-query-time {
                    description
                      "Specify the timeout period for sending last member
                       query messages.";
                    config "false";
                    type uint8 {
                        range "1..25";
                    }
                }
                leaf source-filter-mode {
                    description
                      "Specify the group mode, exclude or include.";
                    config "false";
                    type enumeration {
                        enum include {
                            value "0";
                            description "include:include";
                        }
                        enum exclude {
                            value "1";
                            description "exclude:exclude";
                        }



Liu & Guo              Expires September 23, 2015              [Page 30]

Internet-Draft               GMP YANG model                   March 2015


                        enum na {
                            value "2";
                            description "na:na";
                        }
                    }
                }
                leaf v1-host-timer {
                    description
                      "Specify the timeout period of an v1 host.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf v2-host-timer {
                    description
                      "Specify the timeout period of an v2 host.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf is-ssm-mapping {
                    description
                      "Identifies an ssm mapping-enabled group.";
                    config "false";
                    type boolean;
                }
                container gmp-source-infos {

                    list gmp-source-info {

                        description
                          "Specify dynamic multicast source information.";
                        key "ipv4-source-addr ipv6-source-addr";
                        config "false";

                        leaf ipv4-source-addr {
                            description
                              "Specify the address of a multicast source.";
                            config "false";
                            type inet:ipv4-address;
                        }
                        leaf ipv6-source-addr {
                            description
                              "Specify the address of a multicast source.";
                            config "false";
                            type inet:ipv6-address;



Liu & Guo              Expires September 23, 2015              [Page 31]

Internet-Draft               GMP YANG model                   March 2015


                        }
                        leaf source-up-time {
                            description
                              "Specify the time when a multicast source
                               is discovered.";
                            config "false";
                            type uint32 {
                                range "0..4294967295";
                            }
                        }
                        leaf source-expire-time {
                            description
                              "Specify the time left to delete records
                               from the source table.";
                            config "false";
                            type uint32 {
                                range "0..4294967295";
                            }
                        }
                        leaf source-last-member-query-count {
                            description
                              "Specify the number of times that the
                               last member query message is transmitted.";
                            config "false";
                            type uint8 {
                                range "1..5";
                            }
                        }
                        leaf source-last-member-query-time {
                            description
                              "Specify the timeout period for sending
                               last member query messages.";
                            config "false";
                            type uint8 {
                                range "1..25";
                            }
                        }

                    }

                }

            }

        }

        container gmp-static-group-infos {




Liu & Guo              Expires September 23, 2015              [Page 32]

Internet-Draft               GMP YANG model                   March 2015


            list gmp-static-group-info {

                description
                  "Specify static multicast group information.";
                key "vrf-name addr-family if-name";
                config "false";

                leaf vrf-name {
                    description "Specify the name of a vpn instance.";
                    config "false";
                    //default "_public_";
                    type string {
                        length "0..32";
                    }
                }
                leaf addr-family {
                    description
                      "Specify an address family, which determines
                       whether an address is an ipv4 or ipv6 address.";
                    config "false";
                    type enumeration {
                        enum ipv4unicast {
                            value "0";
                            description "ipv4unicast:";
                        }
                        enum ipv6unicast {
                            value "1";
                            description "ipv6unicast:";
                        }
                    }
                }
                leaf if-name {
                    description "Specify the name of an interface.";
                    config "false";
                    type if-name;
                }
                leaf ipv4-group-addr {
                    description
                      "Multicast group address. In ipv4 address, the
                       value ranges from 239.0.0.0 to 239.255.255.255. ";
                    config "false";
                    type inet:ipv4-address;
                }
                leaf ipv6-group-addr {
                    description
                      "Multicast group address. In ipv6, the value is
                       in hexadecimal notation and in the format of
                       ffxx:xxxx:xxxx::xxxx ";



Liu & Guo              Expires September 23, 2015              [Page 33]

Internet-Draft               GMP YANG model                   March 2015


                    config "false";
                    type inet:ipv6-address;
                }
                leaf ipv4-source-addr {
                    description
                      "Specify the address of a multicast source.";
                    config "false";
                    type inet:ipv4-address;
                }
                leaf ipv6-source-addr {
                    description
                      "Specify the address of a multicast source.";
                    config "false";
                    type inet:ipv6-address;
                }
                leaf multicast-boundary {
                    description
                      "Whether the multicast forwarding boundary is
                       configured.";
                    config "false";
                    type boolean;
                }
            }

        }

        container gmp-if-infos {

            list gmp-if-info {

                description "Specify interface information.";
                key "vrf-name if-name addr-family";
                config "false";

                leaf vrf-name {
                    description "Specify the name of a vpn instance.";
                    config "false";
                    //default "_public_";
                    type string {
                        length "0..32";
                    }
                }
                leaf if-name {
                    description "Specify the name of an interface.";
                    config "false";
                    type if-name;
                }
                leaf addr-family {



Liu & Guo              Expires September 23, 2015              [Page 34]

Internet-Draft               GMP YANG model                   March 2015


                    description
                      "Specify an address family, which determines
                       whether an address is an ipv4 or ipv6 address.";
                    config "false";
                    type enumeration {
                        enum ipv4unicast {
                            value "0";
                            description "ipv4unicast:";
                        }
                        enum ipv6unicast {
                            value "1";
                            description "ipv6unicast:";
                        }
                    }
                }
                leaf ipv4-if-addr {
                    description
                      "Specify the ip address of an interface.";
                    config "false";
                    type inet:ipv4-address;
                }
                leaf ipv6-if-addr {
                    description
                      "Specify the ip address of an interface.";
                    config "false";
                    type inet:ipv6-address;
                }
                leaf gmp-if-state {
                    description
                      "Specify the status of an interface enabled with
                       a protocol. The value can be up or down.";
                    config "false";
                    type enumeration {
                        enum down {
                            value "0";
                            description "down:down";
                        }
                        enum up {
                            value "1";
                            description "up:up";
                        }
                    }
                }
                leaf negotiate-query-time {
                    description
                      "Interval negotiated by non-queriers for sending
                       query messages, in seconds. The negotiated value
                       is supported by igmpv3 or mldv2 only.";



Liu & Guo              Expires September 23, 2015              [Page 35]

Internet-Draft               GMP YANG model                   March 2015


                    config "false";
                    type uint16 {
                        range "1..18000";
                    }
                }
                leaf configure-query-time {
                    description
                      "Interval configured by non-queriers for sending
                       query messages, in seconds. ";
                    config "false";
                    type uint16 {
                        range "1..18000";
                    }
                }
                leaf other-querier-timeout {
                    description
                      "Specify the timeout period of other queriers.
                       The value decreases by one per second. The value
                       is 0 on the interface that acts as the querier.";
                    config "false";
                    type uint16 {
                        range "1..65535";
                    }
                }
                leaf max-query-response-time {
                    description
                      "Specify the maximum response time carried in a
                       query message.";
                    config "false";
                    type uint8 {
                        range "1..25";
                    }
                }
                leaf last-member-query-time {
                    description
                      "Specify the timeout period for sending the
                       last-member query message.";
                    config "false";
                    type uint8 {
                        range "1..25";
                    }
                }
                leaf startup-query-interval {
                    description
                      "Specify the interval at which an interface
                       functioning as the querier sends query messages
                       when it is started. ";
                    config "false";



Liu & Guo              Expires September 23, 2015              [Page 36]

Internet-Draft               GMP YANG model                   March 2015


                    type uint16 {
                        range "1..18000";
                    }
                }
                leaf startup-query-count {
                    description
                      "Specify the number of times that an interface
                       functioning as the querier sends query messages
                       when it is started. ";
                    config "false";
                    type uint8 {
                        range "2..5";
                    }
                }
                leaf general-query-time {
                    description
                      "Specify the timeout period of a general query
                       timer.";
                    config "false";
                    type uint16 {
                        range "1..18000";
                    }
                }
                leaf ipv4-querier-addr {
                    description
                      "Specify the address of a querier.";
                    config "false";
                    type inet:ipv4-address;
                }
                leaf ipv6-querier-addr {
                    description
                      "Specify the address of a querier.";
                    config "false";
                    type inet:ipv6-address;
                }
                leaf querier-local {
                    description "Whether a query is a local query.";
                    config "false";
                    type enumeration {
                        enum na {
                            value "0";
                            description "na:na";
                        }
                        enum no_querier {
                            value "1";
                            description "no_querier:no_querier";
                        }
                        enum this_router {



Liu & Guo              Expires September 23, 2015              [Page 37]

Internet-Draft               GMP YANG model                   March 2015


                            value "2";
                            description "this_router:this_router";
                        }
                        enum other_router {
                            value "3";
                            description "other_router:other_router";
                        }
                    }
                }
                leaf gmp-joins {
                    description
                      "Specify the number of groups that an interface
                       has joined. When the interface joins a new
                       group, the value increases by one; when the
                       interface leaves a group, the value remains
                       unchanged";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf gmp-leaves {
                    description
                      "Specify the number of groups that the interface
                       leaves. Each time when the interface leaves a
                       group, the value increases by one.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf negotiate-robust {
                    description
                      "Specify the robustness variable negotiated by
                       non-queriers. The value is supported by igmpv3
                       or mldv2 only.";
                    config "false";
                    type uint8 {
                        range "2..5";
                    }
                }
                leaf configure-robust {
                    description
                      "Specify the robustness variable configured by
                       non-queriers. ";
                    config "false";
                    type uint8 {
                        range "2..5";



Liu & Guo              Expires September 23, 2015              [Page 38]

Internet-Draft               GMP YANG model                   March 2015


                    }
                }
                leaf startup-query-timer-state {
                    description
                      "Specify the status of the timer for the interface
                       functioning as the querier after being started.
                       off: the interface immediately sends a query
                            message after being started.
                       on: the interface does not send a query message
                           after being started.";
                    config "false";
                    type enumeration {
                        enum off {
                            value "0";
                            description "off:off";
                        }
                        enum on {
                            value "1";
                            description "on:on";
                        }
                        enum na {
                            value "2";
                            description "na:na";
                        }
                    }
                }
                leaf other-querier-timer-state {
                    description
                      "Specify the status of the timer identifying
                       whether another querier is present.
                       off: the interface considers itself as a querier
                       and that no other queriers exist. ";
                    config "false";
                    type enumeration {
                        enum off {
                            value "0";
                            description "off:off";
                        }
                        enum on {
                            value "1";
                            description "on:on";
                        }
                    }
                }
                leaf ipsec-name {
                    description
                      "Sa name. the value is a string of 1 to 15
                       characters.";



Liu & Guo              Expires September 23, 2015              [Page 39]

Internet-Draft               GMP YANG model                   March 2015


                    config "false";
                    type string {
                        length "1..15";
                    }
                }
                leaf ipsec-type {
                    description
                      "Ipsec type used as a query option.";
                    config "false";
                    type enumeration {
                        enum forall {
                            value "0";
                            description "ipsec sa for all:";
                        }
                        enum forquery {
                            value "1";
                            description "ipsec sa for query:";
                        }
                    }
                }
            }

        }

        container gmp-packet-statistics {

            list gmp-packet-statistic {

                key "vrf-name addr-family if-name";
                config "false";

                leaf vrf-name {
                    description "Specify the name of a vpn instance.";
                    config "false";
                    //default "_public_";
                    type string {
                        length "0..32";
                    }
                }
                leaf if-name {
                    description "Specify the name of an interface.";
                    config "false";
                    type if-name;
                }
                leaf addr-family {
                    config "false";
                    type enumeration {
                        enum ipv4unicast {



Liu & Guo              Expires September 23, 2015              [Page 40]

Internet-Draft               GMP YANG model                   March 2015


                            value "0";
                            description "ipv4unicast:";
                        }
                        enum ipv6unicast {
                            value "1";
                            description "ipv6unicast:";
                        }
                    }
                }
                leaf ipv4-if-addr {
                    description
                      "Specify the ip address of an interface.";
                    config "false";
                    type inet:ipv4-address;
                }
                leaf ipv6-if-addr {
                    description
                      "Specify the ip address of an interface.";
                    config "false";
                    type inet:ipv6-address;
                }
                leaf query-recv-valid-num {
                    description
                      "Number of valid general query message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf query-recv-invalid-num {
                    description
                      "Number of invalid general query message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf query-recv-ignore-num {
                    description
                      "Number of ignored general query message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }



Liu & Guo              Expires September 23, 2015              [Page 41]

Internet-Draft               GMP YANG model                   March 2015


                leaf report-v1v2-asm-recv-valid-num {
                    description
                      "Number of valid asm v1v2 report message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v1v2-asm-recv-invalid-num {
                    description
                      "Number of invalid asm v1v2 report message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v1v2-asm-recv-ignore-num {
                    description
                      "Number of ignored asm v1v2 report message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v1v2-ssm-recv-valid-num {
                    description
                      "Number of valid ssm v1v2 report message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v1v2-ssm-recv-invalid-num {
                    description
                      "Number of invalid ssm v1v2 report message received
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v1v2-ssm-recv-ignore-num {
                    description
                      "Number of ignored ssm v1v2 report message received



Liu & Guo              Expires September 23, 2015              [Page 42]

Internet-Draft               GMP YANG model                   March 2015


                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf leave-asm-recv-valid-num {
                    description
                      "Number of valid asm leave message received on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf leave-asm-recv-invalid-num {
                    description
                      "Number of invalid asm leave message received on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf leave-asm-recv-ignore-num {
                    description
                      "Number of ignored asm leave message received on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf leave-ssm-recv-valid-num {
                    description
                      "Number of valid ssm leave message received on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf leave-ssm-recv-invalid-num {
                    description
                      "Number of invalid ssm leave message received on
                       the interface.";
                    config "false";
                    type uint32 {



Liu & Guo              Expires September 23, 2015              [Page 43]

Internet-Draft               GMP YANG model                   March 2015


                        range "0..4294967295";
                    }
                }
                leaf leave-ssm-recv-ignore-num {
                    description
                      "Number of ignored ssm leave message received on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-isin-recv-valid-num {
                    description
                      "Number of valid isin message received on the
                       interface";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-isin-recv-invalid-num {
                    description
                      "Number of invalid isin message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-isin-recv-ignore-num {
                    description
                      "Number of ignored isin message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-isex-recv-valid-num {
                    description
                      "Number of valid isex message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }



Liu & Guo              Expires September 23, 2015              [Page 44]

Internet-Draft               GMP YANG model                   March 2015


                leaf report-v3-isex-recv-invalid-num {
                    description
                      "Number of invalid isex message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-isex-recv-ignore-num {
                    description
                      "Number of ignored isex message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-toin-recv-valid-num {
                    description
                      "Number of valid toin message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-toin-recv-invalid-num {
                    description
                      "Number of invalid toin message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-toin-recv-ignore-num {
                    description
                      "Number of ignored toin message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-toex-recv-valid-num {
                    description
                      "Number of valid toex message received on the



Liu & Guo              Expires September 23, 2015              [Page 45]

Internet-Draft               GMP YANG model                   March 2015


                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-toex-recv-invalid-num {
                    description
                      "Number of invalid toex message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-toex-recv-ignore-num {
                    description
                      "Number of ignored toex message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-allow-recv-valid-num {
                    description
                      "Number of valid allow message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-allow-recv-invalid-num {
                    description
                      "Number of invalid allow message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-allow-recv-ignore-num {
                    description
                      "Number of ignored allow message received on the
                       interface.";
                    config "false";
                    type uint32 {



Liu & Guo              Expires September 23, 2015              [Page 46]

Internet-Draft               GMP YANG model                   March 2015


                        range "0..4294967295";
                    }
                }
                leaf report-v3-block-recv-valid-num {
                    description
                      "Number of valid block message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-block-recv-invalid-num {
                    description
                      "Number of invalid block message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-block-recv-ignore-num {
                    description
                      "Number of ignored block message received on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf source-recv-valid-num {
                    description
                      "Number of valid source received on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf source-recv-invalid-num {
                    description
                      "Number of invalid source received on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf source-recv-ignore-num {
                    description



Liu & Guo              Expires September 23, 2015              [Page 47]

Internet-Draft               GMP YANG model                   March 2015


                      "Number of ignored source received on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf query-send-num {
                    description
                      "Specifies count of send query message on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v1v2-asm-send-num {
                    description
                      "Specifies count of send asm v1v2 report message
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v1v2-ssm-send-num {
                    description
                      "Specifies count of send ssm v1v2 report message
                       on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf leave-asm-send-num {
                    description
                      "Specifies count of send asm leave message on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf leave-ssm-send-num {
                    description
                      "Specifies count of send ssm leave message on
                       the interface.";
                    config "false";
                    type uint32 {



Liu & Guo              Expires September 23, 2015              [Page 48]

Internet-Draft               GMP YANG model                   March 2015


                        range "0..4294967295";
                    }
                }
                leaf query-g-send-num {
                    description
                      "Specifies count of send (g) query message on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf query-sg-send-num {
                    description
                      "Specifies count of send (sg) query message on
                       the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-isin-send-num {
                    description
                      "Specifies count of send isin message on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-isex-send-num {
                    description
                      "Specifies count of send isex message on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-toin-send-num {
                    description
                      "Specifies count of send toin message on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }



Liu & Guo              Expires September 23, 2015              [Page 49]

Internet-Draft               GMP YANG model                   March 2015


                leaf report-v3-toex-send-num {
                    description
                      "Specifies count of send toex message on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-allow-send-num {
                    description
                      "Specifies count of send allow message on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf report-v3-block-send-num {
                    description
                      "Specifies count of send block message on the
                       interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
                leaf source-send-num {
                    description
                      "Specifies count of send source on the interface.";
                    config "false";
                    type uint32 {
                        range "0..4294967295";
                    }
                }
            }

        }


    }

    notification  gmp-group-join {

        description "Receive a group membership report";
        leaf vrf-name {
            description "Specify the name of a vpn instance.";
             //default "_public_";



Liu & Guo              Expires September 23, 2015              [Page 50]

Internet-Draft               GMP YANG model                   March 2015


            type string {
                length "0..32";
            }
        }
        leaf if-name {
            description "Specify the name of an interface.";
            type if-name;
        }
        leaf addr-family {
            type enumeration {
                enum ipv4unicast {
                    value "0";
                    description "ipv4unicast:";
                }
                enum ipv6unicast {
                    value "1";
                    description "ipv6unicast:";
                }
            }
        }
        leaf ipv4-group-addr {
            description
              "Multicast group address. In ipv4 address, the value
               ranges from 239.0.0.0 to 239.255.255.255. ";
            type inet:ipv4-address;
        }
        leaf ipv6-group-addr {
            description
              "Multicast group address. In ipv6, the value is in
               hexadecimal notation and in the format of
               ffxx:xxxx:xxxx::xxxx ";
            type inet:ipv6-address;
        }
        leaf ipv4-source-addr {
            description
              "Specify the address of a multicast source.";
            type inet:ipv4-address;
        }
        leaf ipv6-source-addr {
            description
              "Specify the address of a multicast source.";
            type inet:ipv6-address;
        }
        leaf ipv4-sender-addr {
            description "Specify the address of sender.";
            type inet:ipv4-address;
        }
        leaf ipv6-sender-addr {



Liu & Guo              Expires September 23, 2015              [Page 51]

Internet-Draft               GMP YANG model                   March 2015


            description "Specify the address of sender.";
            type inet:ipv6-address;
        }

    }

    notification  gmp-group-leave {

        description "Receive a group membership leave";
        leaf vrf-name {
            description "specify the name of a vpn instance.";
             //default "_public_";
            type string {
                length "0..32";
            }
        }
        leaf if-name {
            description "Specify the name of an interface.";
            type if-name;
        }
        leaf addr-family {
            type enumeration {
                enum ipv4unicast {
                    value "0";
                    description "ipv4unicast:";
                }
                enum ipv6unicast {
                    value "1";
                    description "ipv6unicast:";
                }
            }
        }
        leaf ipv4-group-addr {
            description
              "Multicast group address. In ipv4 address, the value
               ranges from 239.0.0.0 to 239.255.255.255. ";
            type inet:ipv4-address;
        }
        leaf ipv6-group-addr {
            description
              "Multicast group address. In ipv6, the value is in
               hexadecimal notation and in the format of
               ffxx:xxxx:xxxx::xxxx ";
            type inet:ipv6-address;
        }
        leaf ipv4-source-addr {
            description
              "Specify the address of a multicast source.";



Liu & Guo              Expires September 23, 2015              [Page 52]

Internet-Draft               GMP YANG model                   March 2015


            type inet:ipv4-address;
        }
        leaf ipv6-source-addr {
            description
              "Specify the address of a multicast source.";
            type inet:ipv6-address;
        }
        leaf ipv4-sender-addr {
            description "Specify the address of sender.";
            type inet:ipv4-address;
        }
        leaf ipv6-sender-addr {
            description "Specify the address of sender.";
            type inet:ipv6-address;
        }

    }

}

6.  IANA Considerations

   This draft includes no request to IANA.

7.  Security Considerations

   The data model defined does not create any security implications.
   This draft does not change any underlying security issues inherent in
   [I-D.ietf-netmod-routing-cfg].

8.  Acknowledgements

   TBD

9.  References

9.1.  Normative References

   [I-D.ietf-netmod-routing-cfg]
              Lhotka, L. and A. Lindem, "A YANG Data Model for Routing
              Management", draft-ietf-netmod-routing-cfg-17 (work in
              progress), March 2015.

   [RFC1112]  Deering, S., "Host extensions for IP multicasting", STD 5,
              RFC 1112, August 1989.

   [RFC2236]  Fenner, W., "Internet Group Management Protocol, Version
              2", RFC 2236, November 1997.



Liu & Guo              Expires September 23, 2015              [Page 53]

Internet-Draft               GMP YANG model                   March 2015


   [RFC2710]  Deering, S., Fenner, W., and B. Haberman, "Multicast
              Listener Discovery (MLD) for IPv6", RFC 2710, October
              1999.

   [RFC3376]  Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
              Thyagarajan, "Internet Group Management Protocol, Version
              3", RFC 3376, October 2002.

   [RFC3810]  Vida, R. and L. Costa, "Multicast Listener Discovery
              Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.

   [RFC4604]  Holbrook, H., Cain, B., and B. Haberman, "Using Internet
              Group Management Protocol Version 3 (IGMPv3) and Multicast
              Listener Discovery Protocol Version 2 (MLDv2) for Source-
              Specific Multicast", RFC 4604, August 2006.

   [RFC4607]  Holbrook, H. and B. Cain, "Source-Specific Multicast for
              IP", RFC 4607, August 2006.

   [RFC6020]  Bjorklund, M., "YANG - A Data Modeling Language for the
              Network Configuration Protocol (NETCONF)", RFC 6020,
              October 2010.

   [RFC6241]  Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
              Bierman, "Network Configuration Protocol (NETCONF)", RFC
              6241, June 2011.

9.2.  Informative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

Authors' Addresses

   Yisong Liu
   Huawei
   Huawei Bld., No.156 Beiqing Rd.
   Beijing  100095
   China

   Email: liuyisong@huawei.com










Liu & Guo              Expires September 23, 2015              [Page 54]

Internet-Draft               GMP YANG model                   March 2015


   Feng Guo
   Huawei
   Huawei Bld., No.156 Beiqing Rd.
   Beijing  100095
   China

   Email: guofeng@huawei.com












































Liu & Guo              Expires September 23, 2015              [Page 55]