netconfcentral logo

ietf-savi

HTML

ietf-savi@2017-08-15



  module ietf-savi {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-savi";

    prefix savi;

    import ietf-yang-types {
      prefix yang;
    }
    import ietf-inet-types {
      prefix inet;
    }
    import ietf-interfaces {
      prefix if;
    }

    organization "IETF SAVI Working Group";

    contact
      "
        WG Web:  <http://datatracker.ietf.org/wg/savi/charter>
        Editor:   Changqing An
                  <mailto:acq@tsinghua.edu.cn>
                ";

    description
      "This YANG module defines essential components for the management
        of a savi subsystem.";

    revision "2017-08-15" {
      description "Initial revision.";
      reference
        "DRAFT XXX: A YANG Data Model for SAVI Management.";

    }


    identity binding-state {
      base 
      description
        "Base identity for the sates of binding entry.";
    }

    grouping binding-entry {
      description
        "This grouping provides basic parameters of a binding entry.";
      leaf ifname {
        type if:interface-ref;
        description
          "The name of the interface.";
      }

      leaf mac {
        type yang:mac-address;
        description
          "The binding source mac address.";
      }

      leaf lifetime {
        type yang:timeticks;
        mandatory true;
        description
          "The remaining lifetime of the entry.";
      }
    }  // grouping binding-entry

    grouping binding-table {
      description
        "This grouping defines binding table for both IPv4 and IPv6.";
      container binding-table {
        description
          "Container for binding table.";
        container ipv4 {
          description
            "Container for binding table for IPv4 protocol.";
          list binding-entry {
            key "ifname address";
            description
              "Definition of a binding entry";
            leaf address {
              type inet:ipv4-address;
              description
                "IPv4 address of the binding host.";
            }

            uses binding-entry;

            leaf creationtime {
              type yang:timestamp;
              mandatory true;
              description
                "The value of the local clock when the entry was firstly created.";
            }

            leaf binding-method {
              type string;
              mandatory true;
              description
                "IP address assignment methods.";
            }
          }  // list binding-entry
        }  // container ipv4

        container ipv6 {
          description
            "Container for binding table for IPv4 protocol.";
          list binding-entry {
            key "ifname address";
            description
              "Definition of a binding entry";
            leaf address {
              type inet:ipv6-address;
              description
                "IPv6 address of the binding host.";
            }

            uses binding-entry;

            leaf creationtime {
              type yang:timestamp;
              mandatory true;
              description
                "The value of the local clock when the entry was firstly created.";
            }

            leaf binding-method {
              type string;
              mandatory true;
              description
                "IP address assignment methods.";
            }
          }  // list binding-entry
        }  // container ipv6
      }  // container binding-table
    }  // grouping binding-table

    container savi-state {
      config false;
      description
        "State data of the savi subsystem.";
      container savi-instances {
        description
          "Container of parameters for each savi method.";
        list savi-instance {
          key "savi-method";
          description
            "A list of parameters for each savi method.";
          leaf savi-method {
            type string;
            description
              "IP address assignment methods.";
          }

          leaf preference {
            type uint32;
            description
              "Preference of the savi method.";
          }
        }  // list savi-instance
      }  // container savi-instances

      uses binding-table;

      container statistics {
        description
          "Container of statistics parameters for savi subsystem.";
        leaf bst-entry-volume {
          type uint32;
          description
            "The volume of the the binding state table.";
        }

        leaf bst-entry-counts {
          type uint32;
          description
            "The count of the binding state table.";
        }

        container filtering-pks {
          description
            "Container of parameters for counting filtering packets.";
          list if-filtering-pks {
            key "ifname";
            description
              "A list of parameters for counting filtering packets.";
            leaf ifname {
              type if:interface-ref;
              description
                "The name of the interface.";
            }

            leaf filtering-pks {
              type uint32;
              description
                "The count of filtering packets.";
            }
          }  // list if-filtering-pks
        }  // container filtering-pks
      }  // container statistics
    }  // container savi-state

    container savi {
      description
        "Configuration data of the savi subsystem.";
      container savi-instances {
        description
          "Container of parameters for each savi method.";
        list savi-instance {
          key "savi-method";
          description
            "A list of parameters for each savi method.";
          leaf savi-method {
            type string;
            description
              "IP address assignment methods.";
          }

          leaf enable {
            type boolean;
            description
              "If the savi method is enabled?";
          }

          leaf preference {
            type uint32;
            description
              "Preference of the savi method.";
          }
        }  // list savi-instance
      }  // container savi-instances

      container if-filtering-attributes {
        description
          "Container for defining filtering attributes of each interface, common for every savi instance.";
        list if-filtering-attribute {
          key "ifname";
          description
            "A list of filtering attributes for each interface.";
          leaf ifname {
            type if:interface-ref;
            description
              "The name of the interface.";
          }

          leaf filtering-enabled {
            type boolean;
            default 'true';
            description
              "If the filtering attribute is enabled? ";
          }
        }  // list if-filtering-attribute
      }  // container if-filtering-attributes

      uses binding-table {
        when
          "/savi/savi-instances/savi-instance[savi-method = 'savi-manual']/enable = 'true'";
      }
    }  // container savi
  }  // module ietf-savi

