Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 6728

Configuration Data Model for the IP Flow Information Export (IPFIX) and Packet Sampling (PSAMP) Protocols

Pages: 129
Proposed Standard
Errata
Part 4 of 6 – Pages 57 to 77
First   Prev   Next

Top   ToC   RFC6728 - Page 57   prevText

6. YANG Module of the IPFIX/PSAMP Configuration Data Model

The YANG module specification of the configuration data model is listed below. It makes use of the common YANG types defined in the modules urn:ietf:params:xml:ns:yang:ietf-yang-types and urn:ietf:params:xml:ns:yang:ietf-inet-types [RFC6021]. <CODE BEGINS> file "ietf-ipfix-psamp@2012-09-05.yang" module ietf-ipfix-psamp { namespace "urn:ietf:params:xml:ns:yang:ietf-ipfix-psamp"; prefix ipfix; import ietf-yang-types { prefix yang; } import ietf-inet-types { prefix inet; } organization "IETF IPFIX Working Group"; contact "WG Web: <http://tools.ietf.org/wg/ipfix/> WG List: <ipfix@ietf.org> WG Chair: Nevil Brownlee <n.brownlee@auckland.ac.nz>
Top   ToC   RFC6728 - Page 58
      WG Chair: Juergen Quittek
                <quittek@neclab.eu>

      Editor:   Gerhard Muenz
                <muenz@net.in.tum.de>";

    description
      "IPFIX/PSAMP Configuration Data Model

      Copyright (c) 2012 IETF Trust and the persons identified as
      the document authors.  All rights reserved.
      Redistribution and use in source and binary forms, with or
      without modification, is permitted pursuant to, and subject
      to the license terms contained in, the Simplified BSD License
      set forth in Section 4.c of the IETF Trust's Legal Provisions
      Relating to IETF Documents
      (http://trustee.ietf.org/license-info).";

    revision 2012-09-05 {
      description "Initial version";
      reference "RFC 6728: Configuration Data Model for the IP Flow
        Information Export (IPFIX) and Packet Sampling (PSAMP)
        Protocols";
    }

    /*****************************************************************
    * Features
    *****************************************************************/

    feature exporter {
      description "If supported, the Monitoring Device can be used as
        an Exporter.  Exporting Processes can be configured.";
    }

    feature collector {
      description "If supported, the Monitoring Device can be used as
        a Collector.  Collecting Processes can be configured.";
    }

    feature meter {
      description "If supported, Observation Points, Selection
        Processes, and Caches can be configured.";
    }

    feature psampSampCountBased {
      description "If supported, the Monitoring Device supports
        count-based Sampling.  The Selector method sampCountBased can
        be configured.";
Top   ToC   RFC6728 - Page 59
    }

    feature psampSampTimeBased {
      description "If supported, the Monitoring Device supports
        time-based Sampling.  The Selector method sampTimeBased can
        be configured.";
    }

    feature psampSampRandOutOfN {
      description "If supported, the Monitoring Device supports
        random n-out-of-N Sampling.  The Selector method
        sampRandOutOfN can be configured.";
    }

    feature psampSampUniProb {
      description "If supported, the Monitoring Device supports
        uniform probabilistic Sampling.  The Selector method
        sampUniProb can be configured.";
    }

    feature psampFilterMatch {
      description "If supported, the Monitoring Device supports
        property match Filtering.  The Selector method filterMatch
        can be configured.";
    }

    feature psampFilterHash {
      description "If supported, the Monitoring Device supports
        hash-based Filtering.  The Selector method filterHash can be
        configured.";
    }

    feature immediateCache {
      description "If supported, the Monitoring Device supports
        Caches generating PSAMP Packet Reports by configuration with
        immediateCache.";
    }

    feature timeoutCache {
      description "If supported, the Monitoring Device supports
        Caches generating IPFIX Flow Records by configuration with
        timeoutCache.";
    }

    feature naturalCache {
      description "If supported, the Monitoring Device supports
        Caches generating IPFIX Flow Records by configuration with
        naturalCache.";
Top   ToC   RFC6728 - Page 60
    }

    feature permanentCache {
      description "If supported, the Monitoring Device supports
        Caches generating IPFIX Flow Records by configuration with
        permanentCache.";
    }

    feature udpTransport {
      description "If supported, the Monitoring Device supports UDP
        as the transport protocol.";
    }

    feature tcpTransport {
      description "If supported, the Monitoring Device supports TCP
        as the transport protocol.";
    }

    feature fileReader {
      description "If supported, the Monitoring Device supports the
        configuration of Collecting Processes as File Readers.";
    }

    feature fileWriter {
      description "If supported, the Monitoring Device supports the
        configuration of Exporting Processes as File Writers.";
    }

    /*****************************************************************
    * Identities
    *****************************************************************/

    /*** Hash function identities ***/
    identity hashFunction {
      description "Base identity for all hash functions used for
        hash-based packet Filtering.  Identities derived from
        this base are used by the leaf
        /ipfix/selectionProcess/selector/filterHash/hashFunction.";
    }
    identity BOB {
      base "hashFunction";
      description "BOB hash function";
      reference "RFC 5475, Section 6.2.4.1.";
    }
    identity IPSX {
      base "hashFunction";
      description "IPSX hash function";
      reference "RFC 5475, Section 6.2.4.1.";
Top   ToC   RFC6728 - Page 61
    }
    identity CRC {
      base "hashFunction";
      description "CRC hash function";
      reference "RFC 5475, Section 6.2.4.1.";
    }

    /*** Export mode identities ***/
    identity exportMode {
      description "Base identity for different usages of export
        destinations configured for an Exporting Process.
        Identities derived from this base are used by the leaf
        /ipfix/exportingProcess/exportMode.";
    }
    identity parallel {
      base "exportMode";
      description "Parallel export of Data Records to all
        destinations configured for the Exporting Process.";
    }
    identity loadBalancing {
      base "exportMode";
      description "Load-balancing between the different destinations
        configured for the Exporting Process.";
    }
    identity fallback {
      base "exportMode";
      description "Export to the primary destination (i.e., the first
        SCTP, UDP, TCP, or file destination configured for the
        Exporting Process).  If the export to the primary destination
        fails, the Exporting Process tries to export to the secondary
        destination.  If the secondary destination fails as well, it
        continues with the tertiary, etc.";
    }

    /*** Options type identities ***/
    identity optionsType {
      description "Base identity for report types exported with
        options.  Identities derived from this base are used by the leaf
        /ipfix/exportingProcess/options/optionsType.";
    }
    identity meteringStatistics {
      base "optionsType";
      description "Metering Process Statistics.";
      reference "RFC 5101, Section 4.1.";
    }
    identity meteringReliability {
      base "optionsType";
      description "Metering Process Reliability Statistics.";
Top   ToC   RFC6728 - Page 62
      reference "RFC 5101, Section 4.2.";
    }
    identity exportingReliability {
      base "optionsType";
      description "Exporting Process Reliability
        Statistics.";
      reference "RFC 5101, Section 4.3.";
    }
    identity flowKeys {
      base "optionsType";
      description "Flow Keys.";
      reference "RFC 5101, Section 4.4.";
    }
    identity selectionSequence {
      base "optionsType";
      description "Selection Sequence and Selector Reports.";
      reference "RFC 5476, Sections 6.5.1 and 6.5.2.";
    }
    identity selectionStatistics {
      base "optionsType";
      description "Selection Sequence Statistics Report.";
      reference "RFC 5476, Sections 6.5.3.";
    }
    identity accuracy {
      base "optionsType";
      description "Accuracy Report.";
      reference "RFC 5476, Section 6.5.4.";
    }
    identity reducingRedundancy {
      base "optionsType";
      description "Enables the utilization of Options Templates to
        reduce redundancy in the exported Data Records.";
      reference "RFC 5473.";
    }
    identity extendedTypeInformation {
      base "optionsType";
      description "Export of extended type information for
        enterprise-specific Information Elements used in the
        exported Templates.";
      reference "RFC 5610.";
    }

    /*****************************************************************
    * Type definitions
    *****************************************************************/

    typedef ieNameType {
      type string {
Top   ToC   RFC6728 - Page 63
        length "1..max";
        pattern "\S+";
      }
      description "Type for Information Element names.  Whitespaces
        are not allowed.";
    }

    typedef ieIdType {
      type uint16 {
        range "1..32767" {
          description "Valid range of Information Element
              identifiers.";
          reference "RFC 5102, Section 4.";
        }
      }
      description "Type for Information Element identifiers.";
    }

    typedef nameType {
      type string {
        length "1..max";
        pattern "\S(.*\S)?";
      }
      description "Type for 'name' leafs, which are used to identify
        specific instances within lists, etc.
        Leading and trailing whitespaces are not allowed.";
    }

    typedef ifNameType {
      type string {
        length "1..255";
      }
      description "This corresponds to the DisplayString textual
        convention of SNMPv2-TC, which is used for ifName in the IF
        MIB module.";
      reference "RFC 2863 (ifName).";
    }

    typedef direction {
      type enumeration {
        enum ingress {
          description "This value is used for monitoring incoming
            packets.";
        }
        enum egress {
          description "This value is used for monitoring outgoing
            packets.";
        }
Top   ToC   RFC6728 - Page 64
        enum both {
          description "This value is used for monitoring incoming and
            outgoing packets.";
        }
      }
      description "Direction of packets going through an interface or
        linecard.";
    }

    typedef transportSessionStatus {
      type enumeration {
        enum inactive {
          description "This value MUST be used for Transport Sessions
            that are specified in the system but currently not active.
            The value can be used for Transport Sessions that are
            backup (secondary) sessions.";
        }
        enum active {
          description "This value MUST be used for Transport Sessions
            that are currently active and transmitting or receiving
            data.";
        }
        enum unknown {
          description "This value MUST be used if the status of the
            Transport Sessions cannot be detected by the device.  This
            value should be avoided as far as possible.";
        }
      }
      description "Status of a Transport Session.";
      reference "RFC 6615, Section 8 (ipfixTransportSessionStatus).";
    }

    /*****************************************************************
    * Groupings
    *****************************************************************/

    grouping observationPointParameters {
      description "Interface as input to Observation Point.";
      leaf observationPointId {
        type uint32;
        config false;
        description "Observation Point ID (i.e., the value of the
          Information Element observationPointId) assigned by the
          Monitoring Device.";
        reference "IANA registry for IPFIX Entities,
          http://www.iana.org/assignments/ipfix.";
      }
      leaf observationDomainId {
Top   ToC   RFC6728 - Page 65
        type uint32;
        mandatory true;
        description "The Observation Domain ID associates the
          Observation Point to an Observation Domain.  Observation
          Points with identical Observation Domain IDs belong to the
          same Observation Domain.
          Note that this parameter corresponds to
          ipfixObservationPointObservationDomainId in the IPFIX MIB
          module.";
        reference "RFC 5101; RFC 6615, Section 8
          (ipfixObservationPointObservationDomainId).";
      }
      leaf-list ifName {
        type ifNameType;
        description "List of names identifying interfaces of the
          Monitoring Device.  The Observation Point observes packets at
          the specified interfaces.";
      }
      leaf-list ifIndex {
        type uint32;
        description "List of ifIndex values pointing to entries in the
          ifTable of the IF-MIB module maintained by the Monitoring
          Device.  The Observation Point observes packets at the
          specified interfaces.
          This parameter SHOULD only be used if an SNMP agent enables
          access to the ifTable.
          Note that this parameter corresponds to
          ipfixObservationPointPhysicalInterface in the IPFIX MIB
          module.";
        reference "RFC 2863; RFC 6615, Section 8
          (ipfixObservationPointPhysicalInterface).";
      }
      leaf-list entPhysicalName {
        type string;
        description "List of names identifying physical entities of the
          Monitoring Device.  The Observation Point observes packets at
          the specified entities.";
      }
      leaf-list entPhysicalIndex {
        type uint32;
        description "List of entPhysicalIndex values pointing to
          entries in the entPhysicalTable of the ENTITY-MIB module
          maintained by the Monitoring Device.  The Observation Point
          observes packets at the specified entities.
          This parameter SHOULD only be used if an SNMP agent enables
          access to the entPhysicalTable.
          Note that this parameter corresponds to
          ipfixObservationPointPhysicalEntity in the IPFIX MIB
Top   ToC   RFC6728 - Page 66
          module.";
        reference "RFC 4133; RFC 6615, Section 8
          (ipfixObservationPointPhysicalInterface).";
      }
      leaf direction {
        type direction;
        default both;
        description "Direction of packets.  If not applicable (e.g., in
          the case of a sniffing interface in promiscuous mode), this
          parameter is ignored.";
      }
    }

    grouping sampCountBasedParameters {
      description "Configuration parameters of a Selector applying
        systematic count-based packet Sampling to the packet
        stream.";
      reference "RFC 5475, Section 5.1; RFC 5476, Section 6.5.2.1.";
      leaf packetInterval {
        type uint32;
        units packets;
        mandatory true;
        description "The number of packets that are consecutively
          sampled between gaps of length packetSpace.
          This parameter corresponds to the Information Element
          samplingPacketInterval and to psampSampCountBasedInterval
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.2.2; RFC 6727, Section 6
          (psampSampCountBasedInterval).";
      }
      leaf packetSpace {
        type uint32;
        units packets;
        mandatory true;
        description "The number of unsampled packets between two
          Sampling intervals.
          This parameter corresponds to the Information Element
          samplingPacketSpace and to psampSampCountBasedSpace
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.2.3; RFC 6727, Section 6
          (psampSampCountBasedSpace).";
      }
    }

    grouping sampTimeBasedParameters {
      description "Configuration parameters of a Selector applying
        systematic time-based packet Sampling to the packet
        stream.";
Top   ToC   RFC6728 - Page 67
      reference "RFC 5475, Section 5.1; RFC 5476, Section 6.5.2.2.";
      leaf timeInterval {
        type uint32;
        units microseconds;
        mandatory true;
        description "The time interval in microseconds during
          which all arriving packets are sampled between gaps
          of length timeSpace.
          This parameter corresponds to the Information Element
          samplingTimeInterval and to psampSampTimeBasedInterval
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.2.4; RFC 6727, Section 6
          (psampSampTimeBasedInterval).";
      }
      leaf timeSpace {
        type uint32;
        units microseconds;
        mandatory true;
        description "The time interval in microseconds during
          which no packets are sampled between two Sampling
          intervals specified by timeInterval.
          This parameter corresponds to the Information Element
          samplingTimeInterval and to psampSampTimeBasedSpace
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.2.5; RFC 6727, Section 6
          (psampSampTimeBasedSpace).";
      }
    }

    grouping sampRandOutOfNParameters {
      description "Configuration parameters of a Selector applying
        n-out-of-N packet Sampling to the packet stream.";
      reference "RFC 5475, Section 5.2.1; RFC 5476, Section 6.5.2.3.";
      leaf size {
        type uint32;
        units packets;
        mandatory true;
        description "The number of elements taken from the parent
          population.
          This parameter corresponds to the Information Element
          samplingSize and to psampSampRandOutOfNSize in the PSAMP
          MIB module.";
        reference "RFC 5477, Section 8.2.6; RFC 6727, Section 6
          (psampSampRandOutOfNSize).";
      }
      leaf population {
        type uint32;
        units packets;
Top   ToC   RFC6728 - Page 68
        mandatory true;
        description "The number of elements in the parent
          population.
          This parameter corresponds to the Information Element
          samplingPopulation and to psampSampRandOutOfNPopulation
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.2.7; RFC 6727, Section 6
          (psampSampRandOutOfNPopulation).";
      }
    }

    grouping sampUniProbParameters {
      description "Configuration parameters of a Selector applying
        uniform probabilistic packet Sampling (with equal
        probability per packet) to the packet stream.";
      reference "RFC 5475, Section 5.2.2.1;
        RFC 5476, Section 6.5.2.4.";
      leaf probability {
        type decimal64 {
          fraction-digits 18;
          range "0..1";
        }
        mandatory true;
        description "Probability that a packet is sampled,
          expressed as a value between 0 and 1.  The probability
          is equal for every packet.
          This parameter corresponds to the Information Element
          samplingProbability and to psampSampUniProbProbability
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.2.8; RFC 6727, Section 6
          (psampSampUniProbProbability).";
      }
    }

    grouping filterMatchParameters {
      description "Configuration parameters of a Selector applying
        property match Filtering to the packet stream.
        The field to be matched is specified as an Information
        Element.";
      reference "RFC 5475, Section 6.1; RFC 5476, Section 6.5.2.5.";
      choice nameOrId {
        mandatory true;
        description "The field to be matched is specified by
          either the name or the identifier of the Information
          Element.";
        leaf ieName {
          type ieNameType;
          description "Name of the Information Element.";
Top   ToC   RFC6728 - Page 69
        }
        leaf ieId {
          type ieIdType;
          description "Identifier of the Information Element.";
        }
      }
      leaf ieEnterpriseNumber {
        type uint32;
        default 0;
        description "If this parameter is zero, the Information
          Element is registered in the IANA registry of IPFIX
          Information Elements.
          If this parameter is configured with a non-zero private
          enterprise number, the Information Element is
          enterprise-specific.";
        reference "IANA registry for Private Enterprise Numbers,
          http://www.iana.org/assignments/enterprise-numbers;
          IANA registry for IPFIX Entities,
          http://www.iana.org/assignments/ipfix.";
      }
      leaf value {
        type string;
        mandatory true;
        description "Matching value of the Information Element.";
      }
    }

    grouping filterHashParameters {
      description "Configuration parameters of a Selector applying
        hash-based Filtering to the packet stream.";
      reference "RFC 5475, Section 6.2; RFC 5476, Section 6.5.2.6.";
      leaf hashFunction {
        type identityref {
          base "hashFunction";
        }
        default BOB;
        description "Hash function to be applied.  According to
          RFC 5475, Section 6.2.4.1, 'BOB' must be used in order to
          be compliant with PSAMP.
          This parameter functionally corresponds to
          psampFiltHashFunction in the PSAMP MIB module.";
        reference "RFC 6727, Section 6 (psampFiltHashFunction)";
      }
      leaf initializerValue {
        type uint64;
        description "Initializer value to the hash function.
          If not configured by the user, the Monitoring Device
          arbitrarily chooses an initializer value.
Top   ToC   RFC6728 - Page 70
          This parameter corresponds to the Information Element
          hashInitialiserValue and to psampFiltHashInitializerValue
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.3.9; RFC 6727, Section 6
          (psampFiltHashInitializerValue).";
      }
      leaf ipPayloadOffset {
        type uint64;
        units octets;
        default 0;
        description "IP payload offset indicating the position of
          the first payload byte considered as input to the hash
          function.
          Default value 0 corresponds to the minimum offset that
          must be configurable according to RFC 5476, Section
          6.5.2.6.
          This parameter corresponds to the Information Element
          hashIPPayloadOffset and to psampFiltHashIpPayloadOffset
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.3.2; RFC 6727, Section 6
          (psampFiltHashIpPayloadOffset).";
      }
      leaf ipPayloadSize {
        type uint64;
        units octets;
        default 8;
        description "Number of IP payload bytes used as input to
          the hash function, counted from the payload offset.
          If the IP payload is shorter than the payload range,
          all available payload octets are used as input.
          Default value 8 corresponds to the minimum IP payload
          size that must be configurable according to RFC 5476,
          Section 6.5.2.6.
          This parameter corresponds to the Information Element
          hashIPPayloadSize and to psampFiltHashIpPayloadSize
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.3.3; RFC 6727, Section 6
          (psampFiltHashIpPayloadSize).";
      }
      leaf digestOutput {
        type boolean;
        default false;
        description "If true, the output from this Selector is
          included in the Packet Report as a packet digest.
          Therefore, the configured Cache Layout needs to contain
          a digestHashValue field.
          This parameter corresponds to the Information Element
          hashDigestOutput.";
Top   ToC   RFC6728 - Page 71
        reference "RFC 5477, Section 8.3.8.";
      }
      leaf outputRangeMin {
        type uint64;
        config false;
        description "Beginning of the hash function's potential
          range.
          This parameter corresponds to the Information Element
          hashOutputRangeMin and to psampFiltHashOutputRangeMin
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.3.4; RFC 6727, Section 6
          (psampFiltHashOutputRangeMin).";
      }
      leaf outputRangeMax {
        type uint64;
        config false;
        description "End of the hash function's potential range.
          This parameter corresponds to the Information Element
          hashOutputRangeMax and to psampFiltHashOutputRangeMax
          in the PSAMP MIB module.";
        reference "RFC 5477, Section 8.3.5; RFC 6727, Section 6
          (psampFiltHashOutputRangeMax).";
      }
      list selectedRange {
        key name;
        min-elements 1;
        description "List of hash function return ranges for
          which packets are selected.";
        leaf name {
          type nameType;
          description "Key of this list.";
        }
        leaf min {
          type uint64;
          description "Beginning of the hash function's selected
            range.
            This parameter corresponds to the Information Element
            hashSelectedRangeMin and to psampFiltHashSelectedRangeMin
            in the PSAMP MIB module.";
          reference "RFC 5477, Section 8.3.6; RFC 6727, Section 6
          (psampFiltHashSelectedRangeMin).";
        }
        leaf max {
          type uint64;
          description "End of the hash function's selected range.
            This parameter corresponds to the Information Element
            hashSelectedRangeMax and to psampFiltHashSelectedRangeMax
            in the PSAMP MIB module.";
Top   ToC   RFC6728 - Page 72
          reference "RFC 5477, Section 8.3.7; RFC 6727, Section 6
          (psampFiltHashSelectedRangeMax).";
        }
      }
    }

    grouping selectorParameters {
      description "Configuration and state parameters of a Selector.";
      choice Method {
        mandatory true;
        description "Packet selection method applied by the Selector.";
        leaf selectAll {
          type empty;
          description "Method that selects all packets.";
        }
        container sampCountBased {
          if-feature psampSampCountBased;
          description "Systematic count-based packet Sampling.";
          uses sampCountBasedParameters;
        }
        container sampTimeBased {
          if-feature psampSampTimeBased;
          description "Systematic time-based packet Sampling.";
          uses sampTimeBasedParameters;
        }
        container sampRandOutOfN {
          if-feature psampSampRandOutOfN;
          description "n-out-of-N packet Sampling.";
          uses sampRandOutOfNParameters;
        }
        container sampUniProb {
          if-feature psampSampUniProb;
          description "Uniform probabilistic packet Sampling.";
          uses sampUniProbParameters;
        }
        container filterMatch {
          if-feature psampFilterMatch;
          description "Property match Filtering.";
          uses filterMatchParameters;
        }
        container filterHash {
          if-feature psampFilterHash;
          description "Hash-based Filtering.";
          uses filterHashParameters;
        }
      }
      leaf packetsObserved {
        type yang:counter64;
Top   ToC   RFC6728 - Page 73
        config false;
        description "The number of packets observed at the input of
          the Selector.
          If this is the first Selector in the Selection Process,
          this counter corresponds to the total number of packets in
          all Observed Packet Streams at the input of the Selection
          Process.  Otherwise, the counter corresponds to the total
          number of packets at the output of the preceding Selector.
          Discontinuities in the value of this counter can occur at
          re-initialization of the management system, and at other
          times as indicated by the value of
          selectorDiscontinuityTime.
          Note that this parameter corresponds to
          ipfixSelectorStatsPacketsObserved in the IPFIX MIB
          module.";
        reference "RFC 6615, Section 8
          (ipfixSelectorStatsPacketsObserved).";
      }
      leaf packetsDropped {
        type yang:counter64;
        config false;
        description "The total number of packets discarded by the
          Selector.
          Discontinuities in the value of this counter can occur at
          re-initialization of the management system, and at other
          times as indicated by the value of
          selectorDiscontinuityTime.
          Note that this parameter corresponds to
          ipfixSelectorStatsPacketsDropped in the IPFIX MIB
          module.";
        reference "RFC 6615, Section 8
          (ipfixSelectorStatsPacketsDropped).";
      }
      leaf selectorDiscontinuityTime {
        type yang:date-and-time;
        config false;
        description "Timestamp of the most recent occasion at which
          one or more of the Selector counters suffered a
          discontinuity.
          Note that this parameter functionally corresponds to
          ipfixSelectionProcessStatsDiscontinuityTime in the IPFIX
          MIB module.  In contrast to
          ipfixSelectionProcessStatsDiscontinuityTime, the time is
          absolute and not relative to sysUpTime.";
        reference "RFC 6615, Section 8
          (ipfixSelectionProcessStatsDiscontinuityTime).";
      }
    }
