ciena-mef-pfg-profile

This YANG module defines Ciena's configuration of the Private Forwarding Group Profile.

  • Version: 2017-10-23

    ciena-mef-pfg-profile@2017-10-23


    
      module ciena-mef-pfg-profile {
    
        yang-version 1;
    
        namespace
          "urn:ciena:params:xml:ns:yang:ciena-pn::ciena-mef-pfg-profile";
    
        prefix mef-pfg;
    
        organization "Ciena Corporation";
    
        contact
          "Web URL: http://www.ciena.com/
    E-mail:  yang@ciena.com
    Postal:  7035 Ridge Road
    	 Hanover, Maryland 21076
    	 U.S.A.
    Phone:   +1 800-921-1144
    Fax:     +1 410-694-5750";
    
        description
          "This YANG module defines Ciena's configuration of
    the Private Forwarding Group Profile.";
    
        revision "2017-10-23" {
          description
            "Added missing reference and description for container and list.";
          reference
            "RFC 6020: YANG - A Data Modeling Language for
            the Network Configuration Protocol (NETCONF).
            No specific reference; standard not available.";
    
        }
    
        revision "2016-05-19" {
          description "Initial revision.";
          reference
            "RFC 6020: YANG - A Data Modeling Language for
            the Network Configuration Protocol (NETCONF).
            No specific reference; standard not available.";
    
        }
    
    
        typedef pfg-profile-ref {
          type leafref {
            path "/mef-pfg:pfg-profiles/mef-pfg:pfg-profile/mef-pfg:name";
          }
          description
            "This type is used by the data models that need to reference
    configured Private Forwarding Group Profiles.";
        }
    
        typedef PfgType {
          type enumeration {
            enum "pfg-groups" {
              value 0;
              description
                "This pfg-type allows for up to 4 PFG groups with configurable forwarding
    policies. Interfaces (e.g. flow points) in the domain (e.g forwarding-domain)
    will specify which PFG-group A,B,C or D that they belong to. This is the only
    PfgType which allows configuration of forwarding group policies.";
            }
            enum "spoke-and-mesh" {
              value 1;
              description
                "This pfg-type supports spoke and mesh with strict forwarding policy rules
      spoke => can forward to mesh and can forward to spoke.
      mesh => can forward to spoke but cannot forward to mesh.
    Interfaces (e.g. flow points) in the domain (e.g forwarding-domain) will
    specify which PFG-group Spoke or Mesh that they belong to.";
            }
            enum "leaf-and-root" {
              value 2;
              description
                "This pfg-type supports leaf and root with strict forwarding policy rules
      leaf => can forward to root but cannot forward to leaf.
      root => can forward to leaf and can forward to root.
    Interfaces (e.g. flow points) in the domain (e.g forwarding-domain) will
    specify which PFG-group Leaf or Root that they belong to.";
            }
            enum "spokemesh-and-leafroot" {
              value 3;
              description
                "This pfg-type supports leaf, root, spoke and mesh with strict forwarding
    policy rules
      leaf  => can forward to root, can forward to mesh, can forward to spoke,
    	   but cannot forward to leaf.
      root  => can forward to root, can forward to mesh, can forward to spoke,
    	   can forward to leaf.
      spoke => can forward to root, can forward to mesh, can forward to mesh,
    	   can forward to leaf.
      mesh  => can forward to root, can forward to spoke, can forward to leaf,
    	   but cannot forward to mesh.
    Interfaces (e.g. flow points) in the domain (e.g forwarding-domain) will
    specify which PFG-group Spoke, Mesh, Leaf or Root that they belong to.";
            }
          }
          description
            "This represents different types of PFG Profiles.";
        }
    
        typedef group-policy {
          type bits {
            bit forward-to-a {
              position 0;
              description
                "can forward to PFG-group A.";
            }
            bit forward-to-b {
              position 1;
              description
                "can forward to PFG-group B.";
            }
            bit forward-to-c {
              position 2;
              description
                "can forward to PFG-group C.";
            }
            bit forward-to-d {
              position 3;
              description
                "can forward to PFG-group D.";
            }
          }
          description
            "When PfgType is pfg-groups the forwarding policies between the groups can be
    configured. Each PFG Group A,B,C or D can define the set of PFG-groups that
    it can forward to (including itself). If a forward-to-x bit is not set for a
    PFG-group, the PFG-group cannot forward to any interface e.g. flow-point) in
    that PFG-group. Each interface defines which PFG-group it belongs to.";
        }
    
        container pfg-profiles {
          description
            "Contains the list of PFG profiles currently present in the system.";
          list pfg-profile {
            key "name";
            description
              "Represents configurational data for corresponding PFG profile.";
            leaf name {
              type string;
              description
                "An administratively assigned string, which may be used
    to identify the profile.";
            }
    
            leaf description {
              type string;
              description
                "This is a user-defined string used to describe the profile.";
            }
    
            leaf pfg-type {
              type PfgType;
              description
                "The type of PFG-profile which has configurable policies or strict forwarding
    policies.";
            }
    
            leaf pfg-group-count {
              type uint32;
              description
                "When the pfg-type is pfg-groups, this defines the number of PFG groups that
    are valid in this profile.
    2 => PFG-Groups A and B
    3 => PFG-Groups A, B and C
    4 => PFG-Groups A,B,C and D.";
            }
    
            leaf group-A-policy {
              type group-policy;
              description
                "The set of forwarding rules for Group A.";
            }
    
            leaf group-B-policy {
              type group-policy;
              description
                "The set of forwarding rules for Group B.";
            }
    
            leaf group-C-policy {
              type group-policy;
              description
                "The set of forwarding rules for Group C.";
            }
    
            leaf group-D-policy {
              type group-policy;
              description
                "The set of forwarding rules for Group D.";
            }
          }  // list pfg-profile
        }  // container pfg-profiles
      }  // module ciena-mef-pfg-profile
    

© 2023 YumaWorks, Inc. All rights reserved.