netconfcentral logo

ietf-savi-dhcpv4

HTML

ietf-savi-dhcpv4@2017-08-15



  module ietf-savi-dhcpv4 {

    yang-version 1;

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

    prefix savi-dhcpv4;

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

    organization "IETF SAVI Working Group";

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

    description
      "
        The Yang data module defined for SAVI DHCPv4.
        ";

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

    }


    identity savi-dhcp-state {
      base savi:binding-state;
      description
        "Base identity for the sates definition of SAVI DHCPv4.";
    }

    identity no_bind {
      base savi-dhcp-state;
      description
        "A state defined in SAVI DHCPv4.";
    }

    identity init_bind {
      base savi-dhcp-state;
      description
        "A state defined in SAVI DHCPv4.";
    }

    identity bind {
      base savi-dhcp-state;
      description
        "A state defined in SAVI DHCPv4.";
    }

    identity detection {
      base savi-dhcp-state;
      description
        "A state defined in SAVI DHCPv4.";
    }

    identity recovery {
      base savi-dhcp-state;
      description
        "A state defined in SAVI DHCPv4.";
    }

    identity verify {
      base savi-dhcp-state;
      description
        "A state defined in SAVI DHCPv4.";
    }

    augment /savi:savi-state/savi:savi-instances/savi:savi-instance {
      when
        "/savi:savi/savi:savi-instances/savi:savi-instance/savi:savi-method = 'savi-dhcpv4'";
      description
        "Binding state table specific for SAVI DHCPv4.";
      container binding-state-table {
        description
          "Binding state table specific for SAVI DHCPv4.";
        list binding-state-entry {
          key "ifname address";
          description
            "A binding state entry specific for SAVI DHCPv4.";
          leaf address {
            type inet:ipv4-address;
            description
              "The binding source IP address.";
          }

          uses savi:binding-entry;

          leaf state {
            type identityref {
              base savi-dhcp-state;
            }
            description
              "State of the entry as defined in SAVI DHCP: NO_BIND, INIT_BIND, BOUND, DETECTION , RECOVERY, VERIFY.";
          }

          leaf tid {
            type uint32;
            description
              "The Transaction ID of the corresponding DHCP transaction.";
          }

          leaf timeouts {
            when
              "/savi:savi/savi:savi-instances/savi:savi-instance/params/if-attributes/if-attribute/data-snooping = 'true'";
            type uint32;
            description
              "the number of timeouts that expired in the current state";
          }
        }  // list binding-state-entry
      }  // container binding-state-table
    }

    augment /savi:savi/savi:savi-instances/savi:savi-instance {
      when
        "/savi:savi/savi:savi-instances/savi:savi-instance/savi:savi-method = 'savi-dhcpv4'";
      description
        "Parameters specific to SAVI DHCPv4";
      container params {
        description
          "Parameters specific to SAVI DHCPv4";
        leaf max-dhcp-responsetime {
          type yang:timeticks;
          default '12000';
          description
            "Maximum Solicit timeout value. Default is 120s.";
          reference
            "SOL_MAX_RT from [RFC3315]";

        }

        leaf max-leasequery-delay {
          type yang:timeticks;
          default '1000';
          description
            "Maximum LEASEQUERY timeout value. Default is 10s.";
          reference
            "LQ_MAX_RT from [RFC5007]";

        }

        leaf datasnooping-interval {
          type yang:timeticks;
          default '6000';
          description
            "Minimum interval between two successive EVE_DATA_UNMATCH
                events triggered by an attachment. Recommended interval:
                60s and configurable.";
          reference
            "DATA_SNOOPING_INTERVAL from [RFC7513]";

        }

        leaf offlink-delay {
          type yang:timeticks;
          default '3000';
          description
            "Period after a client is last detected before the binding
                anchor is being removed.  Recommended delay: 30s.";
          reference
            "OFFLINK_DELAY from [RFC7513].";

        }

        leaf detection-timeout {
          type yang:timeticks;
          default '50';
          description
            "Maximum duration of a hardware address verification step
                in the VERIFY state.";
          reference
            "DETECTION_TIMEOUT from [RFC7513]";

        }

        container if-attributes {
          description
            "Interface attributes specific to SAVI DHCPv4.";
          list if-attribute {
            key "ifname";
            description
              "A list of attributes for each interface.";
            leaf ifname {
              type if:interface-ref;
              description
                "The name of the interface.";
            }

            leaf trust-attribute {
              type boolean;
              default 'false';
              description
                "An attribute defined in SAVI DHCP.";
            }

            leaf dhcp-trust {
              type boolean;
              default 'false';
              description
                "An attribute defined in SAVI DHCP.";
            }

            leaf dhcp-snooping {
              type boolean;
              default 'true';
              description
                "An attribute defined in SAVI DHCP.";
            }

            leaf data-snooping {
              type boolean;
              default 'false';
              description
                "An attribute defined in SAVI DHCP.";
            }

            leaf validating {
              type boolean;
              default 'true';
              description
                "An attribute defined in SAVI DHCP.";
            }
          }  // list if-attribute
        }  // container if-attributes
      }  // container params
    }
  }  // module ietf-savi-dhcpv4

Summary

  
  
Organization IETF SAVI Working Group
  
Module ietf-savi-dhcpv4
Version 2017-08-15
File ietf-savi-dhcpv4@2017-08-15.yang
  
Prefix savi-dhcpv4
Namespace urn:ietf:params:xml:ns:yang:ietf-savi-dhcpv4
  
Cooked /cookedmodules/ietf-savi-dhcpv4/2017-08-15
YANG /src/ietf-savi-dhcpv4@2017-08-15.yang
XSD /xsd/ietf-savi-dhcpv4@2017-08-15.xsd
  
Abstract The Yang data module defined for SAVI DHCPv4.
  
Contact
WG Web:  <http://datatracker.ietf.org/wg/savi/charter>
Editor:   Changqing An
	 <mailto:acq@tsinghua.edu.cn>
       

Description

 
The Yang data module defined for SAVI DHCPv4.