Top   ToC   RFC6728 - Page 74
    grouping cacheLayoutParameters {
      description "Cache Layout parameters used by immediateCache,
        timeoutCache, naturalCache, and permanentCache.";
      container cacheLayout {
        description "Cache Layout parameters.";
        list cacheField {
          key name;
          min-elements 1;
          description "Superset of fields that are included in the
            Packet Reports or Flow Records generated by the Cache.";
          leaf name {
            type nameType;
            description "Key of this list.";
          }
          choice nameOrId {
            mandatory true;
            description "Name or identifier of the Information
              Element.";
            reference "RFC 5102, Section 2; IANA registry for IPFIX
              Entities, http://www.iana.org/assignments/ipfix.";
            leaf ieName {
              type ieNameType;
              description "Name of the Information Element.";
            }
            leaf ieId {
              type ieIdType;
              description "Identifier of the Information Element.";
            }
          }
          leaf ieLength {
            type uint16;
            units octets;
            description "Length of the field in which the Information
              Element is encoded.  A value of 65535 specifies a
              variable-length Information Element.  For Information
              Elements of integer and float type, the field length MAY
              be set to a smaller value than the standard length of
              the abstract data type if the rules of reduced size
              encoding are fulfilled.
              If not configured by the user, this parameter is set by
              the Monitoring Device.";
            reference "RFC 5101, Section 6.2.";
          }
          leaf ieEnterpriseNumber {
            type uint32;
            default 0;
            description "If this parameter is zero, the Information
              Element is registered in the IANA registry of IPFIX
Top   ToC   RFC6728 - Page 75
              Information Elements.
              If this parameter is configured with a non-zero private
              enterprise number, the Information Element is
              enterprise-specific.
              If the enterprise number is set to 29305, this field
              contains a Reverse Information Element.  In this case,
              the Cache MUST generate Data Records in accordance to
              RFC 5103.";
            reference "RFC 5101; RFC 5103;
              IANA registry for Private Enterprise Numbers,
              http://www.iana.org/assignments/enterprise-numbers;
              IANA registry for IPFIX Entities,
              http://www.iana.org/assignments/ipfix.";
          }
          leaf isFlowKey {
            when "(name(../../..) != 'immediateCache')
              and
              ((count(../ieEnterpriseNumber) = 0)
              or
              (../ieEnterpriseNumber != 29305))" {
              description "This parameter is not available for
                Reverse Information Elements (which have enterprise
                number 29305).  It is also not available for
                immediateCache.";
            }
            type empty;
            description "If present, this is a flow key.";
          }
        }
      }
    }

    grouping flowCacheParameters {
      description "Configuration and state parameters of a Cache
        generating Flow Records.";
      leaf maxFlows {
        type uint32;
        units flows;
        description "This parameter configures the maximum number of
          Flows in the Cache, which is the maximum number of Flows
          that can be measured simultaneously.
          The Monitoring Device MUST ensure that sufficient resources
          are available to store the configured maximum number of
          Flows.
          If the maximum number of Flows is measured, an additional
          Flow can be measured only if an existing entry is removed.
          However, traffic that pertains to existing Flows can
          continue to be measured.";
Top   ToC   RFC6728 - Page 76
      }
      leaf activeTimeout {
        when "(name(..) = 'timeoutCache') or
          (name(..) = 'naturalCache')" {
          description "This parameter is only available for
            timeoutCache and naturalCache.";
        }
        type uint32;
        units seconds;
        description "This parameter configures the time in
          seconds after which a Flow is expired even though packets
          matching this Flow are still received by the Cache.
          The parameter value zero indicates infinity, meaning that
          there is no active timeout.
          If not configured by the user, the Monitoring Device sets
          this parameter.
          Note that this parameter corresponds to
          ipfixMeteringProcessCacheActiveTimeout in the IPFIX
          MIB module.";
        reference "RFC 6615, Section 8
          (ipfixMeteringProcessCacheActiveTimeout).";
      }
      leaf idleTimeout {
        when "(name(..) = 'timeoutCache') or
          (name(..) = 'naturalCache')" {
          description "This parameter is only available for
            timeoutCache and naturalCache.";
        }
        type uint32;
        units seconds;
        description "This parameter configures the time in
          seconds after which a Flow is expired if no more packets
          matching this Flow are received by the Cache.
          The parameter value zero indicates infinity, meaning that
          there is no idle timeout.
          If not configured by the user, the Monitoring Device sets
          this parameter.
          Note that this parameter corresponds to
          ipfixMeteringProcessCacheIdleTimeout in the IPFIX
          MIB module.";
        reference "RFC 6615, Section 8
          (ipfixMeteringProcessCacheIdleTimeout).";
      }
      leaf exportInterval {
        when "name(..) = 'permanentCache'" {
          description "This parameter is only available for
            permanentCache.";
        }
Top   ToC   RFC6728 - Page 77
        type uint32;
        units seconds;
        description "This parameter configures the interval (in
          seconds) for periodical export of Flow Records.
          If not configured by the user, the Monitoring Device sets
          this parameter.";
      }
      leaf activeFlows {
        type yang:gauge32;
        units flows;
        config false;
        description "The number of Flows currently active in this
          Cache.
          Note that this parameter corresponds to
          ipfixMeteringProcessCacheActiveFlows in the IPFIX MIB
          module.";
        reference "RFC 6615, Section 8
          (ipfixMeteringProcessCacheActiveFlows).";
      }
      leaf unusedCacheEntries {
        type yang:gauge32;
        units flows;
        config false;
        description "The number of unused Cache entries in this
          Cache.
          Note that this parameter corresponds to
          ipfixMeteringProcessCacheUnusedCacheEntries in the IPFIX
          MIB module.";
        reference "RFC 6615, Section 8
          (ipfixMeteringProcessCacheUnusedCacheEntries).";
      }
    }

    grouping exportingProcessParameters {
      description "Parameters of an Exporting Process.";
      leaf exportingProcessId {
        type uint32;
        config false;
        description "The identifier of the Exporting Process.
          This parameter corresponds to the Information Element
          exportingProcessId.  Its occurrence helps to associate
          Exporting Process parameters with Exporing Process
          statistics exported by the Monitoring Device using the
          Exporting Process Reliability Statistics Template as
          defined by the IPFIX protocol specification.";
        reference "RFC 5101, Section 4.3; IANA registry for IPFIX
          Entities, http://www.iana.org/assignments/ipfix.";
      }


(next page on part 5)

Next Section