Cisco-IOS-XR-um-flow-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR flow package configuration. This YANG module augments th...

  • Version: 2021-03-03

    Cisco-IOS-XR-um-flow-cfg@2021-03-03


    
      module Cisco-IOS-XR-um-flow-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-flow-cfg";
    
        prefix um-flow-cfg;
    
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-um-interface-cfg {
          prefix a1;
        }
        import Cisco-IOS-XR-um-if-l2transport-cfg {
          prefix a2;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR flow package configuration.
         
         This YANG module augments the
         modules with configuration data.
         
         Copyright (c) 2020-2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-03-03" {
          description
            "- Added class-table container under options
           2021-01-25
             - Added datalink-record container under record
           2020-11-18
             - Added must statement in range and out-of leaf node
           - Modified integer range of out-of
           2020-10-23
             - Added enum value protobuf for export-format leaf node
           - Added gtp container and updated must statements accordingly
           2020-09-28
             - Augmented datalinkframesection container to l2transport
           2020-08-01
             - Added dfbit container under exporter-map.
           - Added new containers under sflow/options";
        }
    
        revision "2020-06-15" {
          description "Initial release";
        }
    
        semver:module-version "2.0.0";
        semver:module-version "1.0.0";
    
        feature nf_parser_verify_wrapper_allow_sflow_kw_generic {
          description
            "nf parser verify wrapper allow sflow kw generic";
        }
    
        feature netflow_pd_perf_traffic_supported {
          description
            "netflow pd perf traffic supported";
        }
    
        feature netflow_pd_allow_option_kw {
          description
            "netflow pd allow option kw";
        }
    
        feature netflow_pd_allow_dba_kw {
          description "netflow pd allow dba kw";
        }
    
        feature netflow_pd_allow_dba_tos_kw {
          description
            "netflow pd allow dba tos kw";
        }
    
        feature netflow_pd_allow_as_kw {
          description "netflow pd allow as kw";
        }
    
        feature netflow_pd_allow_protocol_port_kw {
          description
            "netflow pd allow protocol port kw";
        }
    
        feature netflow_pd_allow_prefix_kw {
          description
            "netflow pd allow prefix kw";
        }
    
        feature netflow_pd_allow_source_prefix_kw {
          description
            "netflow pd allow source prefix kw";
        }
    
        feature netflow_pd_allow_destination_prefix_kw {
          description
            "netflow pd allow destination prefix kw";
        }
    
        feature netflow_pd_allow_as_tos_kw {
          description
            "netflow pd allow as tos kw";
        }
    
        feature netflow_pd_allow_protocol_port_tos_kw {
          description
            "netflow pd allow protocol port tos kw";
        }
    
        feature netflow_pd_allow_prefix_tos_kw {
          description
            "netflow pd allow prefix tos kw";
        }
    
        feature netflow_pd_allow_source_prefix_tos_kw {
          description
            "netflow pd allow source prefix tos kw";
        }
    
        feature netflow_pd_allow_destination_prefix_tos_kw {
          description
            "netflow pd allow destination prefix tos kw";
        }
    
        feature netflow_pd_allow_prefix_port_kw {
          description
            "netflow pd allow prefix port kw";
        }
    
        feature netflow_pd_allow_bgp_nexthop_tos_kw {
          description
            "netflow pd allow bgp nexthop tos kw";
        }
    
        feature nf_parser_verify_wrapper_allow_ipv4gtp_kw_generic {
          description
            "nf parser verify wrapper allow ipv4gtp kw generic";
        }
    
        feature netflow_pd_allow_ipv6_kw {
          description "netflow pd allow ipv6 kw";
        }
    
        feature netflow_pd_allow_ipv6dba_kw {
          description
            "netflow pd allow ipv6dba kw";
        }
    
        feature nf_parser_verify_wrapper_allow_ipv6gtp_kw_generic {
          description
            "nf parser verify wrapper allow ipv6gtp kw generic";
        }
    
        feature netflow_pd_allow_mpls_kw {
          description "netflow pd allow mpls kw";
        }
    
        feature nf_parser_verify_wrapper_allow_record_mapt_kw {
          description
            "nf parser verify wrapper allow record mapt kw";
        }
    
        feature nf_parser_verify_wrapper_allow_fmm_l2_record {
          description
            "nf parser verify wrapper allow fmm l2 record";
        }
    
        feature netflow_if_supported {
          description "netflow if supported";
        }
    
        feature netflow_pd_allow_sectiondata_kw {
          description
            "netflow pd allow sectiondata kw";
        }
    
        feature nf_parser_verify_wrapper_allow_intf_mapt_kw {
          description
            "nf parser verify wrapper allow intf mapt kw";
        }
    
        feature nf_parser_verify_wrapper_allow_l2_main_dlfs {
          description
            "nf parser verify wrapper allow l2 main dlfs";
        }
    
        container flow {
          description
            "Configure a flexible flow object";
          container exporter-maps {
            description
              "Configure a flow exporter map";
            list exporter-map {
              key "exporter-map-name";
              description
                "Exporter map name - maximum 32 characters";
              leaf exporter-map-name {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Exporter map name - maximum 32 characters";
              }
    
              container destination {
                description
                  "Export destination configuration";
                leaf ipv4-address {
                  type inet:ipv4-address-no-zone;
                  must "not(../ipv6-address)";
                  description
                    "Destination IPv4 address";
                }
    
                leaf ipv6-address {
                  type inet:ipv6-address-no-zone;
                  must "not(../ipv4-address)";
                  description
                    "Destination IPv6 address";
                }
    
                leaf vrf {
                  type xr:Cisco-ios-xr-string {
                    length "1..32";
                  }
                  description
                    "Configure VRF to be used for reaching export destination";
                }
              }  // container destination
    
              leaf source {
                type xr:Interface-name;
                description "Source interface";
              }
    
              leaf dscp {
                type uint32 {
                  range "0..63";
                }
                description
                  "Specify DSCP value for ipv4 export packets or traffic-class for ipv6 export packets";
              }
    
              container transport {
                description
                  "Specify the transport protocol for export packets";
                leaf udp {
                  type uint32 {
                    range "1024..65535";
                  }
                  description
                    "Use UDP as transport protocol";
                }
              }  // container transport
    
              leaf packet-length {
                type uint32 {
                  range "512..9000";
                }
                description
                  "Export Packet maximum L3 length, should conform to outgoing interface mtu";
              }
    
              container dfbit {
                description
                  "Specify Export Packet Do Not Fragment option";
                container set {
                  presence
                    "Indicates a set node is configured.";
                  description
                    "Set Export Packet Do Not Fragment Flag";
                }  // container set
              }  // container dfbit
    
              container version {
                presence
                  "Indicates a version node is configured.";
                description
                  "Specify export version parameters";
                leaf export-format {
                  type enumeration {
                    enum "v9" {
                      value 9;
                      description
                        "Use version 9 export format";
                    }
                    enum "ipfix" {
                      value 10;
                      description
                        "Use IPFIX export format";
                    }
                    enum "sflow" {
                      value 11;
                      description
                        "Use sFlow export v5 format";
                    }
                    enum "protobuf" {
                      value 12;
                      description
                        "Use protobuf export format";
                    }
                  }
                  mandatory true;
                  description
                    "Specify export format";
                }
    
                container template {
                  description
                    "Specify template export parameters";
                  container data {
                    description
                      "Data template configuration options";
                    leaf timeout {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify custom timeout for the template";
                    }
                  }  // container data
    
                  container options {
                    description
                      "Options template configuration options";
                    leaf timeout {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify custom timeout for the template";
                    }
                  }  // container options
    
                  leaf timeout {
                    type uint32 {
                      range "1..604800";
                    }
                    description
                      "Specify custom timeout for the template";
                  }
                }  // container template
    
                container options {
                  description
                    "Specify export of options template";
                  container interface-table {
                    presence
                      "Indicates a interface-table node is configured.";
                    description
                      "Export interface table";
                    leaf timeout {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify export timeout";
                    }
                  }  // container interface-table
    
                  container sampler-table {
                    presence
                      "Indicates a sampler-table node is configured.";
                    description
                      "Export sampler table";
                    leaf timeout {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify export timeout";
                    }
                  }  // container sampler-table
    
                  container class-table {
                    presence
                      "Indicates a class-table node is configured.";
                    description
                      "Export class table";
                    leaf timeout {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify export timeout";
                    }
                  }  // container class-table
    
                  container vrf-table {
                    presence
                      "Indicates a vrf-table node is configured.";
                    description
                      "Export VRF ID-to-name table";
                    leaf timeout {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify export timeout";
                    }
                  }  // container vrf-table
                }  // container options
              }  // container version
            }  // list exporter-map
          }  // container exporter-maps
    
          container monitor-map {
            description
              "Configure a flow monitor map";
            container performance-traffic {
              if-feature netflow_pd_perf_traffic_supported;
              description
                "Configure a performance traffic flow monitor map";
              container monitor-maps {
                description
                  "Monitor map name - maximum 32 characters";
                list monitor-map {
                  key "monitor-map-name";
                  description
                    "Monitor map name - maximum 32 characters";
                  leaf monitor-map-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Monitor map name - maximum 32 characters";
                  }
    
                  container exporters {
                    description
                      "Specify flow exporter map name";
                    list exporter {
                      key "exporter-name";
                      description
                        "Specify flow exporter map name";
                      leaf exporter-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..32";
                        }
                        description
                          "Specify flow exporter map name";
                      }
                    }  // list exporter
                  }  // container exporters
    
                  container option {
                    if-feature netflow_pd_allow_option_kw;
                    description
                      "Select an optional feature for the flow cache";
                    container outphysint {
                      presence
                        "Indicates a outphysint node is configured.";
                      description
                        "export output interfaces as physical interfaces";
                    }  // container outphysint
    
                    container filtered {
                      presence
                        "Indicates a filtered node is configured.";
                      description
                        "Enable filtering of records";
                    }  // container filtered
    
                    container bgpattr {
                      presence
                        "Indicates a bgpattr node is configured.";
                      description
                        "export bgp attributes AS_PATH and STD_COMMUNITY";
                    }  // container bgpattr
    
                    container outbundlemember {
                      presence
                        "Indicates a outbundlemember node is configured.";
                      description
                        "export output physical interfaces of bundle interface";
                    }  // container outbundlemember
                  }  // container option
    
                  container record {
                    description
                      "Specify a flow record map name";
                    container default-mdi {
                      must "not(../default-rtp)";
                      presence
                        "Indicates a default-mdi node is configured.";
                      description
                        "Default MDI record format";
                    }  // container default-mdi
    
                    container default-rtp {
                      must "not(../default-mdi)";
                      presence
                        "Indicates a default-rtp node is configured.";
                      description
                        "Default RTP record format";
                    }  // container default-rtp
                  }  // container record
    
                  container sflow {
                    if-feature nf_parser_verify_wrapper_allow_sflow_kw_generic;
                    description
                      "configure sFlow related parameters";
                    container options {
                      presence
                        "Indicates a options node is configured.";
                      description
                        "submode to configure sFlow related options";
                      container extended-router {
                        presence
                          "Indicates a extended-router node is configured.";
                        description
                          "Enable extended-router flow data type";
                      }  // container extended-router
    
                      container extended-gateway {
                        presence
                          "Indicates a extended-gateway node is configured.";
                        description
                          "Enable extended-gateway flow data type";
                      }  // container extended-gateway
    
                      container if-counters {
                        description
                          "Enable if-counter counter sampling";
                        leaf polling-interval {
                          type uint32 {
                            range "5..1800";
                          }
                          description
                            "Enable if-counters counter sampling rate";
                        }
                      }  // container if-counters
    
                      container sample-header {
                        description
                          "Enable sample-header related options";
                        leaf size {
                          type uint32 {
                            range "128..200";
                          }
                          description
                            "Specify maximum sample-header size to be exported";
                        }
                      }  // container sample-header
    
                      container input {
                        description
                          "Enable sflow packet input parameters related options";
                        leaf ifindex {
                          type enumeration {
                            enum "physical" {
                              value 0;
                              description
                                "Use ifindex of the physical input interface";
                            }
                          }
                          description
                            "Specify ifindex related options";
                        }
                      }  // container input
    
                      container output {
                        description
                          "Enable sflow packet output parameters related options";
                        leaf ifindex {
                          type enumeration {
                            enum "physical" {
                              value 0;
                              description
                                "Use ifindex of the physical output interface";
                            }
                          }
                          description
                            "Specify ifindex related options";
                        }
                      }  // container output
                    }  // container options
                  }  // container sflow
                }  // list monitor-map
              }  // container monitor-maps
            }  // container performance-traffic
    
            container monitor-maps {
              description
                "Monitor map name - maximum 32 characters";
              list monitor-map {
                key "monitor-map-name";
                description
                  "Monitor map name - maximum 32 characters";
                leaf monitor-map-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..32";
                  }
                  description
                    "Monitor map name - maximum 32 characters";
                }
    
                container exporters {
                  description
                    "Specify flow exporter map name";
                  list exporter {
                    key "exporter-name";
                    description
                      "Specify flow exporter map name";
                    leaf exporter-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..32";
                      }
                      description
                        "Specify flow exporter map name";
                    }
                  }  // list exporter
                }  // container exporters
    
                container option {
                  if-feature netflow_pd_allow_option_kw;
                  description
                    "Select an optional feature for the flow cache";
                  container outphysint {
                    presence
                      "Indicates a outphysint node is configured.";
                    description
                      "export output interfaces as physical interfaces";
                  }  // container outphysint
    
                  container filtered {
                    presence
                      "Indicates a filtered node is configured.";
                    description
                      "Enable filtering of records";
                  }  // container filtered
    
                  container bgpattr {
                    presence
                      "Indicates a bgpattr node is configured.";
                    description
                      "export bgp attributes AS_PATH and STD_COMMUNITY";
                  }  // container bgpattr
    
                  container outbundlemember {
                    presence
                      "Indicates a outbundlemember node is configured.";
                    description
                      "export output physical interfaces of bundle interface";
                  }  // container outbundlemember
                }  // container option
    
                container record {
                  description
                    "Specify a flow record map name";
                  container ipv4 {
                    must
                      "not(../datalinksectiondump or ../ipv6
                     or ../mpls or ../map-t
                     or ../sflow or ../datalink-record
                     or ../default-rtp or ../default-mdi)";
                    presence
                      "Indicates a ipv4 node is configured.";
                    description
                      "IPv4 raw record format";
                    container destination {
                      if-feature netflow_pd_allow_dba_kw;
                      must
                        "not(../destination-tos or ../as
                       or ../protocol-port or ../prefix
                       or ../source-prefix or ../destination-prefix
                       or ../as-tos or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a destination node is configured.";
                      description
                        "IPv4 Destination Based NetFlow Accounting";
                    }  // container destination
    
                    container destination-tos {
                      if-feature netflow_pd_allow_dba_tos_kw;
                      must
                        "not(../destination or ../as
                       or ../protocol-port or ../prefix
                       or ../source-prefix or ../destination-prefix
                       or ../as-tos or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a destination-tos node is configured.";
                      description
                        "IPv4 Destination Based NetFlow Accounting TOS";
                    }  // container destination-tos
    
                    container as {
                      if-feature netflow_pd_allow_as_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../protocol-port or ../prefix
                       or ../source-prefix or ../destination-prefix
                       or ../as-tos or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a as node is configured.";
                      description
                        "Autonomous System based aggregation";
                    }  // container as
    
                    container protocol-port {
                      if-feature netflow_pd_allow_protocol_port_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../prefix
                       or ../source-prefix or ../destination-prefix
                       or ../as-tos or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a protocol-port node is configured.";
                      description
                        "Protocol-Port based aggregation";
                    }  // container protocol-port
    
                    container prefix {
                      if-feature netflow_pd_allow_prefix_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../source-prefix or ../destination-prefix
                       or ../as-tos or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a prefix node is configured.";
                      description
                        "Prefix based agregation";
                    }  // container prefix
    
                    container source-prefix {
                      if-feature netflow_pd_allow_source_prefix_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../destination-prefix
                       or ../as-tos or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a source-prefix node is configured.";
                      description
                        "source prefix based aggregation";
                    }  // container source-prefix
    
                    container destination-prefix {
                      if-feature netflow_pd_allow_destination_prefix_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../as-tos or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a destination-prefix node is configured.";
                      description
                        "Destination prefix based aggregation";
                    }  // container destination-prefix
    
                    container as-tos {
                      if-feature netflow_pd_allow_as_tos_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../protocol-port-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a as-tos node is configured.";
                      description
                        "AS-TOS based aggregation";
                    }  // container as-tos
    
                    container protocol-port-tos {
                      if-feature netflow_pd_allow_protocol_port_tos_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../prefix-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a protocol-port-tos node is configured.";
                      description
                        "Protocol, port and tos based aggregation";
                    }  // container protocol-port-tos
    
                    container prefix-tos {
                      if-feature netflow_pd_allow_prefix_tos_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../protocol-port-tos or ../source-prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a prefix-tos node is configured.";
                      description
                        "Prefix TOS based aggregation";
                    }  // container prefix-tos
    
                    container source-prefix-tos {
                      if-feature netflow_pd_allow_source_prefix_tos_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../protocol-port-tos or ../prefix-tos
                       or ../destination-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a source-prefix-tos node is configured.";
                      description
                        "Source, Prefix and TOS based aggregation";
                    }  // container source-prefix-tos
    
                    container destination-prefix-tos {
                      if-feature netflow_pd_allow_destination_prefix_tos_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../protocol-port-tos or ../prefix-tos
                       or ../source-prefix-tos or ../prefix-port
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a destination-prefix-tos node is configured.";
                      description
                        "Destination, prefix and tos based aggregation";
                    }  // container destination-prefix-tos
    
                    container prefix-port {
                      if-feature netflow_pd_allow_prefix_port_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../protocol-port-tos or ../prefix-tos
                       or ../source-prefix-tos or ../destination-prefix-tos
                       or ../bgp-nexthop-tos or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a prefix-port node is configured.";
                      description
                        "Prefix port based aggregation";
                    }  // container prefix-port
    
                    container bgp-nexthop-tos {
                      if-feature netflow_pd_allow_bgp_nexthop_tos_kw;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../protocol-port-tos or ../prefix-tos
                       or ../source-prefix-tos or ../destination-prefix-tos
                       or ../prefix-port or ../peer-as
                       or ../gtp)";
                      presence
                        "Indicates a bgp-nexthop-tos node is configured.";
                      description
                        "BGP, nexthop and tos based aggregation";
                    }  // container bgp-nexthop-tos
    
                    container peer-as {
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../protocol-port-tos or ../prefix-tos
                       or ../source-prefix-tos or ../destination-prefix-tos
                       or ../prefix-port or ../bgp-nexthop-tos
                       or ../gtp)";
                      presence
                        "Indicates a peer-as node is configured.";
                      description
                        "Record peer AS";
                    }  // container peer-as
    
                    container gtp {
                      if-feature nf_parser_verify_wrapper_allow_ipv4gtp_kw_generic;
                      must
                        "not(../destination or ../destination-tos
                       or ../as or ../protocol-port
                       or ../prefix or ../source-prefix
                       or ../destination-prefix or ../as-tos
                       or ../protocol-port-tos or ../prefix-tos
                       or ../source-prefix-tos or ../destination-prefix-tos
                       or ../prefix-port or ../bgp-nexthop-tos
                       or ../peer-as)";
                      presence
                        "Indicates a gtp node is configured.";
                      description
                        "IPV4 gtp record format";
                    }  // container gtp
                  }  // container ipv4
    
                  container datalinksectiondump {
                    must
                      "not(../ipv4 or ../ipv6
                     or ../mpls or ../map-t
                     or ../sflow or ../datalink-record
                     or ../default-rtp or ../default-mdi)";
                    presence
                      "Indicates a datalinksectiondump node is configured.";
                    description
                      "dump data link section";
                  }  // container datalinksectiondump
    
                  container ipv6 {
                    if-feature netflow_pd_allow_ipv6_kw;
                    must
                      "not(../ipv4 or ../datalinksectiondump
                     or ../mpls or ../map-t
                     or ../sflow or ../datalink-record
                     or ../default-rtp or ../default-mdi)";
                    presence
                      "Indicates a ipv6 node is configured.";
                    description
                      "IPv6 raw record format";
                    container destination {
                      if-feature netflow_pd_allow_ipv6dba_kw;
                      must
                        "not(../peer-as or ../gtp)";
                      presence
                        "Indicates a destination node is configured.";
                      description
                        "IPv6 Destination Based NetFlow Accounting";
                    }  // container destination
    
                    container peer-as {
                      must
                        "not(../destination or ../gtp)";
                      presence
                        "Indicates a peer-as node is configured.";
                      description
                        "Record peer AS";
                    }  // container peer-as
    
                    container gtp {
                      if-feature nf_parser_verify_wrapper_allow_ipv6gtp_kw_generic;
                      must
                        "not(../destination or ../peer-as)";
                      presence
                        "Indicates a gtp node is configured.";
                      description
                        "IPV6 gtp record format";
                    }  // container gtp
                  }  // container ipv6
    
                  container mpls {
                    if-feature netflow_pd_allow_mpls_kw;
                    must
                      "not(../ipv4 or ../datalinksectiondump
                     or ../ipv6 or ../map-t
                     or ../sflow or ../datalink-record
                     or ../default-rtp or ../default-mdi)";
                    presence
                      "Indicates a mpls node is configured.";
                    description
                      "MPLS record format";
                    container ipv4-fields {
                      must
                        "not(../ipv6-fields or ../ipv4-ipv6-fields)";
                      presence
                        "Indicates a ipv4-fields node is configured.";
                      description
                        "MPLS with IPv4 fields format";
                    }  // container ipv4-fields
    
                    container ipv6-fields {
                      must
                        "not(../ipv4-fields or ../ipv4-ipv6-fields)";
                      presence
                        "Indicates a ipv6-fields node is configured.";
                      description
                        "MPLS with IPv6 fields format";
                    }  // container ipv6-fields
    
                    container ipv4-ipv6-fields {
                      must
                        "not(../ipv4-fields or ../ipv6-fields)";
                      presence
                        "Indicates a ipv4-ipv6-fields node is configured.";
                      description
                        "MPLS with IPv4 and IPv6 fields format";
                    }  // container ipv4-ipv6-fields
    
                    leaf labels {
                      type uint32 {
                        range "1..6";
                      }
                      description
                        "Labels to be used for Hashing";
                    }
                  }  // container mpls
    
                  container map-t {
                    if-feature nf_parser_verify_wrapper_allow_record_mapt_kw;
                    must
                      "not(../ipv4 or ../datalinksectiondump
                     or ../ipv6 or ../mpls
                     or ../sflow or ../datalink-record
                     or ../default-rtp or ../default-mdi)";
                    presence
                      "Indicates a map-t node is configured.";
                    description
                      "map-t translation based Netflow";
                  }  // container map-t
    
                  container sflow {
                    if-feature nf_parser_verify_wrapper_allow_sflow_kw_generic;
                    must
                      "not(../ipv4 or ../datalinksectiondump
                     or ../ipv6 or ../mpls
                     or ../map-t or ../datalink-record
                     or ../default-rtp or ../default-mdi)";
                    presence
                      "Indicates a sflow node is configured.";
                    description
                      "sFlow based flow";
                  }  // container sflow
    
                  container datalink-record {
                    if-feature nf_parser_verify_wrapper_allow_fmm_l2_record;
                    must
                      "not(../ipv4 or ../datalinksectiondump
                     or ../ipv6 or ../mpls
                     or ../map-t or ../sflow
                     or ../default-rtp or ../default-mdi)";
                    presence
                      "Indicates a datalink-record node is configured.";
                    description
                      "Layer2 traffic based flow";
                  }  // container datalink-record
    
                  container default-rtp {
                    must
                      "not(../ipv4 or ../datalinksectiondump
                     or ../ipv6 or ../mpls
                     or ../map-t or ../sflow
                     or ../datalink-record or ../default-mdi)";
                    presence
                      "Indicates a default-rtp node is configured.";
                    description
                      "Default RTP record format";
                  }  // container default-rtp
    
                  container default-mdi {
                    must
                      "not(../ipv4 or ../datalinksectiondump
                     or ../ipv6 or ../mpls
                     or ../map-t or ../sflow
                     or ../datalink-record or ../default-rtp)";
                    presence
                      "Indicates a default-mdi node is configured.";
                    description
                      "Default MDI record format";
                  }  // container default-mdi
                }  // container record
    
                container cache {
                  description
                    "Specify flow cache attributes";
                  leaf entries {
                    type uint32 {
                      range "4096..1000000";
                    }
                    description
                      "Specify the number of entries in the flow cache";
                  }
    
                  container timeout {
                    description
                      "Specify the flow cache timeouts";
                    leaf active {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify the active flow timeout";
                    }
    
                    leaf inactive {
                      type uint32 {
                        range "0..604800";
                      }
                      description
                        "Specify the inactive flow timeout";
                    }
    
                    leaf update {
                      type uint32 {
                        range "1..604800";
                      }
                      description
                        "Specify the update timeout";
                    }
    
                    leaf rate-limit {
                      type uint32 {
                        range "1..1000000";
                      }
                      description
                        "Maximum number of entries to age each second";
                    }
                  }  // container timeout
    
                  container permanent {
                    must "not(../immediate)";
                    presence
                      "Indicates a permanent node is configured.";
                    description
                      "Disable removal of entries from flow cache";
                  }  // container permanent
    
                  container immediate {
                    must "not(../permanent)";
                    presence
                      "Indicates a immediate node is configured.";
                    description
                      "Immediate removal of entries from flow cache";
                  }  // container immediate
                }  // container cache
    
                container hw-cache {
                  description
                    "Specify hw-cache parameters if the flow has a hw-cache";
                  container timeout {
                    description
                      "Specify the hw-cache related timeouts";
                    leaf inactive {
                      type uint32 {
                        range "50..1800";
                      }
                      description
                        "Specify the inactive timeout";
                    }
                  }  // container timeout
                }  // container hw-cache
    
                container sflow {
                  if-feature nf_parser_verify_wrapper_allow_sflow_kw_generic;
                  description
                    "configure sFlow related parameters";
                  container options {
                    presence
                      "Indicates a options node is configured.";
                    description
                      "submode to configure sFlow related options";
                    container extended-router {
                      presence
                        "Indicates a extended-router node is configured.";
                      description
                        "Enable extended-router flow data type";
                    }  // container extended-router
    
                    container extended-gateway {
                      presence
                        "Indicates a extended-gateway node is configured.";
                      description
                        "Enable extended-gateway flow data type";
                    }  // container extended-gateway
    
                    container if-counters {
                      description
                        "Enable if-counter counter sampling";
                      leaf polling-interval {
                        type uint32 {
                          range "5..1800";
                        }
                        description
                          "Enable if-counters counter sampling rate";
                      }
                    }  // container if-counters
    
                    container sample-header {
                      description
                        "Enable sample-header related options";
                      leaf size {
                        type uint32 {
                          range "128..200";
                        }
                        description
                          "Specify maximum sample-header size to be exported";
                      }
                    }  // container sample-header
    
                    container input {
                      description
                        "Enable sflow packet input parameters related options";
                      leaf ifindex {
                        type enumeration {
                          enum "physical" {
                            value 0;
                            description
                              "Use ifindex of the physical input interface";
                          }
                        }
                        description
                          "Specify ifindex related options";
                      }
                    }  // container input
    
                    container output {
                      description
                        "Enable sflow packet output parameters related options";
                      leaf ifindex {
                        type enumeration {
                          enum "physical" {
                            value 0;
                            description
                              "Use ifindex of the physical output interface";
                          }
                        }
                        description
                          "Specify ifindex related options";
                      }
                    }  // container output
                  }  // container options
                }  // container sflow
              }  // list monitor-map
            }  // container monitor-maps
          }  // container monitor-map
        }  // container flow
    
        container sampler-maps {
          description "Configure a sampler map";
          list sampler-map {
            key "sampler-map-name";
            description
              "Sampler map name - maximum 32 characters";
            leaf sampler-map-name {
              type xr:Cisco-ios-xr-string {
                length "1..32";
              }
              description
                "Sampler map name - maximum 32 characters";
            }
    
            leaf random {
              type uint32 {
                range "1";
              }
              must "../out-of";
              description
                "Use random mode for sampling packets";
            }
    
            leaf out-of {
              type uint32 {
                range "1..262144";
              }
              must "../random";
              description
                "Sample one packet out of";
            }
          }  // list sampler-map
        }  // container sampler-maps
      }  // module Cisco-IOS-XR-um-flow-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.