Summary

  
  
Organization IETF SAVI Working Group
  
Module ietf-savi
Version 2017-08-15
File ietf-savi@2017-08-15.yang
  
Prefix savi
Namespace urn:ietf:params:xml:ns:yang:ietf-savi
  
Cooked /cookedmodules/ietf-savi/2017-08-15
YANG /src/ietf-savi@2017-08-15.yang
XSD /xsd/ietf-savi@2017-08-15.xsd
  
Abstract This YANG module defines essential components for the management of a savi subsystem.
  
Contact
WG Web:  <http://datatracker.ietf.org/wg/savi/charter>
Editor:   Changqing An
	 <mailto:acq@tsinghua.edu.cn>
       

Description

 
This YANG module defines essential components for the management
of a savi subsystem.

Groupings

Grouping Objects Abstract
binding-entry ifname mac lifetime This grouping provides basic parameters of a binding entry.
binding-table binding-table This grouping defines binding table for both IPv4 and IPv6.

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
savi container Configuration data of the savi subsystem.
savi-state container State data of the savi subsystem.
   binding-table container Container for binding table.
      ipv4 container Container for binding table for IPv4 protocol.
         binding-entry list Definition of a binding entry
            address leaf IPv4 address of the binding host.
            binding-method leaf IP address assignment methods.
            creationtime leaf The value of the local clock when the entry was firstly created.
            ifname leaf The name of the interface.
            lifetime leaf The remaining lifetime of the entry.
            mac leaf The binding source mac address.
      ipv6 container Container for binding table for IPv4 protocol.
         binding-entry list Definition of a binding entry
            address leaf IPv6 address of the binding host.
            binding-method leaf IP address assignment methods.
            creationtime leaf The value of the local clock when the entry was firstly created.
            ifname leaf The name of the interface.
            lifetime leaf The remaining lifetime of the entry.
            mac leaf The binding source mac address.
   savi-instances container Container of parameters for each savi method.
      savi-instance list A list of parameters for each savi method.
         preference leaf Preference of the savi method.
         savi-method leaf IP address assignment methods.
   statistics container Container of statistics parameters for savi subsystem.
      bst-entry-counts leaf The count of the binding state table.
      bst-entry-volume leaf The volume of the the binding state table.
      filtering-pks container Container of parameters for counting filtering packets.
         if-filtering-pks list A list of parameters for counting filtering packets.
            filtering-pks leaf The count of filtering packets.
            ifname leaf The name of the interface.
   binding-table container Container for binding table.
      ipv4 container Container for binding table for IPv4 protocol.
         binding-entry list Definition of a binding entry
            address leaf IPv4 address of the binding host.
            binding-method leaf IP address assignment methods.
            creationtime leaf The value of the local clock when the entry was firstly created.
            ifname leaf The name of the interface.
            lifetime leaf The remaining lifetime of the entry.
            mac leaf The binding source mac address.
      ipv6 container Container for binding table for IPv4 protocol.
         binding-entry list Definition of a binding entry
            address leaf IPv6 address of the binding host.
            binding-method leaf IP address assignment methods.
            creationtime leaf The value of the local clock when the entry was firstly created.
            ifname leaf The name of the interface.
            lifetime leaf The remaining lifetime of the entry.
            mac leaf The binding source mac address.
   if-filtering-attributes container Container for defining filtering attributes of each interface, common for every savi instance.
      if-filtering-attribute list A list of filtering attributes for each interface.
         filtering-enabled leaf If the filtering attribute is enabled?
         ifname leaf The name of the interface.
   savi-instances container Container of parameters for each savi method.
      savi-instance list A list of parameters for each savi method.
         enable leaf If the savi method is enabled?
         preference leaf Preference of the savi method.
         savi-method leaf IP address assignment methods.