This module contains a collection of YANG definitions for Cisco IOS-XR flow package configuration. This YANG module augments th...
Version: 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"; } grouping IF-BODY { container flow { if-feature netflow_if_supported; description "Netflow configuration"; container ipv4 { description "IPV4 netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container ipv4 container mpls { if-feature netflow_pd_allow_mpls_kw; description "MPLS netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container mpls container ipv6 { if-feature netflow_pd_allow_ipv6_kw; description "IPV6 netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container ipv6 container datalinkframesection { if-feature netflow_pd_allow_sectiondata_kw; description "Data link section netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container datalinkframesection container map-t { if-feature nf_parser_verify_wrapper_allow_intf_mapt_kw; description "Map-t netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers container egress-monitors { description "Apply flow monitor on outgoing packets"; list egress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list egress-monitor } // container egress-monitors container egress-monitor-samplers { description "Specify a flow monitor and sampler for outgoing packets"; list egress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for outgoing packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list egress-monitor-sampler } // container egress-monitor-samplers } // container monitor } // container map-t } // container flow } // grouping IF-BODY grouping L2TRANS-BODY { container flow { description "Netflow configuration"; container datalinkframesection { if-feature nf_parser_verify_wrapper_allow_l2_main_dlfs; description "Data link section netflow configuration"; container monitor { description "Specify a flow monitor for packets"; container ingress-monitors { description "Apply flow monitor on incoming packets"; list ingress-monitor { key "monitor-map-name"; description "Specify a flow monitor for packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } } // list ingress-monitor } // container ingress-monitors container ingress-monitor-samplers { description "Specify a flow monitor and sampler for incoming packets"; list ingress-monitor-sampler { key "monitor-map-name sampler-map-name"; description "Specify a flow monitor and sampler for incoming packets"; leaf monitor-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a flow monitor for packets"; } leaf sampler-map-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify a sampler for packets"; } } // list ingress-monitor-sampler } // container ingress-monitor-samplers } // container monitor } // container datalinkframesection } // container flow } // grouping L2TRANS-BODY augment /a1:interfaces/a1:interface { uses IF-BODY; } augment /a1:interfaces/a1:interface-preconfigure { uses IF-BODY; } augment /a1:interfaces/a1:interface/a2:l2transport { uses L2TRANS-BODY; } augment /a1:interfaces/a1:interface-preconfigure/a2:l2transport { uses L2TRANS-BODY; } 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.