This module contains a collection of YANG definitions for Cisco IOS-XR infra-policymgr package operational data. This module co...
Version: 2020-09-24
module Cisco-IOS-XR-infra-policymgr-oper { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-oper"; prefix infra-policymgr-oper; import Cisco-IOS-XR-types { prefix xr; } import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } 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 infra-policymgr package operational data. This module contains definitions for the following management objects: policy-manager: Policy-map operational data Copyright (c) 2013-2020 by Cisco Systems, Inc. All rights reserved."; revision "2020-09-24" { description "IOS XR 7.3.1 revision."; } revision "2020-05-19" { description "IOS XR 7.3.1 revision."; } revision "2020-04-29" { description "IOS XR 7.3.1 revision."; } revision "2019-10-29" { description "IOS XR 7.2.1 revision."; } revision "2019-09-11" { description "IOS XR 7.1.1 revision."; } revision "2019-09-09" { description "IOS XR 7.1.1 revision."; } revision "2019-09-05" { description "IOS XR 7.1.1 revision."; } revision "2019-08-31" { description "IOS XR 7.1.1 revision."; } revision "2019-08-16" { description "IOS XR 7.1.1 revision."; } revision "2019-08-12" { description "IOS XR 7.1.1 revision."; } revision "2019-07-30" { description "IOS XR 7.1.1 revision."; } revision "2019-05-27" { description "IOS XR 7.0.1 revision."; } revision "2019-03-27" { description "IOS XR 7.0.1 revision."; } revision "2019-02-28" { description "IOS XR 7.0.1 revision."; } revision "2018-09-20" { description "IOS XR 7.1.1 revision."; } revision "2018-01-17" { description "IOS XR 6.4.1 revision."; } revision "2017-05-27" { description "IOS XR 6.3.1 revision."; } revision "2015-11-09" { description "IOS XR 6.0 revision."; } typedef afi-enum { type enumeration { enum "ipv4" { value 1; description "Address family IPv4"; } enum "ipv6" { value 2; description "Address family IPv6"; } } } typedef Policymgr-policy-map { type enumeration { enum "qos" { value 1; description "QoS Policymap"; } enum "pbr" { value 2; description "PBR Policymap"; } enum "traffic" { value 3; description "TRAFFIC Policymap"; } enum "subscriber-control" { value 4; description "SUBSCONTROL Policymap"; } enum "accounting" { value 5; description "ACCOUNTING Policymap"; } enum "redirect" { value 6; description "REDIRECT Policy map"; } enum "flow-monitor" { value 7; description "FlOWMONITOR Policy map"; } } description "Policymgr policy map"; } typedef Policymgr-class-map { type enumeration { enum "qos" { value 1; description "QoS Classmap"; } enum "pbr" { value 2; description "PBR Classmap"; } enum "traffic" { value 3; description "TRAFFIC Classmap"; } enum "subscriber-control" { value 4; description "SUBSCONTROL Classmap"; } } description "Policymgr class map"; } typedef Pclass-exec-strat-en { type enumeration { enum "pclass-exe-strat-unspecified" { value 0; description "Unspecified"; } enum "pclass-exe-strat-do-all" { value 1; description "Exec all actions"; } enum "pclass-exe-strat-do-until-success" { value 2; description "Exec until one of actions succeeds"; } enum "pclass-exe-strat-do-until-failure" { value 3; description "Exec until there is a failure"; } enum "pclass-exe-strat-max" { value 4; description "Invalid"; } } description "Policy class execution strategy"; } typedef Match-available-id-en { type enumeration { enum "match-avail-ident-unspecified" { value 0; description "match avail ident unspecified"; } enum "match-avail-ident-dnis" { value 1; description "match avail ident dnis"; } enum "match-avail-ident-domain" { value 2; description "match avail ident domain"; } enum "match-avail-ident-circuit-id" { value 3; description "match avail ident circuit id"; } enum "match-avail-ident-remote-id" { value 4; description "match avail ident remote id"; } enum "match-avail-ident-media" { value 5; description "match avail ident media"; } enum "match-avail-ident-nas-port" { value 6; description "match avail ident nas port"; } enum "match-avail-ident-protocol" { value 7; description "match avail ident protocol"; } enum "match-avail-ident-source-address-ipv4" { value 8; description "match avail ident source address ipv4"; } enum "match-avail-ident-source-address-ipv6" { value 9; description "match avail ident source address ipv6"; } enum "match-avail-ident-source-address-mac" { value 10; description "match avail ident source address mac"; } enum "match-avail-ident-tunnel-name" { value 11; description "match avail ident tunnel name"; } enum "match-avail-ident-user-name" { value 12; description "match avail ident user name"; } enum "match-avail-ident-vendor-id" { value 13; description "match avail ident vendor id"; } enum "match-avail-ident-dhcp-client-id" { value 14; description "match avail ident dhcp client id"; } enum "match-avail-ident-max" { value 15; description "match avail ident max"; } } description "Match available id en"; } typedef Afmon-alarm-type-en { type enumeration { enum "afmon-alm-type-invalid" { value 0; description "afmon alm type invalid"; } enum "afmon-alm-discrete" { value 1; description "afmon alm discrete"; } enum "afmon-alm-grp-cnt" { value 2; description "afmon alm grp cnt"; } enum "afmon-alm-grp-pct" { value 3; description "afmon alm grp pct"; } enum "afmon-alm-type-max" { value 4; description "afmon alm type max"; } } description "Afmon alarm type en"; } typedef Decode-identifier-en { type enumeration { enum "policy-decid-unspecified" { value 0; description "policy decid unspecified"; } enum "policy-decid-remote-id" { value 1; description "policy decid remote id"; } enum "policy-decid-circuit-id" { value 2; description "policy decid circuit id"; } enum "policy-decid-user-name" { value 3; description "policy decid user name"; } enum "policy-decid-max" { value 4; description "policy decid max"; } } description "Decode identifier en"; } typedef Class-map-name { type string { length "0..65"; } description "Class map name"; } typedef Policy-chk-sum { type string { length "0..16"; } description "Policy chk sum"; } typedef Policy-action-en { type enumeration { enum "policy-action-none" { value 0; description "Policy Action None"; } enum "policy-action-unspecified" { value 1; description "Policy Action is not specified"; } enum "policy-action-mark" { value 2; description "Policy Action Mark"; } enum "policy-action-mark2" { value 3; description "Policy Action Mark2"; } enum "policy-action-wred" { value 4; description "Policy Action WRED"; } enum "policy-action-encap-seq" { value 5; description "Policy action encap-sequence number"; } enum "policy-action-priority" { value 6; description "Policy Action Priority Queue"; } enum "policy-action-iphc" { value 7; description "Policy Action IP Header Compression"; } enum "policy-action-bw-remaining" { value 8; description "Policy Action Bandwidth Remaining Queue"; } enum "policy-action-min-bw" { value 9; description "Policy Action Minimum Bandwidth Queue"; } enum "policy-action-authenticate-aaa" { value 10; description "Policy Action authenticate"; } enum "policy-action-collect-id" { value 11; description "Policy Action collect identifier"; } enum "policy-action-disconnect" { value 12; description "Policy Action disconnect session"; } enum "policy-action-set-timer" { value 13; description "Policy Action set timer"; } enum "policy-action-stop-timer" { value 14; description "Policy Action stop timer"; } enum "policy-action-query-ancp" { value 15; description "Policy Action query ancp"; } enum "policy-action-accounting-aaa-list" { value 16; description "Policy Action accounting aaa"; } enum "policy-action-prepaid-config" { value 17; description "Policy Action prepaid config"; } enum "policy-action-timeout-idle" { value 18; description "Policy Action timeout idle"; } enum "policy-action-proxy-aaa" { value 19; description "Policy Action proxy aaa"; } enum "policy-action-template-activate" { value 20; description "Policy Action activate template"; } enum "policy-action-template-deactivate" { value 21; description "Policy Action deactivate template"; } enum "policy-action-decode-identifier" { value 22; description "Policy Action decode identifier"; } enum "policy-action-q-limit" { value 23; description "Policy Action Queue Limit"; } enum "policy-action-authorize-id" { value 24; description "Policy Action authorize idetifier"; } enum "policy-action-accounting-event-aaa-list" { value 25; description "Policy Action accounting event"; } enum "policy-action-afmon-react" { value 26; description "Policy Action React (afmon)"; } enum "policy-action-httpr" { value 27; description "Policy Action httpr (pbr)"; } enum "policy-action-pbr-transmit" { value 28; description "Policy Action pbr transmit"; } enum "policy-action-pbr-drop" { value 29; description "Policy Action pbr drop"; } enum "policy-action-punt" { value 30; description "Policy Action pbr punt"; } enum "policy-action-copy" { value 31; description "Policy Action pbr copy"; } enum "policy-action-sfrag" { value 32; description "Policy Action Service fragment"; } enum "policy-action-monitor" { value 33; description "Policy Action Monitor"; } enum "policy-action-redirect" { value 34; description "Policy Action redirect"; } enum "policy-action-ipv4-nh" { value 35; description "Policy Action ipv4 next hop"; } enum "policy-action-ipv6-nh" { value 36; description "Policy Action ipv6 next hop"; } enum "policy-action-vlan-pop" { value 37; description "Policy Action pop"; } enum "policy-action-pbr-next-hop" { value 38; description "Policy Action PBR Forward"; } enum "policy-action-decap-gre" { value 39; description "Policy Action decapsule GRE"; } enum "policy-action-output-interface" { value 40; description "Policy Action PBR redirect interface"; } enum "policy-action-service-function-path" { value 41; description "Policy Action PBR service chaining"; } enum "policy-action-http-enrich" { value 42; description "Policy Action FTTP Enrich"; } enum "policy-action-decap-gue-v1" { value 43; description "Policy Action decapsule GUE v1"; } enum "policy-action-ptrs" { value 44; description "Dummy action for internal use"; } enum "policy-action-police" { value 45; description "Policy Action Police"; } enum "policy-action-shape" { value 46; description "Policy Action Shape"; } enum "policy-action-serv-pol" { value 47; description "Policy Action Service Policy"; } enum "policy-action-cac" { value 48; description "Policy Action CAC"; } enum "policy-action-afmon-flow-parm" { value 49; description "Policy Action Flow params (afmon)"; } enum "policy-action-afmon-ipcbr-metric" { value 50; description "Policy Action IP-CBR Metric (afmon)"; } enum "policy-action-afmon-rtp-metric" { value 51; description "Policy Action RTP-Custom Metric (afmon)"; } enum "policy-action-afmon-rtp-mmr-metric" { value 52; description "Policy Action RTP-MMR Metric (afmon)"; } enum "policy-action-afmon-rtp-j2k-metric" { value 53; description "Policy Action RTP-J2K Metric (afmon)"; } enum "policy-action-afmon-rtp-voice-metric" { value 54; description "Policy Action RTP-Voice Metric (afmon)"; } enum "policy-action-afmon-mdi-metric" { value 55; description "Policy Action MDI Metric (afmon)"; } enum "policy-action-afmon-mdi-rtp-metric" { value 56; description "Policy Action MDI RTP Metric (afmon)"; } enum "policy-action-afmon-fmm" { value 57; description "Policy Action flow monitor (afmon)"; } enum "policy-action-pfc" { value 58; description "Policy Action PFC"; } enum "policy-action-max" { value 59; description "Policy Action Max (Invalid)"; } } description "Policy Actions Enumeration"; } typedef Cac-flow-actn-type-e { type uint8; description "Cac flow actn type e"; } typedef Authorize-id-en { type enumeration { enum "policy-authorize-ident-unspecified" { value 0; description "policy authorize ident unspecified"; } enum "policy-authorize-ident-dnis" { value 1; description "policy authorize ident dnis"; } enum "policy-authorize-ident-domain" { value 2; description "policy authorize ident domain"; } enum "policy-authorize-ident-user-name" { value 3; description "policy authorize ident user name"; } enum "policy-authorize-ident-nas-port" { value 4; description "policy authorize ident nas port"; } enum "policy-authorize-ident-source-address-ipv4" { value 5; description "policy authorize ident source address ipv4"; } enum "policy-authorize-ident-source-address-ipv6" { value 6; description "policy authorize ident source address ipv6"; } enum "policy-authorize-ident-source-address-mac" { value 7; description "policy authorize ident source address mac"; } enum "policy-authorize-ident-auto-detect" { value 8; description "policy authorize ident auto detect"; } enum "policy-authorize-ident-tunnel-name" { value 9; description "policy authorize ident tunnel name"; } enum "policy-authorize-ident-dhcp-client-id" { value 10; description "policy authorize ident dhcp client id"; } enum "policy-authorize-ident-circuit-id" { value 11; description "policy authorize ident circuit id"; } enum "policy-authorize-ident-remote-id" { value 12; description "policy authorize ident remote id"; } enum "policy-authorize-ident-vendor-id" { value 13; description "policy authorize ident vendor id"; } enum "policy-authorize-ident-service-name" { value 14; description "policy authorize ident service name"; } enum "policy-authorize-ident-max" { value 15; description "policy authorize ident max"; } } description "Authorize id en"; } typedef Afmon-ipcbr-parm-type-en { type enumeration { enum "afmon-ipcbr-parm-invalid" { value 0; description "afmon ipcbr parm invalid"; } enum "afmon-ipcbr-parm-ip-pkt-rate" { value 1; description "afmon ipcbr parm ip pkt rate"; } enum "afmon-ipcbr-parm-ip-bit-rate" { value 2; description "afmon ipcbr parm ip bit rate"; } enum "afmon-ipcbr-parm-media-bit-rate" { value 3; description "afmon ipcbr parm media bit rate"; } enum "afmon-ipcbr-parm-media-pkt-size" { value 4; description "afmon ipcbr parm media pkt size"; } enum "afmon-ipcbr-parm-media-pkts-per-ip" { value 5; description "afmon ipcbr parm media pkts per ip"; } enum "afmon-ipcbr-parm-max" { value 6; description "afmon ipcbr parm max"; } } description "Afmon ipcbr parm type en"; } typedef Match-media-type-en { type enumeration { enum "match-media-type-unspecified" { value 0; description "match media type unspecified"; } enum "match-media-type-async" { value 1; description "match media type async"; } enum "match-media-type-atm" { value 2; description "match media type atm"; } enum "match-media-type-ether" { value 3; description "match media type ether"; } enum "match-media-type-ip" { value 4; description "match media type ip"; } enum "match-media-type-isdn" { value 5; description "match media type isdn"; } enum "match-media-type-mpls" { value 6; description "match media type mpls"; } enum "match-media-type-sync" { value 7; description "match media type sync"; } enum "match-media-type-max" { value 8; description "match media type max"; } } description "Match media type en"; } typedef Plmgr-appln-type-en { type enumeration { enum "qos" { value 1; description "Application type QOS"; } enum "pbr" { value 2; description "Application type PBR"; } enum "subscriber-control" { value 3; description "Application type subscriber control"; } enum "accounting" { value 4; description "Application type accounting"; } enum "traffic" { value 5; description "Application type traffic"; } enum "performance-traffic" { value 6; description "Application type performance traffic"; } } description "Different Application types"; } typedef Policy-route-target-en { type enumeration { enum "policy-rt-type-none" { value 0; description "policy rt type none"; } enum "policy-rt-type-asn2" { value 1; description "policy rt type asn2"; } enum "policy-rt-type-ipv4" { value 2; description "policy rt type ipv4"; } enum "policy-rt-type-asn4" { value 3; description "policy rt type asn4"; } enum "policy-rt-type-max" { value 4; description "policy rt type max"; } } description "Policy route target en"; } typedef Identifier-en { type enumeration { enum "policy-ident-unspecified" { value 0; description "policy ident unspecified"; } enum "policy-ident-authen-status" { value 1; description "policy ident authen status"; } enum "policy-ident-dnis" { value 2; description "policy ident dnis"; } enum "policy-ident-media" { value 3; description "policy ident media"; } enum "policy-ident-mlp-negotiated" { value 4; description "policy ident mlp negotiated"; } enum "policy-ident-nas-port" { value 5; description "policy ident nas port"; } enum "policy-ident-no-user-name" { value 6; description "policy ident no user name"; } enum "policy-ident-protocol" { value 7; description "policy ident protocol"; } enum "policy-ident-service-name" { value 8; description "policy ident service name"; } enum "policy-ident-source-address-ipv4" { value 9; description "policy ident source address ipv4"; } enum "policy-ident-source-address-ipv6" { value 10; description "policy ident source address ipv6"; } enum "policy-ident-source-address-mac" { value 11; description "policy ident source address mac"; } enum "policy-ident-timer" { value 12; description "policy ident timer"; } enum "policy-ident-tunnel-name" { value 13; description "policy ident tunnel name"; } enum "policy-ident-auth-domain" { value 14; description "policy ident auth domain"; } enum "policy-ident-auth-user-name" { value 15; description "policy ident auth user name"; } enum "policy-ident-unauth-domain" { value 16; description "policy ident unauth domain"; } enum "policy-ident-unauth-user-name" { value 17; description "policy ident unauth user name"; } enum "policy-ident-max" { value 18; description "policy ident max"; } } description "Identifier en"; } typedef Mark-type-en { type enumeration { enum "mark-type-none" { value 0; description "Mark None"; } enum "mark-type-dscp" { value 1; description "Mark DSCP"; } enum "mark-type-prec" { value 2; description "Mark Precedence"; } enum "mark-type-mpls-exp-topmost" { value 3; description "Mark MPLS EXP on topmost header"; } enum "mark-type-mpls-exp-imposition" { value 4; description "Mark MPLS EXP on imposition header"; } enum "mark-type-qos-group" { value 5; description "Mark QoS Group"; } enum "mark-type-discard-class" { value 6; description "Mark Discard Class"; } enum "mark-type-cos" { value 7; description "Mark CoS"; } enum "mark-type-cos-inner" { value 8; description "Mark COS Inner"; } enum "mark-type-srp-priority" { value 9; description "Mark Priority"; } enum "mark-type-atm-clp" { value 10; description "Mark ATM CLP"; } enum "mark-type-fr-de" { value 11; description "Mark FR DE"; } enum "mark-type-dscp-tunnel" { value 12; description "Mark DSCP in Tunnel Header"; } enum "mark-type-prec-tunnel" { value 13; description "Mark Precedence in Tunnel Header"; } enum "mark-type-dei" { value 14; description "Mark DEI"; } enum "mark-type-dei-imposition" { value 15; description "Mark DEI on imposition header"; } enum "mark-type-forward-class" { value 16; description "Mark forward class"; } enum "mark-type-df" { value 17; description "Mark DF bit"; } enum "mark-type-traffic-class" { value 18; description "Mark Traffic Class"; } enum "mark-type-src-mac" { value 19; description "Mark source mac"; } enum "mark-type-dst-mac" { value 20; description "Mark destination mac"; } enum "mark-type-ipv4-src-addr" { value 21; description "Mark ipv4 source address"; } enum "mark-type-ipv4-dst-addr" { value 22; description "Mark ipv4 destination address"; } enum "mark-type-vlan-id" { value 23; description "Mark vlan id"; } enum "mark-type-udp-src-port" { value 24; description "Mark type udp source port"; } enum "mark-type-udp-dst-port" { value 25; description "Mark type udp destination port"; } enum "mark-type-tcp-src-port" { value 26; description "Mark type tcp source port"; } enum "mark-type-tcp-dst-port" { value 27; description "Mark type tcp destination port"; } enum "mark-type-sctp-src-port" { value 28; description "Mark type sctp source port"; } enum "mark-type-sctp-dst-port" { value 29; description "Mark type sctp destination port"; } enum "mark-type-max" { value 30; description "Mark Type Max (Invalid)"; } } description "Mark Type Enumeration"; } typedef Qlimit-type-en { type enumeration { enum "qlimit-cmd" { value 0; description "Queue Limit"; } enum "qlimit-discard-class" { value 1; description "Queue Limit based on Discard Class"; } enum "qlimit-qos-group" { value 2; description "Queue Limit based on Qos Group"; } enum "qlimit-precedence" { value 3; description "Queue Limit based on Precedence"; } enum "qlimit-mpls-exp" { value 4; description "Queue Limit based on Mpls Exp"; } enum "qlimit-dscp" { value 5; description "Queue Limit based on Dscp"; } enum "qlimit-max" { value 6; description "Queue Limit Max (Invalid)"; } } description "Queue Limit Types"; } typedef Afmon-react-criterion-en { type enumeration { enum "afmon-react-crit-invalid" { value 0; description "afmon react crit invalid"; } enum "afmon-react-mrv" { value 1; description "afmon react mrv"; } enum "afmon-react-df" { value 2; description "afmon react df"; } enum "afmon-react-mse" { value 3; description "afmon react mse"; } enum "afmon-react-pkt-rate" { value 4; description "afmon react pkt rate"; } enum "afmon-react-flow-cnt" { value 5; description "afmon react flow cnt"; } enum "afmon-react-rtp-loss-fraction" { value 6; description "afmon react rtp loss fraction"; } enum "afmon-react-rtp-jitter" { value 7; description "afmon react rtp jitter"; } enum "afmon-react-rtp-max-jitter" { value 8; description "afmon react rtp max jitter"; } enum "afmon-react-rtp-out-of-order" { value 9; description "afmon react rtp out of order"; } enum "afmon-react-rtp-loss-pkts" { value 10; description "afmon react rtp loss pkts"; } enum "afmon-react-rtp-ta" { value 11; description "afmon react rtp ta"; } enum "afmon-react-rtp-es" { value 12; description "afmon react rtp es"; } enum "afmon-react-mdi-mlr" { value 13; description "afmon react mdi mlr"; } enum "afmon-react-mdi-mdc" { value 14; description "afmon react mdi mdc"; } enum "afmon-react-mdi-jitter" { value 15; description "afmon react mdi jitter"; } enum "afmon-react-mdi-loss-pkts" { value 16; description "afmon react mdi loss pkts"; } enum "afmon-react-mdi-ta" { value 17; description "afmon react mdi ta"; } enum "afmon-react-mdi-es" { value 18; description "afmon react mdi es"; } enum "afmon-react-crit-max" { value 19; description "afmon react crit max"; } } description "Afmon react criterion en"; } typedef Pfc-pause-type { type enumeration { enum "pfc-buffer-size-defined" { value 0; description "pfc buffer size defined"; } enum "pfc-pause-threshold-defined" { value 1; description "pfc pause threshold defined"; } enum "pfc-resume-threshold-defined" { value 2; description "pfc resume threshold defined"; } enum "pfc-buffer-size-value" { value 3; description "pfc buffer size value"; } enum "pfc-pause-threshold-value" { value 4; description "pfc pause threshold value"; } enum "pfc-resume-threshold-value" { value 5; description "pfc resume threshold value"; } } description "Pfc pause type"; } typedef Police-actn-category-en { type enumeration { enum "police-actn-category-conform" { value 0; description "Conform action"; } enum "police-actn-category-exceed" { value 1; description "Exceed action"; } enum "police-actn-category-violate" { value 2; description "Violate action"; } enum "police-actn-category-max" { value 3; description "Maximum police action categories"; } } description "Police Action Categories"; } typedef Redirect-type-e { type uint8; description "Redirect type e"; } typedef Match-nas-port-sub-id-en { type enumeration { enum "match-nas-port-sub-id-unspecified" { value 0; description "match nas port sub id unspecified"; } enum "match-nas-port-sub-id-adapter" { value 1; description "match nas port sub id adapter"; } enum "match-nas-port-sub-id-channel" { value 2; description "match nas port sub id channel"; } enum "match-nas-port-sub-id-ip-addr" { value 3; description "match nas port sub id ip addr"; } enum "match-nas-port-sub-id-port" { value 4; description "match nas port sub id port"; } enum "match-nas-port-sub-id-shelf" { value 5; description "match nas port sub id shelf"; } enum "match-nas-port-sub-id-slot" { value 6; description "match nas port sub id slot"; } enum "match-nas-port-sub-id-sub-interface" { value 7; description "match nas port sub id sub interface"; } enum "match-nas-port-sub-id-type" { value 8; description "match nas port sub id type"; } enum "match-nas-port-sub-id-vci" { value 9; description "match nas port sub id vci"; } enum "match-nas-port-sub-id-vlan" { value 10; description "match nas port sub id vlan"; } enum "match-nas-port-sub-id-vpi" { value 11; description "match nas port sub id vpi"; } enum "match-nas-port-sub-id-max" { value 12; description "match nas port sub id max"; } } description "Match nas port sub id en"; } typedef Mark-type-e { type uint8; description "Mark type e"; } typedef Object-name { type string { length "0..65"; } description "Object name"; } typedef Cac-flow-actn-type-en { type enumeration { enum "cac-flow-actn-type-local" { value 0; description "CAC flow local"; } enum "cac-flow-actn-type-max" { value 1; description "Max CAC flow types"; } } description "CAC flow types"; } typedef Policy-map-table-type-e { type uint8; description "Policy map table type e"; } typedef Enum-val-t { type uint16; description "Enum val t"; } typedef Afmon-react-actn-en { type enumeration { enum "afmon-react-actn-none" { value 0; description "afmon react actn none"; } enum "afmon-react-syslog" { value 1; description "afmon react syslog"; } enum "afmon-react-snmp" { value 2; description "afmon react snmp"; } enum "afmon-react-clone" { value 3; description "afmon react clone"; } } description "Afmon react actn en"; } typedef Pevent-cond-eval-en { type enumeration { enum "pevent-cond-eval-unspecified" { value 0; description "Unspecified execution strategy"; } enum "pevent-cond-eval-match-first" { value 1; description "Match-first execution strategy"; } enum "pevent-cond-eval-match-all" { value 2; description "Match-all execution strategy"; } enum "pevent-cond-eval-max" { value 3; description "Internal use only"; } } description "Policy event execution strategy enumeration"; } typedef Dpss-snid-type-en { type enumeration { enum "dpss-snid-invalid" { value 0; description "dpss snid invalid"; } enum "dpss-snid-index" { value 1; description "dpss snid index"; } enum "dpss-snid-name" { value 2; description "dpss snid name"; } enum "dpss-snid-type-max" { value 3; description "dpss snid type max"; } } description "Dpss snid type en"; } typedef Pclass-data-avl-inbag { type uint64; description "Pclass data avl inbag"; } typedef Match-type-en { type enumeration { enum "match-type-none" { value 0; description "Match Type None"; } enum "match-type-ipv4-dscp" { value 1; description "Match Type IPv4 DSCP"; } enum "match-type-ipv4-prec" { value 2; description "Match Type IPv4 Precedence"; } enum "match-type-ipv6-dscp" { value 3; description "Match Type IPv6 DSCP"; } enum "match-type-packet-length" { value 4; description "Match Type Packet length"; } enum "match-type-ipv4-packet-length" { value 5; description "Match Type IPv4 Packet length"; } enum "match-type-ipv6-packet-length" { value 6; description "Match Type IPv6 Packet length"; } enum "match-type-flow-tag" { value 7; description "Match Type Flow Tag"; } enum "match-type-icmpv4-type" { value 8; description "Match Type IPv4 icmp-type"; } enum "match-type-icmpv4-code" { value 9; description "Match Type IPv4 icmp-code"; } enum "match-type-icmpv6-type" { value 10; description "Match Type IPv6 icmp-type"; } enum "match-type-icmpv6-code" { value 11; description "Match Type IPv6 icmp-code"; } enum "match-type-ipv6-prec" { value 12; description "Match Type IPv6 Precedence"; } enum "match-type-fragment-type" { value 13; description "Match type fragment-type"; } enum "match-type-tcp-flag" { value 14; description "Match type TCP flag"; } enum "match-type-dscp" { value 15; description "Match Type DSCP"; } enum "match-type-prec" { value 16; description "Match Type Precedence"; } enum "match-type-proto" { value 17; description "Match Type Protocol"; } enum "match-type-proto-icmpv4" { value 18; description "Match Type protocol ICMPv4"; } enum "match-type-proto-icmpv6" { value 19; description "Match Type protocol ICMPv6"; } enum "match-type-mpls-exp-top" { value 20; description "Match Type MPLS EXP Topmost"; } enum "match-type-mpls-exp-imp" { value 21; description "Match Type MPLS EXP Imposition"; } enum "match-type-mpls-disp-ipv4-acl" { value 22; description "Match Type MPLS DISP IPv4 ACL"; } enum "match-type-mpls-disp-ipv6-acl" { value 23; description "Match Type MPLS DISP IPv6 ACL"; } enum "match-type-mpls-disp-cl-map" { value 24; description "Match Type MPLS DISP Class Map"; } enum "match-type-mpls-topmost-eos" { value 25; description "Match Type MPLS TOPMOST EOS"; } enum "match-type-mpls-topmost-label" { value 26; description "Match Type MPLS TOPMOST LABEL"; } enum "match-type-cos" { value 27; description "Match Type COS"; } enum "match-type-cos-inner" { value 28; description "Match Type inner COS"; } enum "match-type-dei" { value 29; description "Match Type DEI"; } enum "match-type-dei-inner" { value 30; description "Match Type inner DEI"; } enum "match-type-vlan" { value 31; description "Match Type VLAN"; } enum "match-type-vlan-inner" { value 32; description "Match Type inner VLAN"; } enum "match-type-fr-dlci" { value 33; description "Match Type FR DLCI"; } enum "match-type-src-mac" { value 34; description "Match Type Source MAC Address"; } enum "match-type-dst-mac" { value 35; description "Match Type Destination MAC Address"; } enum "match-type-atm-oam" { value 36; description "Match Type ATM OAM"; } enum "match-type-atm-clp" { value 37; description "Match Type ATM CLP"; } enum "match-type-fr-de" { value 38; description "Match Type FR DE"; } enum "match-type-qos-grp" { value 39; description "Match Type QoS Group"; } enum "match-type-traffic-class" { value 40; description "Match Type Traffic Class"; } enum "match-type-disc-cls" { value 41; description "Match Type Discard Class"; } enum "match-type-vpls-known" { value 42; description "Match Type VPLS Known"; } enum "match-type-vpls-unknown" { value 43; description "Match Type VPLS Unknown"; } enum "match-type-vpls-mcast" { value 44; description "Match Type VPLS Multicast"; } enum "match-type-vpls-bcast" { value 45; description "Match Type VPLS Broadcast"; } enum "match-type-vpls-control" { value 46; description "Match Type VPLS Control"; } enum "match-type-ipv4-acl" { value 47; description "Match Type IPv4 ACL"; } enum "match-type-ipv6-acl" { value 48; description "Match Type IPv6 ACL"; } enum "match-type-flow-key" { value 49; description "Match Type Flow Key"; } enum "match-type-avail-id" { value 50; description "Match Type Available Identifier"; } enum "match-type-authen-status" { value 51; description "Match Type Authentication Status"; } enum "match-type-media" { value 52; description "Match Type Media"; } enum "match-type-mlp-negotiated" { value 53; description "Match Type MLP Negotiated"; } enum "match-type-subs-protocol" { value 54; description "Match Type Protocol"; } enum "match-type-dnis" { value 55; description "Match Type DNIS"; } enum "match-type-dnis-regexp" { value 56; description "Match Type DNIS Regular Exp"; } enum "match-type-domain" { value 57; description "Match Type Domain"; } enum "match-type-domain-regexp" { value 58; description "Match Type Domain Regular Exp"; } enum "match-type-nas-port" { value 59; description "Match Type NAS Port"; } enum "match-type-service-name" { value 60; description "Match Type Service Name"; } enum "match-type-service-name-regexp" { value 61; description "Match Type Service Name Regular Exp"; } enum "match-type-src-addr-ipv4" { value 62; description "Match Type Source Address IPV4"; } enum "match-type-dst-addr-ipv4" { value 63; description "Match Type Source Address IPV4"; } enum "match-type-src-addr-ipv6" { value 64; description "Match Type Source Address IPV6"; } enum "match-type-dst-addr-ipv6" { value 65; description "Match Type Source Address IPV6"; } enum "match-type-src-addr-mac" { value 66; description "Match Type Source Address Mac"; } enum "match-type-src-port" { value 67; description "Match Type Source Port"; } enum "match-type-dst-port" { value 68; description "Match Type Source Port"; } enum "match-type-timer" { value 69; description "Match Type Timer"; } enum "match-type-timer-regexp" { value 70; description "Match Type Timer Regular Exp"; } enum "match-type-tunnel-name" { value 71; description "Match Type Tunnel Name"; } enum "match-type-tunnel-name-regexp" { value 72; description "Match Type Tunnel Name Regular Exp"; } enum "match-type-user-name" { value 73; description "Match Type User Name"; } enum "match-type-user-name-regexp" { value 74; description "Match Type User Name Regular Exp"; } enum "match-type-auth-user-name" { value 75; description "Match Type Authenticated User Name"; } enum "match-type-auth-user-name-regexp" { value 76; description "Match Type Authenticated Userame Reg Exp"; } enum "match-type-unauth-user-name" { value 77; description "Match Type Unauthenticated Username"; } enum "match-type-unauth-user-name-regexp" { value 78; description "Match Type Unauthenicated Username RegEx"; } enum "match-type-no-user-name" { value 79; description "Match Type No Username"; } enum "match-type-auth-domain" { value 80; description "Match Type Authenticated Domain"; } enum "match-type-auth-domain-regexp" { value 81; description "Match Type Authenticated Domain RegEx"; } enum "match-type-unauth-domain" { value 82; description "Match Type Unauthenticated Domain"; } enum "match-type-unauth-domain-regexp" { value 83; description "Match Type Unauthenticated Domain RegEx"; } enum "match-type-vendor-id" { value 84; description "Match Type Vendor ID"; } enum "match-type-vendor-id-regexp" { value 85; description "Match Type Vendor ID RegEx"; } enum "match-type-access-interface" { value 86; description "Match Type Access Interface"; } enum "match-type-input-interface" { value 87; description "Match Type Input Interface"; } enum "match-type-input-interface-hdl" { value 88; description "Match Type Input Interface handle"; } enum "match-type-ether-type" { value 89; description "Match Type Ethernet Type"; } enum "match-type-dhcp-client-id" { value 90; description "Match DHCP Client ID"; } enum "match-type-dhcp-client-id-regexp" { value 91; description "Match DHCP Client ID RegEx"; } enum "match-type-circuit-id" { value 92; description "Match Type Circuit ID"; } enum "match-type-circuit-id-regexp" { value 93; description "Match Type Circuit ID RegEx"; } enum "match-type-remote-id" { value 94; description "Match Type Remote ID"; } enum "match-type-remote-id-regexp" { value 95; description "Match Type Remote ID RegEx"; } enum "match-type-cac-admit-local" { value 96; description "Match Type CAC admitted"; } enum "match-type-cac-unadmit-local" { value 97; description "Match Type CAC unadmitted"; } enum "match-type-any-internal" { value 98; description "Match Type Any (Used only for class-default)"; } enum "match-type-ethernet-service-s-acl" { value 99; description "Match Type Ethernet-Services ACL"; } enum "match-type-ptrs" { value 100; description "Dummy match type for internal use"; } enum "match-type-max" { value 101; description "Match Type Max (Invalid)"; } } description "Match Type"; } typedef Flow-key-en { type enumeration { enum "flow-key-invalid" { value 0; description "Flow key invalid"; } enum "flow-key-src-ip" { value 1; description "Flow key source ip"; } enum "flow-key-dst-ip" { value 2; description "Flow key destination ip"; } enum "flow-key-five-tuple" { value 3; description "Flow key five tuple"; } enum "flow-key-max" { value 4; description "Flow key max"; } } description "Flow key en"; } typedef Match-attr-e { type enumeration { enum "value" { value 0; description "Match attribute value"; } enum "range" { value 1; description "Match attribute range"; } enum "mask" { value 2; description "Match attribute mask"; } } description "Match attribute type"; } typedef Afmon-alarm-sev-en { type enumeration { enum "afmon-alm-none" { value 0; description "afmon alm none"; } enum "afmon-alm-info" { value 1; description "afmon alm info"; } enum "afmon-alm-notif" { value 2; description "afmon alm notif"; } enum "afmon-alm-warn" { value 3; description "afmon alm warn"; } enum "afmon-alm-error" { value 4; description "afmon alm error"; } enum "afmon-alm-crit" { value 5; description "afmon alm crit"; } enum "afmon-alm-alert" { value 6; description "afmon alm alert"; } enum "afmon-alm-emerg" { value 7; description "afmon alm emerg"; } enum "afmon-alm-sev-max" { value 8; description "afmon alm sev max"; } } description "AFMon Alarm Severities"; } typedef Acct-en { type enumeration { enum "policy-acct-evt-unspecified" { value 0; description "policy acct evt unspecified"; } enum "policy-acct-evt-start" { value 1; description "policy acct evt start"; } enum "policy-acct-evt-stop" { value 2; description "policy acct evt stop"; } enum "policy-acct-evt-update" { value 3; description "policy acct evt update"; } } description "Acct en"; } typedef Match-logical-operator-en { type enumeration { enum "match-operator-unspecified" { value 0; description "match operator unspecified"; } enum "match-equal-to" { value 1; description "match equal to"; } enum "match-greater-than" { value 2; description "match greater than"; } enum "match-greater-than-or-equal" { value 3; description "match greater than or equal"; } enum "match-less-than" { value 4; description "match less than"; } enum "match-less-than-or-equal" { value 5; description "match less than or equal"; } enum "match-operator-max" { value 6; description "match operator max"; } } description "Logical Operators"; } typedef Pclass-diff-inbag { type uint64; description "Pclass diff inbag"; } typedef Shared-bucket-name { type string { length "0..65"; } description "Shared bucket name"; } typedef Policy-param-unit-type { type enumeration { enum "policy-param-unit-invalid" { value 0; description "policy param unit invalid"; } enum "policy-param-unit-bytes" { value 1; description "policy param unit bytes"; } enum "policy-param-unit-kbytes" { value 2; description "policy param unit kbytes"; } enum "policy-param-unit-mbytes" { value 3; description "policy param unit mbytes"; } enum "policy-param-unit-gbytes" { value 4; description "policy param unit gbytes"; } enum "policy-param-unit-bitsps" { value 5; description "policy param unit bitsps"; } enum "policy-param-unit-kbitsps" { value 6; description "policy param unit kbitsps"; } enum "policy-param-unit-mbitsps" { value 7; description "policy param unit mbitsps"; } enum "policy-param-unit-gbitsps" { value 8; description "policy param unit gbitsps"; } enum "policy-param-unit-cells-ps" { value 9; description "policy param unit cells ps"; } enum "policy-param-unit-packets-ps" { value 10; description "policy param unit packets ps"; } enum "policy-param-unit-us" { value 11; description "policy param unit us"; } enum "policy-param-unit-ms" { value 12; description "policy param unit ms"; } enum "policy-param-unit-seconds" { value 13; description "policy param unit seconds"; } enum "policy-param-unit-packets" { value 14; description "policy param unit packets"; } enum "policy-param-unit-cells" { value 15; description "policy param unit cells"; } enum "policy-param-unit-percent" { value 16; description "policy param unit percent"; } enum "policy-param-unit-per-thousand" { value 17; description "policy param unit per thousand"; } enum "policy-param-unit-per-million" { value 18; description "policy param unit per million"; } enum "policy-param-unit-hz" { value 19; description "policy param unit hz"; } enum "policy-param-unit-khz" { value 20; description "policy param unit khz"; } enum "policy-param-unit-mhz" { value 21; description "policy param unit mhz"; } enum "policy-param-unit-ratio" { value 22; description "policy param unit ratio"; } enum "policy-param-unit-max" { value 23; description "policy param unit max"; } } description "Policy param unit type"; } typedef Pevent-type-en { type enumeration { enum "pevent-type-unspecified" { value 0; description "Unspecified event"; } enum "pevent-type-acct-logon" { value 1; description "Log on event"; } enum "pevent-type-acct-logoff" { value 2; description "Log off event"; } enum "pevent-type-credit-exhausted" { value 3; description "Credit exhausted event"; } enum "pevent-type-idle-timeout" { value 4; description "Idle timeout event"; } enum "pevent-type-absolute-timeout" { value 5; description "Absolute timeout event"; } enum "pevent-type-quota-depleted" { value 6; description "Quota depletion event"; } enum "pevent-type-service-start" { value 7; description "Service start event"; } enum "pevent-type-service-stop" { value 8; description "Service stop event"; } enum "pevent-type-session-start" { value 9; description "Session start event"; } enum "pevent-type-session-activate" { value 10; description "Session activate event"; } enum "pevent-type-session-restart" { value 11; description "Session restart event"; } enum "pevent-type-session-stop" { value 12; description "Session stop event"; } enum "pevent-type-session-disconnect" { value 13; description "Session disconnect event"; } enum "pevent-type-session-update" { value 14; description "Session update event"; } enum "pevent-type-flow-start" { value 15; description "Flow start event"; } enum "pevent-type-flow-stop" { value 16; description "Flow stop event"; } enum "pevent-type-accouting-start" { value 17; description "Accounting start event"; } enum "pevent-type-acountng-g-stop" { value 18; description "Accounting stop event"; } enum "pevent-type-acountng-g-update" { value 19; description "Accounting update event"; } enum "pevent-type-timer-expiry" { value 20; description "Timer expierd event"; } enum "pevent-type-threshold-reached" { value 21; description "Threshold reached event"; } enum "pevent-type-ka-success" { value 22; description "Keep alive success event"; } enum "pevent-type-ka-failure" { value 23; description "Keep alive failure event"; } enum "pevent-type-link-up" { value 24; description "Link up event"; } enum "pevent-type-link-down" { value 25; description "Link down event"; } enum "pevent-type-authorization-failure" { value 26; description "Authorization failure event"; } enum "pevent-type-authorization-no-response" { value 27; description "Authorization no response event"; } enum "pevent-type-authentication-failure" { value 28; description "Authentication failure event"; } enum "pevent-type-authentication-no-response" { value 29; description "Authentication no response event"; } enum "pevent-type-exception" { value 30; description "Exception event"; } enum "pevent-type-session-ident-chg" { value 31; description "Session identity change event"; } enum "pevent-type-max" { value 32; description "Internal use only"; } } description "Policy event enumeration"; } typedef Afmon-react-parm-type-en { type enumeration { enum "afmon-react-parm-invalid" { value 0; description "invalid"; } enum "afmon-react-parm-oper-id" { value 1; description "Operation ID"; } enum "afmon-react-parm-crit-erion" { value 2; description "Criterion"; } enum "afmon-react-parm-desc" { value 3; description "Description"; } enum "afmon-react-parm-trig-value" { value 4; description "Trigger value"; } enum "afmon-react-parm-trig-type" { value 5; description "Trigger Type"; } enum "afmon-react-parm-action" { value 6; description "Action"; } enum "afmon-react-parm-alm-type" { value 7; description "Alarm type"; } enum "afmon-react-parm-alm-severity" { value 8; description "Alarm Severity"; } enum "afmon-react-parm-max" { value 9; description "Maximum react parm type"; } } description "(afmon) React submode param types"; } typedef Plmgr-var-type-en { type enumeration { enum "plmgr-var-type-class-name" { value 0; description "plmgr var type class name"; } enum "plmgr-var-type-uint8" { value 1; description "plmgr var type uint8"; } enum "plmgr-var-type-uint16" { value 2; description "plmgr var type uint16"; } enum "plmgr-var-type-uint32" { value 3; description "plmgr var type uint32"; } enum "plmgr-var-type-param-uint32" { value 4; description "plmgr var type param uint32"; } enum "plmgr-var-type-dscp" { value 5; description "plmgr var type dscp"; } enum "plmgr-var-type-prec" { value 6; description "plmgr var type prec"; } enum "plmgr-var-type-max" { value 7; description "plmgr var type max"; } } description "Type of default variable values"; } typedef Policy-map-name { type string { length "0..65"; } description "Policy map name"; } typedef Policy-action-attr-en { type enumeration { enum "action-attribute" { value 1; description "action attribute"; } enum "sub-action-attribute" { value 2; description "sub action attribute"; } } description "Policy action attribute enum"; } typedef Policy-obj-enc-en { type enumeration { enum "policy-obj-enc-name" { value 0; description "Name of the Policy"; } enum "policy-obj-enc-hdl" { value 1; description "Policy Handle"; } enum "policy-obj-enc-var-idx" { value 2; description "Policy Variable Index"; } enum "policy-obj-enc-in-line" { value 3; description "Inline Class"; } } description "Child policy related encoding information"; } typedef Plmgr-app-fwding-type-e { type enumeration { enum "layer2" { value 0; description " Forwarding type layer2"; } enum "layer3" { value 1; description " Forwarding type layer3"; } enum "any" { value 2; description "Forwarding type any"; } } description "Forwarding types"; } typedef Class-map-type-en { type enumeration { enum "class-map-type-none" { value 0; description "class map type none"; } enum "class-map-type-qos" { value 1; description "class map type qos"; } enum "class-map-type-pbr" { value 2; description "class map type pbr"; } enum "class-map-type-traffic" { value 3; description "class map type traffic"; } enum "class-map-type-subs-control" { value 4; description "class map type subs control"; } enum "class-map-type-max" { value 5; description "class map type max"; } } description "Class map type en"; } typedef Wred-type-en { type enumeration { enum "wred-cos-cmd" { value 0; description "wred cos cmd"; } enum "wred-dscp-cmd" { value 1; description "wred dscp cmd"; } enum "wred-precedence-cmd" { value 2; description "wred precedence cmd"; } enum "wred-discard-class-cmd" { value 3; description "wred discard class cmd"; } enum "wred-mpls-exp-cmd" { value 4; description "wred mpls exp cmd"; } enum "red-with-user-min-max" { value 5; description "red with user min max"; } enum "red-with-default-min-max" { value 6; description "red with default min max"; } enum "wred-dei-cmd" { value 7; description "wred dei cmd"; } enum "wred-ecn-cmd" { value 8; description "wred ecn cmd"; } enum "wred-invalid-cmd" { value 9; description "wred invalid cmd"; } } description "Wred type en"; } typedef Policy-map-table-type-en { type enumeration { enum "policy-map-table-type-none" { value 0; description "policy map table type none"; } enum "policy-map-table-type-l2-any" { value 1; description "policy map table type l2 any"; } enum "policy-map-table-type-l2-l3" { value 2; description "policy map table type l2 l3"; } enum "policy-map-table-type-l3-ipv4" { value 3; description "policy map table type l3 ipv4"; } enum "policy-map-table-type-l3-ds" { value 4; description "policy map table type l3 ds"; } enum "policy-map-table-type-traffic-ingress" { value 5; description "policy map table type traffic ingress"; } enum "policy-map-table-type-qos-ingress" { value 6; description "policy map table type qos ingress"; } enum "policy-map-table-type-qos-egress" { value 7; description "policy map table type qos egress"; } enum "policy-map-table-type-max" { value 8; description "policy map table type max"; } } description "Policy-Map Table Type"; } typedef Shared-bucket-type { type enumeration { enum "shared-bucket-type-not-specified" { value 0; description "shared bucket type not specified"; } enum "shared-bucket-referred" { value 1; description "shared bucket referred"; } enum "shared-bucket-defined" { value 2; description "shared bucket defined"; } } description "Shared bucket type"; } typedef Afmon-rtp-clock-rate-type-en { type enumeration { enum "afmon-rtp-cr-invalid" { value 0; description "afmon rtp cr invalid"; } enum "afmon-rtp-cr-8k" { value 1; description "afmon rtp cr 8k"; } enum "afmon-rtp-cr-16k" { value 2; description "afmon rtp cr 16k"; } enum "afmon-rtp-cr-11025" { value 3; description "afmon rtp cr 11025"; } enum "afmon-rtp-cr-22050" { value 4; description "afmon rtp cr 22050"; } enum "afmon-rtp-cr-44100" { value 5; description "afmon rtp cr 44100"; } enum "afmon-rtp-cr-48k" { value 6; description "afmon rtp cr 48k"; } enum "afmon-rtp-cr-90k" { value 7; description "afmon rtp cr 90k"; } enum "afmon-rtp-cr-27m" { value 8; description "afmon rtp cr 27m"; } enum "afmon-rtp-cr-148500k" { value 9; description "afmon rtp cr 148500k"; } enum "afmon-rtp-cr-148351k" { value 10; description "afmon rtp cr 148351k"; } enum "afmon-rtp-cr-max" { value 11; description "afmon rtp cr max"; } } description "Afmon rtp clock rate type en"; } typedef Afmon-trig-relop-en { type enumeration { enum "afmon-trig-relop-invalid" { value 0; description "afmon trig relop invalid"; } enum "afmon-trig-lt" { value 1; description "afmon trig lt"; } enum "afmon-trig-le" { value 2; description "afmon trig le"; } enum "afmon-trig-gt" { value 3; description "afmon trig gt"; } enum "afmon-trig-ge" { value 4; description "afmon trig ge"; } enum "afmon-trig-range" { value 5; description "afmon trig range"; } enum "afmon-trig-relop-max" { value 6; description "afmon trig relop max"; } } description "Afmon trig relop en"; } typedef Match-no-username-en { type enumeration { enum "match-no-user-name-unspecified" { value 0; description "match no user name unspecified"; } enum "match-no-user-name" { value 1; description "match no user name"; } enum "match-user-name" { value 2; description "match user name"; } enum "match-no-user-name-max" { value 3; description "match no user name max"; } } description "Match no username en"; } typedef Afmon-rtp-parm-type-en { type enumeration { enum "afmon-rtp-parm-invalid" { value 0; description "afmon rtp parm invalid"; } enum "afmon-rtp-parm-min-seq" { value 1; description "afmon rtp parm min seq"; } enum "afmon-rtp-parm-max-drop" { value 2; description "afmon rtp parm max drop"; } enum "afmon-rtp-parm-max-mis-order" { value 3; description "afmon rtp parm max mis order"; } enum "afmon-rtp-parm-seq-ext-cop4" { value 4; description "afmon rtp parm seq ext cop4"; } enum "afmon-rtp-parm-clock-rate" { value 5; description "afmon rtp parm clock rate"; } enum "afmon-rtp-parm-max" { value 6; description "afmon rtp parm max"; } } description "Afmon rtp parm type en"; } typedef Policy-map-type-en { type enumeration { enum "policy-map-type-none" { value 0; description "policy map type none"; } enum "policy-map-type-qos" { value 1; description "policy map type qos"; } enum "policy-map-type-pbr" { value 2; description "policy map type pbr"; } enum "policy-map-type-traffic" { value 3; description "policy map type traffic"; } enum "policy-map-type-subs-control" { value 4; description "policy map type subs control"; } enum "policy-map-type-accounting" { value 5; description "policy map type accounting"; } enum "policy-map-type-redirect" { value 6; description "policy map type redirect"; } enum "policy-map-type-afmon" { value 7; description "policy map type afmon"; } enum "policy-map-type-merge" { value 8; description "policy map type merge"; } enum "policy-map-type-max" { value 9; description "policy map type max"; } } description "Policy map type en"; } typedef Redirect-type-en { type enumeration { enum "redirect-type-none" { value 0; description "Redirect None"; } enum "redirect-type-output-interface" { value 1; description "Redirect to output intreface"; } enum "redirect-type-max" { value 2; description "Redirect Max (Invalid)"; } } description "Redirect types Enumeration"; } typedef Policy-action-exec-type-e { type enumeration { enum "execution-immediate" { value 1; description "execution immediate"; } enum "execution-deferred" { value 2; description "execution deferred"; } } description "Policy action execution type enum"; } typedef Class-map-mode-en { type enumeration { enum "class-map-mode-match-any" { value 0; description "Type Match-Any"; } enum "class-map-mode-match-all" { value 1; description "Type Match-All"; } enum "class-map-mode-max" { value 2; description "Not a valid mode"; } enum "class-map-mode-usr-def" { value 1073741824; description "User defined match type"; } } description "Class-Map Mode"; } typedef Match-subs-protocol-en { type enumeration { enum "match-subs-protocol-unspecified" { value 0; description "match subs protocol unspecified"; } enum "match-subs-protocol-ipv4" { value 1; description "match subs protocol ipv4"; } enum "match-subs-protocol-ppp" { value 2; description "match subs protocol ppp"; } enum "match-subs-protocol-dhcpv4" { value 3; description "match subs protocol dhcpv4"; } enum "match-subs-protocol-dhcpv6" { value 4; description "match subs protocol dhcpv6"; } enum "match-subs-protocol-max" { value 5; description "match subs protocol max"; } } description "Match subs protocol en"; } typedef Vsvc-service-type-t { type enumeration { enum "vsvc-service-invalid" { value 0; description "vsvc service invalid"; } enum "vsvc-service-v-path" { value 1; description "vsvc service v path"; } enum "vsvc-service-ipsec" { value 2; description "vsvc service ipsec"; } enum "vsvc-service-cgn" { value 3; description "vsvc service cgn"; } enum "vsvc-service-o-flow" { value 4; description "vsvc service o flow"; } enum "vsvc-service-output" { value 5; description "vsvc service output"; } enum "vsvc-service-cfg-v-path" { value 6; description "vsvc service cfg v path"; } enum "vsvc-service-sfp" { value 7; description "vsvc service sfp"; } enum "vsvc-service-sfl" { value 8; description "vsvc service sfl"; } enum "vsvc-service-sffl" { value 9; description "vsvc service sffl"; } enum "vsvc-service-max" { value 10; description "vsvc service max"; } } description "Vsvc service type t"; } typedef Afmon-flow-parm-type-en { type enumeration { enum "afmon-flow-parm-invalid" { value 0; description "invalid"; } enum "afmon-flow-parm-max-mon-flow-s" { value 1; description "Max monitored flows"; } enum "afmon-flow-parm-mon-interval" { value 2; description "Monitoring interval"; } enum "afmon-flow-parm-intvl-hist" { value 3; description "Interval History"; } enum "afmon-flow-parm-flow-timeout" { value 4; description "Flow Timeout"; } enum "afmon-flow-parm-max" { value 5; description "Maximum flow parm type"; } } description "(afmon) Flow submode param types"; } typedef Afmon-trig-type-en { type enumeration { enum "afmon-trig-type-invalid" { value 0; description "afmon trig type invalid"; } enum "afmon-trig-immed" { value 1; description "afmon trig immed"; } enum "afmon-trig-avg" { value 2; description "afmon trig avg"; } enum "afmon-trig-type-max" { value 3; description "afmon trig type max"; } } description "Afmon trig type en"; } typedef Match-authen-status-en { type enumeration { enum "match-authen-status-unspecified" { value 0; description "match authen status unspecified"; } enum "match-authen-status-authenticated" { value 1; description "match authen status authenticated"; } enum "match-authen-status-unauthenticated" { value 2; description "match authen status unauthenticated"; } enum "match-authen-status-max" { value 3; description "match authen status max"; } } description "Match authen status en"; } typedef Policy-class-info-en { type enumeration { enum "policy-class-info-key-type" { value 0; description "Policy Class Info Key"; } enum "policy-class-info-mod-type" { value 1; description "Policy Class Info Modify Bag"; } } description "Policy class info en"; } typedef Afmon-mdi-parm-type-en { type enumeration { enum "afmon-mdi-parm-invalid" { value 0; description "afmon mdi parm invalid"; } enum "afmon-mdi-parm-pids" { value 1; description "afmon mdi parm pids"; } enum "afmon-mdi-parm-pkt-rate" { value 2; description "afmon mdi parm pkt rate"; } enum "afmon-mdi-parm-ip-pkt-rate" { value 3; description "afmon mdi parm ip pkt rate"; } enum "afmon-mdi-parm-ip-bit-rate" { value 4; description "afmon mdi parm ip bit rate"; } enum "afmon-mdi-parm-max" { value 5; description "afmon mdi parm max"; } } description "Afmon mdi parm type en"; } typedef Police-action-type-en { type enumeration { enum "police-action-none" { value 0; description "Policer Action None"; } enum "police-action-transmit" { value 1; description "Policer Action Transmit"; } enum "police-action-drop" { value 2; description "Policer Action Drop"; } enum "police-action-mark" { value 3; description "Policer Action Mark"; } enum "police-action-max" { value 4; description "Policer Action Max"; } } description "Policer Action Type"; } typedef Match-mlp-negotiated-en { type enumeration { enum "match-mlp-negotiated-unspecified" { value 0; description "match mlp negotiated unspecified"; } enum "match-mlp-negotiated" { value 1; description "match mlp negotiated"; } enum "match-mlp-not-negotiated" { value 2; description "match mlp not negotiated"; } enum "match-mlp-max" { value 3; description "match mlp max"; } } description "Match mlp negotiated en"; } typedef Match-cap-e { type uint8; description "Match cap e"; } typedef Policy-action-e { type uint8; description "Policy action e"; } typedef Match-nas-port-intf-type-en { type enumeration { enum "match-nas-port-intf-type-unspecified" { value 0; description "match nas port intf type unspecified"; } enum "match-nas-port-intf-type-async" { value 1; description "match nas port intf type async"; } enum "match-nas-port-intf-type-atm" { value 2; description "match nas port intf type atm"; } enum "match-nas-port-intf-type-bri" { value 3; description "match nas port intf type bri"; } enum "match-nas-port-intf-type-ether" { value 4; description "match nas port intf type ether"; } enum "match-nas-port-intf-type-ipsec" { value 5; description "match nas port intf type ipsec"; } enum "match-nas-port-intf-type-none" { value 6; description "match nas port intf type none"; } enum "match-nas-port-intf-type-piafs" { value 7; description "match nas port intf type piafs"; } enum "match-nas-port-intf-type-pppatm" { value 8; description "match nas port intf type pppatm"; } enum "match-nas-port-intf-type-ppp-ether" { value 9; description "match nas port intf type ppp ether"; } enum "match-nas-port-intf-type-pppoeatm" { value 10; description "match nas port intf type pppoeatm"; } enum "match-nas-port-intf-type-pppqinq" { value 11; description "match nas port intf type pppqinq"; } enum "match-nas-port-intf-type-pppvlan" { value 12; description "match nas port intf type pppvlan"; } enum "match-nas-port-intf-type-pri" { value 13; description "match nas port intf type pri"; } enum "match-nas-port-intf-type-sync" { value 14; description "match nas port intf type sync"; } enum "match-nas-port-intf-type-v110" { value 15; description "match nas port intf type v110"; } enum "match-nas-port-intf-type-v120" { value 16; description "match nas port intf type v120"; } enum "match-nas-port-intf-type-vty" { value 17; description "match nas port intf type vty"; } enum "match-nas-port-intf-type-x75" { value 18; description "match nas port intf type x75"; } enum "match-nas-port-intf-type-max" { value 19; description "match nas port intf type max"; } } description "Match nas port intf type en"; } container policy-manager { config false; description "Policy-map operational data"; container global { description "Global QOS operational data"; container policy-map-global-cap { description "Policy Global Capability"; list global-capability { description "Global capability"; container system-capability { description "system capability"; leaf maximum-inline-classes-per-system { type uint32; description "Maximum number of inline classes supported on a network element"; } leaf maximum-policy-maps-per-system { type uint32; description "Maximum number of unique policy-map supported on a network element"; } } // container system-capability container atomicity-capability { description "atomicity capability"; leaf atomicity-per-bulk { type boolean; description "Specifies policymgr bulk configuration atomicity supported or not"; } leaf atomicity-per-inline-class { type boolean; description "Specifies policymgr inline class configuration atomicity supported or not"; } leaf atomicity-per-policy-map { type boolean; description "Specifies policymgr policy-map configuration atomicity supported or not"; } } // container atomicity-capability container stats-capability { description "stats capability"; leaf maximum-class-stats-polling-rate { type uint32; description "Maximum statistics polling rate supported by a network in terms of class stats per sec"; } } // container stats-capability container cookie-capability { description "cookie capability"; leaf policy-map-cookie { type boolean; description "Specifies policy-map cookie supported or not"; } leaf inline-class-cookie { type boolean; description "Specifies class cookie supported or not"; } } // container cookie-capability container status-capability { description "status capability"; leaf status-per-match { type boolean; description "Filter operation status capability"; } leaf status-per-action { type boolean; description "Action operation status capability"; } leaf status-per-inline-class { type boolean; description "Inline class operation status capability"; } leaf status-per-class-map { type boolean; description "Class map operation status capability"; } leaf status-per-policy-map { type boolean; description "Policy map operation status capability"; } leaf status-per-bulk { type boolean; description "Bulk operation status capability"; } } // container status-capability container bulk-best-effort-capability { description "bulk best effort capability"; leaf best-effort-per-bulk-instance { type boolean; description "Specifies policymgr supports bulk configuration best effort behavior or not"; } } // container bulk-best-effort-capability } // list global-capability } // container policy-map-global-cap container policy-map-table-cap { xr:xr-xml-map "policymgr_oper:TableCapabilty"; description "Policy Table Capability"; container policy-table-cap-types { xr:xr-xml-map "policymgr_oper:TableType"; description "Table Capability Types"; container l2any { description "Tablecap for l2any"; list table-capabilty { description "Table capability"; container stats-capabilty { description "Stats capabaility"; leaf class-aggregate-targetaggregate-stats { type boolean; description "Specifies if complete table stats is supported or not"; } leaf class-target-aggregate { type boolean; description "Specifies if class statistics aggregated for all targets is supporte dor not"; } leaf class-target-stats { type boolean; description "Specifies if class statistics for each target supported or not"; } leaf table-target-stats { type boolean; description "Specifies if per targets statistics retrieval is supporte dor not"; } leaf action-taget-stats { type boolean; description "Specifies per action per target statistics supoorted or not"; } } // container stats-capabilty container transient-capability { description "Transient capability"; leaf transient { type boolean; description "Table transient support"; } } // container transient-capability container persistent-capability { description "Persistent capability"; leaf persistent { type boolean; description "Table persistent support"; } } // container persistent-capability container class-capability { description "Class capabaility"; leaf classmap-class-support { type boolean; description "ClassmapClassSupport"; } leaf class-sequence-number-support { type boolean; description "ClassSequenceNumberSupport"; } leaf class-ordering-support { type boolean; description "ClassOrderingSupport"; } leaf class-idel-timeout-support { type boolean; description "ClassIdelTimeoutSupport"; } leaf inline-c-lass-support { type boolean; description "InlineCLassSupport"; } leaf maximum-inline-class-provision-rate { type uint32; description "MaximumInlineClassProvisionRate"; } leaf maximum-inline-class-per-table { type uint32; description "MaximumInlineClassPerTable"; } } // container class-capability leaf table-type { type Policy-map-table-type-e; description " Table type"; } leaf-list forwarding-type { type Plmgr-app-fwding-type-e; description "Forwarding type supported "; } list match-capability { description "Match capability "; leaf match-capability-type { type Match-cap-e; description "Match type"; } list match-attribute { description "Match attribute"; container val-attr { when "../match-attr-type = 'value'" { description "../match_attr_type = 'Value'"; } description "val attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container val-attr container rng-attr { when "../match-attr-type = 'range'" { description "../match_attr_type = 'Range'"; } description "rng attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container rng-attr container mask-attr { when "../match-attr-type = 'mask'" { description "../match_attr_type = 'Mask'"; } description "mask attr"; leaf subnet { type boolean; description "Subnet mask support for a match type"; } leaf arbitrary { type boolean; description "Arbitrary mask support for a match type"; } leaf wild-card { type boolean; description "Wild card mask support for a match type"; } } // container mask-attr leaf match-attr-type { type Match-attr-e; description "match attr type"; } } // list match-attribute } // list match-capability list action-capability { description "Action capability"; container policy-action-attribute { description "Policy Action attribute info"; container sub-action { when "../action-type = 'sub-action-attribute'" { description "../action_type = 'SubActionAttribute'"; } description "sub action"; list sub-action-attribute { description ""; container action-attribute { description ""; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attribute leaf sub-action { type uint32; description ""; } } // list sub-action-attribute } // container sub-action container action-attr { when "../action-type = 'action-attribute'" { description "../action_type = 'ActionAttribute'"; } description "action attr"; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attr leaf action-type { type Policy-action-attr-en; description "action type"; } } // container policy-action-attribute leaf policy-action { type Policy-action-e; description "Policy action "; } } // list action-capability } // list table-capabilty } // container l2any container l2l3 { description "Tablecap for l2l3"; list table-capabilty { description "Table capability"; container stats-capabilty { description "Stats capabaility"; leaf class-aggregate-targetaggregate-stats { type boolean; description "Specifies if complete table stats is supported or not"; } leaf class-target-aggregate { type boolean; description "Specifies if class statistics aggregated for all targets is supporte dor not"; } leaf class-target-stats { type boolean; description "Specifies if class statistics for each target supported or not"; } leaf table-target-stats { type boolean; description "Specifies if per targets statistics retrieval is supporte dor not"; } leaf action-taget-stats { type boolean; description "Specifies per action per target statistics supoorted or not"; } } // container stats-capabilty container transient-capability { description "Transient capability"; leaf transient { type boolean; description "Table transient support"; } } // container transient-capability container persistent-capability { description "Persistent capability"; leaf persistent { type boolean; description "Table persistent support"; } } // container persistent-capability container class-capability { description "Class capabaility"; leaf classmap-class-support { type boolean; description "ClassmapClassSupport"; } leaf class-sequence-number-support { type boolean; description "ClassSequenceNumberSupport"; } leaf class-ordering-support { type boolean; description "ClassOrderingSupport"; } leaf class-idel-timeout-support { type boolean; description "ClassIdelTimeoutSupport"; } leaf inline-c-lass-support { type boolean; description "InlineCLassSupport"; } leaf maximum-inline-class-provision-rate { type uint32; description "MaximumInlineClassProvisionRate"; } leaf maximum-inline-class-per-table { type uint32; description "MaximumInlineClassPerTable"; } } // container class-capability leaf table-type { type Policy-map-table-type-e; description " Table type"; } leaf-list forwarding-type { type Plmgr-app-fwding-type-e; description "Forwarding type supported "; } list match-capability { description "Match capability "; leaf match-capability-type { type Match-cap-e; description "Match type"; } list match-attribute { description "Match attribute"; container val-attr { when "../match-attr-type = 'value'" { description "../match_attr_type = 'Value'"; } description "val attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container val-attr container rng-attr { when "../match-attr-type = 'range'" { description "../match_attr_type = 'Range'"; } description "rng attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container rng-attr container mask-attr { when "../match-attr-type = 'mask'" { description "../match_attr_type = 'Mask'"; } description "mask attr"; leaf subnet { type boolean; description "Subnet mask support for a match type"; } leaf arbitrary { type boolean; description "Arbitrary mask support for a match type"; } leaf wild-card { type boolean; description "Wild card mask support for a match type"; } } // container mask-attr leaf match-attr-type { type Match-attr-e; description "match attr type"; } } // list match-attribute } // list match-capability list action-capability { description "Action capability"; container policy-action-attribute { description "Policy Action attribute info"; container sub-action { when "../action-type = 'sub-action-attribute'" { description "../action_type = 'SubActionAttribute'"; } description "sub action"; list sub-action-attribute { description ""; container action-attribute { description ""; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attribute leaf sub-action { type uint32; description ""; } } // list sub-action-attribute } // container sub-action container action-attr { when "../action-type = 'action-attribute'" { description "../action_type = 'ActionAttribute'"; } description "action attr"; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attr leaf action-type { type Policy-action-attr-en; description "action type"; } } // container policy-action-attribute leaf policy-action { type Policy-action-e; description "Policy action "; } } // list action-capability } // list table-capabilty } // container l2l3 container l3ds { description "Tablecap for l3ds"; list table-capabilty { description "Table capability"; container stats-capabilty { description "Stats capabaility"; leaf class-aggregate-targetaggregate-stats { type boolean; description "Specifies if complete table stats is supported or not"; } leaf class-target-aggregate { type boolean; description "Specifies if class statistics aggregated for all targets is supporte dor not"; } leaf class-target-stats { type boolean; description "Specifies if class statistics for each target supported or not"; } leaf table-target-stats { type boolean; description "Specifies if per targets statistics retrieval is supporte dor not"; } leaf action-taget-stats { type boolean; description "Specifies per action per target statistics supoorted or not"; } } // container stats-capabilty container transient-capability { description "Transient capability"; leaf transient { type boolean; description "Table transient support"; } } // container transient-capability container persistent-capability { description "Persistent capability"; leaf persistent { type boolean; description "Table persistent support"; } } // container persistent-capability container class-capability { description "Class capabaility"; leaf classmap-class-support { type boolean; description "ClassmapClassSupport"; } leaf class-sequence-number-support { type boolean; description "ClassSequenceNumberSupport"; } leaf class-ordering-support { type boolean; description "ClassOrderingSupport"; } leaf class-idel-timeout-support { type boolean; description "ClassIdelTimeoutSupport"; } leaf inline-c-lass-support { type boolean; description "InlineCLassSupport"; } leaf maximum-inline-class-provision-rate { type uint32; description "MaximumInlineClassProvisionRate"; } leaf maximum-inline-class-per-table { type uint32; description "MaximumInlineClassPerTable"; } } // container class-capability leaf table-type { type Policy-map-table-type-e; description " Table type"; } leaf-list forwarding-type { type Plmgr-app-fwding-type-e; description "Forwarding type supported "; } list match-capability { description "Match capability "; leaf match-capability-type { type Match-cap-e; description "Match type"; } list match-attribute { description "Match attribute"; container val-attr { when "../match-attr-type = 'value'" { description "../match_attr_type = 'Value'"; } description "val attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container val-attr container rng-attr { when "../match-attr-type = 'range'" { description "../match_attr_type = 'Range'"; } description "rng attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container rng-attr container mask-attr { when "../match-attr-type = 'mask'" { description "../match_attr_type = 'Mask'"; } description "mask attr"; leaf subnet { type boolean; description "Subnet mask support for a match type"; } leaf arbitrary { type boolean; description "Arbitrary mask support for a match type"; } leaf wild-card { type boolean; description "Wild card mask support for a match type"; } } // container mask-attr leaf match-attr-type { type Match-attr-e; description "match attr type"; } } // list match-attribute } // list match-capability list action-capability { description "Action capability"; container policy-action-attribute { description "Policy Action attribute info"; container sub-action { when "../action-type = 'sub-action-attribute'" { description "../action_type = 'SubActionAttribute'"; } description "sub action"; list sub-action-attribute { description ""; container action-attribute { description ""; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attribute leaf sub-action { type uint32; description ""; } } // list sub-action-attribute } // container sub-action container action-attr { when "../action-type = 'action-attribute'" { description "../action_type = 'ActionAttribute'"; } description "action attr"; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attr leaf action-type { type Policy-action-attr-en; description "action type"; } } // container policy-action-attribute leaf policy-action { type Policy-action-e; description "Policy action "; } } // list action-capability } // list table-capabilty } // container l3ds container l3ipv4 { description "Tablecap for l3ipv4"; list table-capabilty { description "Table capability"; container stats-capabilty { description "Stats capabaility"; leaf class-aggregate-targetaggregate-stats { type boolean; description "Specifies if complete table stats is supported or not"; } leaf class-target-aggregate { type boolean; description "Specifies if class statistics aggregated for all targets is supporte dor not"; } leaf class-target-stats { type boolean; description "Specifies if class statistics for each target supported or not"; } leaf table-target-stats { type boolean; description "Specifies if per targets statistics retrieval is supporte dor not"; } leaf action-taget-stats { type boolean; description "Specifies per action per target statistics supoorted or not"; } } // container stats-capabilty container transient-capability { description "Transient capability"; leaf transient { type boolean; description "Table transient support"; } } // container transient-capability container persistent-capability { description "Persistent capability"; leaf persistent { type boolean; description "Table persistent support"; } } // container persistent-capability container class-capability { description "Class capabaility"; leaf classmap-class-support { type boolean; description "ClassmapClassSupport"; } leaf class-sequence-number-support { type boolean; description "ClassSequenceNumberSupport"; } leaf class-ordering-support { type boolean; description "ClassOrderingSupport"; } leaf class-idel-timeout-support { type boolean; description "ClassIdelTimeoutSupport"; } leaf inline-c-lass-support { type boolean; description "InlineCLassSupport"; } leaf maximum-inline-class-provision-rate { type uint32; description "MaximumInlineClassProvisionRate"; } leaf maximum-inline-class-per-table { type uint32; description "MaximumInlineClassPerTable"; } } // container class-capability leaf table-type { type Policy-map-table-type-e; description " Table type"; } leaf-list forwarding-type { type Plmgr-app-fwding-type-e; description "Forwarding type supported "; } list match-capability { description "Match capability "; leaf match-capability-type { type Match-cap-e; description "Match type"; } list match-attribute { description "Match attribute"; container val-attr { when "../match-attr-type = 'value'" { description "../match_attr_type = 'Value'"; } description "val attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container val-attr container rng-attr { when "../match-attr-type = 'range'" { description "../match_attr_type = 'Range'"; } description "rng attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container rng-attr container mask-attr { when "../match-attr-type = 'mask'" { description "../match_attr_type = 'Mask'"; } description "mask attr"; leaf subnet { type boolean; description "Subnet mask support for a match type"; } leaf arbitrary { type boolean; description "Arbitrary mask support for a match type"; } leaf wild-card { type boolean; description "Wild card mask support for a match type"; } } // container mask-attr leaf match-attr-type { type Match-attr-e; description "match attr type"; } } // list match-attribute } // list match-capability list action-capability { description "Action capability"; container policy-action-attribute { description "Policy Action attribute info"; container sub-action { when "../action-type = 'sub-action-attribute'" { description "../action_type = 'SubActionAttribute'"; } description "sub action"; list sub-action-attribute { description ""; container action-attribute { description ""; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attribute leaf sub-action { type uint32; description ""; } } // list sub-action-attribute } // container sub-action container action-attr { when "../action-type = 'action-attribute'" { description "../action_type = 'ActionAttribute'"; } description "action attr"; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attr leaf action-type { type Policy-action-attr-en; description "action type"; } } // container policy-action-attribute leaf policy-action { type Policy-action-e; description "Policy action "; } } // list action-capability } // list table-capabilty } // container l3ipv4 container qos-in { description "Tablecap for qos-in"; list table-capabilty { description "Table capability"; container stats-capabilty { description "Stats capabaility"; leaf class-aggregate-targetaggregate-stats { type boolean; description "Specifies if complete table stats is supported or not"; } leaf class-target-aggregate { type boolean; description "Specifies if class statistics aggregated for all targets is supporte dor not"; } leaf class-target-stats { type boolean; description "Specifies if class statistics for each target supported or not"; } leaf table-target-stats { type boolean; description "Specifies if per targets statistics retrieval is supporte dor not"; } leaf action-taget-stats { type boolean; description "Specifies per action per target statistics supoorted or not"; } } // container stats-capabilty container transient-capability { description "Transient capability"; leaf transient { type boolean; description "Table transient support"; } } // container transient-capability container persistent-capability { description "Persistent capability"; leaf persistent { type boolean; description "Table persistent support"; } } // container persistent-capability container class-capability { description "Class capabaility"; leaf classmap-class-support { type boolean; description "ClassmapClassSupport"; } leaf class-sequence-number-support { type boolean; description "ClassSequenceNumberSupport"; } leaf class-ordering-support { type boolean; description "ClassOrderingSupport"; } leaf class-idel-timeout-support { type boolean; description "ClassIdelTimeoutSupport"; } leaf inline-c-lass-support { type boolean; description "InlineCLassSupport"; } leaf maximum-inline-class-provision-rate { type uint32; description "MaximumInlineClassProvisionRate"; } leaf maximum-inline-class-per-table { type uint32; description "MaximumInlineClassPerTable"; } } // container class-capability leaf table-type { type Policy-map-table-type-e; description " Table type"; } leaf-list forwarding-type { type Plmgr-app-fwding-type-e; description "Forwarding type supported "; } list match-capability { description "Match capability "; leaf match-capability-type { type Match-cap-e; description "Match type"; } list match-attribute { description "Match attribute"; container val-attr { when "../match-attr-type = 'value'" { description "../match_attr_type = 'Value'"; } description "val attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container val-attr container rng-attr { when "../match-attr-type = 'range'" { description "../match_attr_type = 'Range'"; } description "rng attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container rng-attr container mask-attr { when "../match-attr-type = 'mask'" { description "../match_attr_type = 'Mask'"; } description "mask attr"; leaf subnet { type boolean; description "Subnet mask support for a match type"; } leaf arbitrary { type boolean; description "Arbitrary mask support for a match type"; } leaf wild-card { type boolean; description "Wild card mask support for a match type"; } } // container mask-attr leaf match-attr-type { type Match-attr-e; description "match attr type"; } } // list match-attribute } // list match-capability list action-capability { description "Action capability"; container policy-action-attribute { description "Policy Action attribute info"; container sub-action { when "../action-type = 'sub-action-attribute'" { description "../action_type = 'SubActionAttribute'"; } description "sub action"; list sub-action-attribute { description ""; container action-attribute { description ""; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attribute leaf sub-action { type uint32; description ""; } } // list sub-action-attribute } // container sub-action container action-attr { when "../action-type = 'action-attribute'" { description "../action_type = 'ActionAttribute'"; } description "action attr"; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attr leaf action-type { type Policy-action-attr-en; description "action type"; } } // container policy-action-attribute leaf policy-action { type Policy-action-e; description "Policy action "; } } // list action-capability } // list table-capabilty } // container qos-in container qos-out { description "Tablecap for qos-out"; list table-capabilty { description "Table capability"; container stats-capabilty { description "Stats capabaility"; leaf class-aggregate-targetaggregate-stats { type boolean; description "Specifies if complete table stats is supported or not"; } leaf class-target-aggregate { type boolean; description "Specifies if class statistics aggregated for all targets is supporte dor not"; } leaf class-target-stats { type boolean; description "Specifies if class statistics for each target supported or not"; } leaf table-target-stats { type boolean; description "Specifies if per targets statistics retrieval is supporte dor not"; } leaf action-taget-stats { type boolean; description "Specifies per action per target statistics supoorted or not"; } } // container stats-capabilty container transient-capability { description "Transient capability"; leaf transient { type boolean; description "Table transient support"; } } // container transient-capability container persistent-capability { description "Persistent capability"; leaf persistent { type boolean; description "Table persistent support"; } } // container persistent-capability container class-capability { description "Class capabaility"; leaf classmap-class-support { type boolean; description "ClassmapClassSupport"; } leaf class-sequence-number-support { type boolean; description "ClassSequenceNumberSupport"; } leaf class-ordering-support { type boolean; description "ClassOrderingSupport"; } leaf class-idel-timeout-support { type boolean; description "ClassIdelTimeoutSupport"; } leaf inline-c-lass-support { type boolean; description "InlineCLassSupport"; } leaf maximum-inline-class-provision-rate { type uint32; description "MaximumInlineClassProvisionRate"; } leaf maximum-inline-class-per-table { type uint32; description "MaximumInlineClassPerTable"; } } // container class-capability leaf table-type { type Policy-map-table-type-e; description " Table type"; } leaf-list forwarding-type { type Plmgr-app-fwding-type-e; description "Forwarding type supported "; } list match-capability { description "Match capability "; leaf match-capability-type { type Match-cap-e; description "Match type"; } list match-attribute { description "Match attribute"; container val-attr { when "../match-attr-type = 'value'" { description "../match_attr_type = 'Value'"; } description "val attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container val-attr container rng-attr { when "../match-attr-type = 'range'" { description "../match_attr_type = 'Range'"; } description "rng attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container rng-attr container mask-attr { when "../match-attr-type = 'mask'" { description "../match_attr_type = 'Mask'"; } description "mask attr"; leaf subnet { type boolean; description "Subnet mask support for a match type"; } leaf arbitrary { type boolean; description "Arbitrary mask support for a match type"; } leaf wild-card { type boolean; description "Wild card mask support for a match type"; } } // container mask-attr leaf match-attr-type { type Match-attr-e; description "match attr type"; } } // list match-attribute } // list match-capability list action-capability { description "Action capability"; container policy-action-attribute { description "Policy Action attribute info"; container sub-action { when "../action-type = 'sub-action-attribute'" { description "../action_type = 'SubActionAttribute'"; } description "sub action"; list sub-action-attribute { description ""; container action-attribute { description ""; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attribute leaf sub-action { type uint32; description ""; } } // list sub-action-attribute } // container sub-action container action-attr { when "../action-type = 'action-attribute'" { description "../action_type = 'ActionAttribute'"; } description "action attr"; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attr leaf action-type { type Policy-action-attr-en; description "action type"; } } // container policy-action-attribute leaf policy-action { type Policy-action-e; description "Policy action "; } } // list action-capability } // list table-capabilty } // container qos-out container traffic-in { description "Tablecap for traffic-in"; list table-capabilty { description "Table capability"; container stats-capabilty { description "Stats capabaility"; leaf class-aggregate-targetaggregate-stats { type boolean; description "Specifies if complete table stats is supported or not"; } leaf class-target-aggregate { type boolean; description "Specifies if class statistics aggregated for all targets is supporte dor not"; } leaf class-target-stats { type boolean; description "Specifies if class statistics for each target supported or not"; } leaf table-target-stats { type boolean; description "Specifies if per targets statistics retrieval is supporte dor not"; } leaf action-taget-stats { type boolean; description "Specifies per action per target statistics supoorted or not"; } } // container stats-capabilty container transient-capability { description "Transient capability"; leaf transient { type boolean; description "Table transient support"; } } // container transient-capability container persistent-capability { description "Persistent capability"; leaf persistent { type boolean; description "Table persistent support"; } } // container persistent-capability container class-capability { description "Class capabaility"; leaf classmap-class-support { type boolean; description "ClassmapClassSupport"; } leaf class-sequence-number-support { type boolean; description "ClassSequenceNumberSupport"; } leaf class-ordering-support { type boolean; description "ClassOrderingSupport"; } leaf class-idel-timeout-support { type boolean; description "ClassIdelTimeoutSupport"; } leaf inline-c-lass-support { type boolean; description "InlineCLassSupport"; } leaf maximum-inline-class-provision-rate { type uint32; description "MaximumInlineClassProvisionRate"; } leaf maximum-inline-class-per-table { type uint32; description "MaximumInlineClassPerTable"; } } // container class-capability leaf table-type { type Policy-map-table-type-e; description " Table type"; } leaf-list forwarding-type { type Plmgr-app-fwding-type-e; description "Forwarding type supported "; } list match-capability { description "Match capability "; leaf match-capability-type { type Match-cap-e; description "Match type"; } list match-attribute { description "Match attribute"; container val-attr { when "../match-attr-type = 'value'" { description "../match_attr_type = 'Value'"; } description "val attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container val-attr container rng-attr { when "../match-attr-type = 'range'" { description "../match_attr_type = 'Range'"; } description "rng attr"; leaf minimum { type uint32; description "Minimum value for a match type"; } leaf maximum { type uint32; description "Maximum value for a match type"; } } // container rng-attr container mask-attr { when "../match-attr-type = 'mask'" { description "../match_attr_type = 'Mask'"; } description "mask attr"; leaf subnet { type boolean; description "Subnet mask support for a match type"; } leaf arbitrary { type boolean; description "Arbitrary mask support for a match type"; } leaf wild-card { type boolean; description "Wild card mask support for a match type"; } } // container mask-attr leaf match-attr-type { type Match-attr-e; description "match attr type"; } } // list match-attribute } // list match-capability list action-capability { description "Action capability"; container policy-action-attribute { description "Policy Action attribute info"; container sub-action { when "../action-type = 'sub-action-attribute'" { description "../action_type = 'SubActionAttribute'"; } description "sub action"; list sub-action-attribute { description ""; container action-attribute { description ""; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attribute leaf sub-action { type uint32; description ""; } } // list sub-action-attribute } // container sub-action container action-attr { when "../action-type = 'action-attribute'" { description "../action_type = 'ActionAttribute'"; } description "action attr"; leaf policy-action-exec-type { type Policy-action-exec-type-e; description "policy action exec type"; } leaf num-instances { type uint32; description "num instances"; } } // container action-attr leaf action-type { type Policy-action-attr-en; description "action type"; } } // container policy-action-attribute leaf policy-action { type Policy-action-e; description "Policy action "; } } // list action-capability } // list table-capabilty } // container traffic-in } // container policy-table-cap-types } // container policy-map-table-cap container policy-map-applied-types { description "List of Applied policymap details"; list policy-map-applied-type { key "type"; description "Policymgr application type"; container if-names { description "Interface table"; list if-name { key "interface-name"; description "WORD interface name"; container input { description "Input direction table"; container detail { description "WORD interface name"; leaf parent-pmap-name { type Policy-map-name; description "parent pmap name"; } leaf pmap-type { type Policy-map-type-en; description "pmap type"; } leaf-list subscriber-grp { type Object-name; description "subscriber grp"; } list pmaps { description "pmaps"; list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // list pmaps list pmap-var-list { description "pmap var list"; list var-list { description "var list"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // list var-list } // list pmap-var-list } // container detail } // container input container output { description "Output direction table"; container detail { description "WORD interface name"; leaf parent-pmap-name { type Policy-map-name; description "parent pmap name"; } leaf pmap-type { type Policy-map-type-en; description "pmap type"; } leaf-list subscriber-grp { type Object-name; description "subscriber grp"; } list pmaps { description "pmaps"; list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // list pmaps list pmap-var-list { description "pmap var list"; list var-list { description "var list"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // list var-list } // list pmap-var-list } // container detail } // container output leaf interface-name { type xr:Interface-name; description "Name of the interface"; } } // list if-name } // container if-names leaf type { type Policymgr-policy-map; description "The application type"; } } // list policy-map-applied-type } // container policy-map-applied-types container transient-policy-map-targets-types { description "Transient policy-map target table"; list transient-policy-map-targets-type { key "type"; description "Transient Policymgr application type"; container transient-target-summary-per-policy-maps { description "Transient Policy-map table per Policy-map"; list transient-target-summary-per-policy-map { key "policy-map-name"; description "Policy-map targets summary"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } leaf total-policy-maps-input-direction { type uint32; description "Total policymapsin the input direction"; } leaf total-policy-maps-output-direction { type uint32; description "Total policymapsin the output direction"; } leaf total-child-policy-maps-input-direction { type uint32; description "Totalpolicymaps applied as child policy in the input direction"; } leaf total-child-policy-maps-output-direction { type uint32; description "Totalpolicymaps applied as child policy in the output direction"; } leaf total-interfaces-input-direction { type uint32; description "Totalinterfaces with service-policy in the input direction"; } leaf total-interfaces-output-direction { type uint32; description "Totalinterfaces with service-policy in the output direction"; } } // list transient-target-summary-per-policy-map } // container transient-target-summary-per-policy-maps container transient-policy-map-target-summary { description "Transient Policy-map table"; leaf total-policy-maps-input-direction { type uint32; description "Total policymapsin the input direction"; } leaf total-policy-maps-output-direction { type uint32; description "Total policymapsin the output direction"; } leaf total-child-policy-maps-input-direction { type uint32; description "Totalpolicymaps applied as child policy in the input direction"; } leaf total-child-policy-maps-output-direction { type uint32; description "Totalpolicymaps applied as child policy in the output direction"; } leaf total-interfaces-input-direction { type uint32; description "Totalinterfaces with service-policy in the input direction"; } leaf total-interfaces-output-direction { type uint32; description "Totalinterfaces with service-policy in the output direction"; } } // container transient-policy-map-target-summary container transient-policy-map-targets { description "Transient Policy-map table"; list transient-policy-map-target { key "policy-map-name"; description "Transient Policy-map targets"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } leaf-list targets { type string; description "targets"; } leaf-list parent-targets { type string; description "parent targets"; } } // list transient-policy-map-target } // container transient-policy-map-targets leaf type { type Policymgr-policy-map; description "The application type"; } } // list transient-policy-map-targets-type } // container transient-policy-map-targets-types container transient-policy-map-applied-types { description "Transient policy-map applied type"; list transient-policy-map-applied-type { key "type"; description "Transient policy-map applied type"; container transient-interface-names { description "Interface table"; list transient-interface-name { key "interface-name"; description "WORD interface name"; container transient-output { description "Output direction table"; container detail { description "Policy map"; leaf parent-pmap-name { type Policy-map-name; description "parent pmap name"; } leaf pmap-type { type Policy-map-type-en; description "pmap type"; } leaf-list subscriber-grp { type Object-name; description "subscriber grp"; } list pmaps { description "pmaps"; list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // list pmaps list pmap-var-list { description "pmap var list"; list var-list { description "var list"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // list var-list } // list pmap-var-list } // container detail } // container transient-output container transient-input { description "Input direction table"; container detail { description "Policy map"; leaf parent-pmap-name { type Policy-map-name; description "parent pmap name"; } leaf pmap-type { type Policy-map-type-en; description "pmap type"; } leaf-list subscriber-grp { type Object-name; description "subscriber grp"; } list pmaps { description "pmaps"; list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // list pmaps list pmap-var-list { description "pmap var list"; list var-list { description "var list"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // list var-list } // list pmap-var-list } // container detail } // container transient-input leaf interface-name { type xr:Interface-name; description "Name of the interface"; } } // list transient-interface-name } // container transient-interface-names leaf type { type Policymgr-policy-map; description "The application type"; } } // list transient-policy-map-applied-type } // container transient-policy-map-applied-types container target-policy-map-types { description "Targets of a policymap"; list target-policy-map-type { key "type"; description "Policymgr application type"; container policy-map-targets { description "Policy-map table"; list policy-map-target { key "policy-map-name"; description "Policy-map targets"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } leaf-list targets { type string; description "targets"; } leaf-list parent-targets { type string; description "parent targets"; } } // list policy-map-target } // container policy-map-targets container policy-map-target-summary { description "Policy-map table"; leaf total-policy-maps-input-direction { type uint32; description "Total policymapsin the input direction"; } leaf total-policy-maps-output-direction { type uint32; description "Total policymapsin the output direction"; } leaf total-child-policy-maps-input-direction { type uint32; description "Totalpolicymaps applied as child policy in the input direction"; } leaf total-child-policy-maps-output-direction { type uint32; description "Totalpolicymaps applied as child policy in the output direction"; } leaf total-interfaces-input-direction { type uint32; description "Totalinterfaces with service-policy in the input direction"; } leaf total-interfaces-output-direction { type uint32; description "Totalinterfaces with service-policy in the output direction"; } } // container policy-map-target-summary container target-summary-per-policy-maps { description "Policy-map table per Policy-map"; list target-summary-per-policy-map { key "policy-map-name"; description "Policy-map targets summary"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } leaf total-policy-maps-input-direction { type uint32; description "Total policymapsin the input direction"; } leaf total-policy-maps-output-direction { type uint32; description "Total policymapsin the output direction"; } leaf total-child-policy-maps-input-direction { type uint32; description "Totalpolicymaps applied as child policy in the input direction"; } leaf total-child-policy-maps-output-direction { type uint32; description "Totalpolicymaps applied as child policy in the output direction"; } leaf total-interfaces-input-direction { type uint32; description "Totalinterfaces with service-policy in the input direction"; } leaf total-interfaces-output-direction { type uint32; description "Totalinterfaces with service-policy in the output direction"; } } // list target-summary-per-policy-map } // container target-summary-per-policy-maps leaf type { type Policymgr-policy-map; description "The application type"; } } // list target-policy-map-type } // container target-policy-map-types container class-map { description "List of classmap details"; container class-map-types { description "Application type of a classmap"; list class-map-type { key "type"; description "Policymgr application type"; container class-map-details { description "Class-map detail table"; list class-map-detail { key "class-map-name"; description "Class-map detail information"; leaf class-map-name { type string { length "1..63"; } description "Name of class-map"; } leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf total-objects { type uint32; description "Total number of objects configured for a specific object type"; } leaf transient { type boolean; description "Transient object"; } list reference { description "Each Policymap details"; leaf total-internal-reference-objects { type uint32; description "Total number of internal reference objects"; } leaf total-class-maps { type uint32; description "Total number of Classmaps in a Policymap"; } leaf total-flows { type uint32; description "Total flows in a Policymap"; } } // list reference list objects { description "Each object details"; leaf object-name { type string { length "0..64"; } description "Name of object (Policymap/Classmap)"; } } // list objects list class-map-reference { description "Each Classmapdetails"; leaf total-reference-objects { type uint32; description "Total number of Policymaps referencing a Classmap"; } list policy-map-reference { description "List of Policymaps referencing a Classmap"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf policy-map-name { type string { length "0..64"; } description "Name of Policymap referencing a Classmap"; } } // list policy-map-reference } // list class-map-reference } // list class-map-detail } // container class-map-details container class-maps { description "Class-map definition table"; list class-map { key "class-map-name"; description "Class-map configuration"; leaf class-map-name { type string { length "1..63"; } description "Name of class-map"; } list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // list class-map } // container class-maps container class-map-briefs { description "Class-map brief table"; list class-map-brief { key "class-map-name"; description "Class-map brief information"; leaf class-map-name { type string { length "1..63"; } description "Name of class-map"; } leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf total-objects { type uint32; description "Total number of objects configured for a specific object type"; } leaf transient { type boolean; description "Transient object"; } list reference { description "Each Policymap details"; leaf total-internal-reference-objects { type uint32; description "Total number of internal reference objects"; } leaf total-class-maps { type uint32; description "Total number of Classmaps in a Policymap"; } leaf total-flows { type uint32; description "Total flows in a Policymap"; } } // list reference list objects { description "Each object details"; leaf object-name { type string { length "0..64"; } description "Name of object (Policymap/Classmap)"; } } // list objects list class-map-reference { description "Each Classmapdetails"; leaf total-reference-objects { type uint32; description "Total number of Policymaps referencing a Classmap"; } list policy-map-reference { description "List of Policymaps referencing a Classmap"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf policy-map-name { type string { length "0..64"; } description "Name of Policymap referencing a Classmap"; } } // list policy-map-reference } // list class-map-reference } // list class-map-brief } // container class-map-briefs leaf type { type Policymgr-class-map; description "The application type"; } } // list class-map-type } // container class-map-types } // container class-map container policy-map { description "List of policymap details"; container transient-policy-map-type-xr { description "Application type of transient policy-map"; list transient-policy-map-type { key "type"; description "Transient policy-map type"; container transient-policy-map-names { description "Transient policy-map definition table"; list transient-policy-map-name { key "policy-map-name"; description "Transient policy-map definition table"; container class-handles { description "Transient policy-map class handle table"; list class-handle { key "inline-classhandle"; description "Transient policy-map class handle"; leaf inline-classhandle { type uint32 { range "0..4294967295"; } description "inline class handle"; } list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // list class-handle } // container class-handles container class-seq-nums { description "Transient policy-map sequence number table"; list class-seq-num { key "sequence-num"; description "Transient policy-map sequence number"; leaf sequence-num { type uint32 { range "1..4294967295"; } description "sequence number"; } list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // list class-seq-num } // container class-seq-nums container definition { description "Transient Policy-map type name"; list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // container definition leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } } // list transient-policy-map-name } // container transient-policy-map-names leaf type { type Policymgr-policy-map; description "The application type"; } } // list transient-policy-map-type } // container transient-policy-map-type-xr container policy-map-unused-types { description "Policy-map unused table"; list policy-map-unused-type { key "type"; description "Policy-map unused"; container unuseds { description "Policy-map unused"; list unused { key "policy-map-name"; description "Policy-map unused information"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf total-objects { type uint32; description "Total number of objects configured for a specific object type"; } leaf transient { type boolean; description "Transient object"; } list reference { description "Each Policymap details"; leaf total-internal-reference-objects { type uint32; description "Total number of internal reference objects"; } leaf total-class-maps { type uint32; description "Total number of Classmaps in a Policymap"; } leaf total-flows { type uint32; description "Total flows in a Policymap"; } } // list reference list objects { description "Each object details"; leaf object-name { type string { length "0..64"; } description "Name of object (Policymap/Classmap)"; } } // list objects list class-map-reference { description "Each Classmapdetails"; leaf total-reference-objects { type uint32; description "Total number of Policymaps referencing a Classmap"; } list policy-map-reference { description "List of Policymaps referencing a Classmap"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf policy-map-name { type string { length "0..64"; } description "Name of Policymap referencing a Classmap"; } } // list policy-map-reference } // list class-map-reference } // list unused } // container unuseds leaf type { type Policymgr-policy-map; description "The application type"; } } // list policy-map-unused-type } // container policy-map-unused-types container policy-map-types { description "Application type of a policymap"; list policy-map-type { key "type"; description "Policymgr application type"; container policy-maps { description "Policy-map definition table"; list policy-map { key "policy-map-name"; description "Policy-map configuration"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } list policy-map-bg { description "policy map bg"; container pmap-var-list { description "contains variable argument data"; list pmap-var-list-arr { description "pmap var list arr"; container val { description "val"; leaf type { type Plmgr-var-type-en; description "type"; } leaf class-name { when "../type = 'plmgr-var-type-class-name'" { description "../type = 'PLMGR_VAR_TYPE_CLASS_NAME'"; } type Class-map-name; description "class name"; } leaf uint8_val { when "../type = 'plmgr-var-type-uint8'" { description "../type = 'PLMGR_VAR_TYPE_UINT8'"; } type uint8; description "uint8 val"; } leaf uint16_val { when "../type = 'plmgr-var-type-uint16'" { description "../type = 'PLMGR_VAR_TYPE_UINT16'"; } type uint16; description "uint16 val"; } leaf uint32_val { when "../type = 'plmgr-var-type-uint32'" { description "../type = 'PLMGR_VAR_TYPE_UINT32'"; } type uint32; description "uint32 val"; } leaf param-uint32-val { when "../type = 'plmgr-var-type-param-uint32'" { description "../type = 'PLMGR_VAR_TYPE_PARAM_UINT32'"; } type uint32; description "param uint32 val"; } leaf dscp-val { when "../type = 'plmgr-var-type-dscp'" { description "../type = 'PLMGR_VAR_TYPE_DSCP'"; } type uint8; description "dscp val"; } leaf prec-val { when "../type = 'plmgr-var-type-prec'" { description "../type = 'PLMGR_VAR_TYPE_PREC'"; } type uint8; description "prec val"; } } // container val leaf name { type string { length "0..32"; } description "name"; } leaf id { type uint32; description "id"; } } // list pmap-var-list-arr } // container pmap-var-list container event-infop { description "event infop"; list policy-event-info-bg { description "policy event info bg"; container class-infop { description "class infop"; list policy-class-info-bg { description "policy class info bg"; container clmp-p { description "clmp p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container clmp-p container act-infop { description "act infop"; list policy-action-info-st { description "policy action info st"; container actp { description "actp"; container mark { when "../type = 'policy-action-mark'" { description "../type = 'POLICY_ACTION_MARK'"; } description "mark"; list action-mark-info { description "action mark info"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // list action-mark-info } // container mark container mark2 { when "../type = 'policy-action-mark2'" { description "../type = 'POLICY_ACTION_MARK2'"; } description "mark2"; list action-mark2-info { description "action mark2 info"; leaf value { type uint32; description "value"; } leaf value-overflow { type uint16; description "value overflow"; } leaf type { type Mark-type-e; description "type"; } leaf mark-flags { type uint8; description "mark flags"; } } // list action-mark2-info } // container mark2 container wred { when "../type = 'policy-action-wred'" { description "../type = 'POLICY_ACTION_WRED'"; } description "wred"; list action-wred-info { description "action wred info"; container match-ranges { description "match ranges"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-ranges container min-threshold { description "min threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container min-threshold container max-threshold { description "max threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container max-threshold leaf type { type Wred-type-en; description "cos/prec/dscp/ based WRED"; } leaf wred-flags { type uint32; description "wred flags"; } leaf probability { type uint32; description "probability"; } } // list action-wred-info } // container wred container encap { when "../type = 'policy-action-encap-seq'" { description "../type = 'POLICY_ACTION_ENCAP_SEQ'"; } description "encap"; leaf seq { type uint8; description "seq"; } } // container encap container prio { when "../type = 'policy-action-priority'" { description "../type = 'POLICY_ACTION_PRIORITY'"; } description "prio"; leaf prio-lvl { type uint32; description "prio lvl"; } } // container prio container bwrem { when "../type = 'policy-action-bw-remaining'" { description "../type = 'POLICY_ACTION_BW_REMAINING'"; } description "bwrem"; container bwrem { description "bwrem"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bwrem } // container bwrem container min-bw { when "../type = 'policy-action-min-bw'" { description "../type = 'POLICY_ACTION_MIN_BW'"; } description "min bw"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw } // container min-bw container authen-aaa { when "../type = 'policy-action-authenticate-aaa'" { description "../type = 'POLICY_ACTION_AUTHENTICATE_AAA'"; } description "authen aaa"; leaf aaa-list-name { type string; description "aaa list name"; } leaf authen-password { type string; description "authen password"; } } // container authen-aaa container collect-id { when "../type = 'policy-action-collect-id'" { description "../type = 'POLICY_ACTION_COLLECT_ID'"; } description "collect id"; leaf id { type Identifier-en; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container collect-id container decode-id { when "../type = 'policy-action-decode-identifier'" { description "../type = 'POLICY_ACTION_DECODE_IDENTIFIER'"; } description "decode id"; leaf id { type Decode-identifier-en; description "id"; } leaf format-name { type string; description "format name"; } } // container decode-id container set-timer { when "../type = 'policy-action-set-timer'" { description "../type = 'POLICY_ACTION_SET_TIMER'"; } description "set timer"; leaf timer-name { type string; description "timer name"; } leaf duration { type uint32; description "duration"; } leaf absolute-time { type string; description "absolute time"; } } // container set-timer container stop-timer { when "../type = 'policy-action-stop-timer'" { description "../type = 'POLICY_ACTION_STOP_TIMER'"; } description "stop timer"; leaf timer-name { type string; description "timer name"; } } // container stop-timer container acct-aaa-list { when "../type = 'policy-action-accounting-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_AAA_LIST'"; } description "acct aaa list"; leaf aaa-list-name { type string; description "aaa list name"; } leaf secs { type uint32; description "secs"; } } // container acct-aaa-list container query-ancp { when "../type = 'policy-action-query-ancp'" { description "../type = 'POLICY_ACTION_QUERY_ANCP'"; } description "query ancp"; leaf enable { type boolean; description "enable"; } } // container query-ancp container prepaid-cfg { when "../type = 'policy-action-prepaid-config'" { description "../type = 'POLICY_ACTION_PREPAID_CONFIG'"; } description "prepaid cfg"; leaf prepaid-config-profile-name { type string; description "prepaid config profile name"; } } // container prepaid-cfg container timeout-idle { when "../type = 'policy-action-timeout-idle'" { description "../type = 'POLICY_ACTION_TIMEOUT_IDLE'"; } description "timeout idle"; leaf secs { type uint32; description "secs"; } } // container timeout-idle container proxy-aaa { when "../type = 'policy-action-proxy-aaa'" { description "../type = 'POLICY_ACTION_PROXY_AAA'"; } description "proxy aaa"; leaf aaa-list-name { type string; description "aaa list name"; } } // container proxy-aaa container act-template { when "../type = 'policy-action-template-activate'" { description "../type = 'POLICY_ACTION_TEMPLATE_ACTIVATE'"; } description "act template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container act-template container deact-template { when "../type = 'policy-action-template-deactivate'" { description "../type = 'POLICY_ACTION_TEMPLATE_DEACTIVATE'"; } description "deact template"; leaf template-name { type string; description "template name"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf flags { type uint32; description "flags"; } } // container deact-template container qlimit { when "../type = 'policy-action-q-limit'" { description "../type = 'POLICY_ACTION_Q_LIMIT'"; } description "qlimit"; list action-qlimit-info-array { description "action qlimit info array"; container qlim { description "qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container qlim container atmclp-qlim { description "atmclp qlim"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container atmclp-qlim container match-values { description "match values"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container match-values leaf type { type Qlimit-type-en; description "type"; } leaf qlimit-flags { type uint32; description "qlimit flags"; } } // list action-qlimit-info-array } // container qlimit container accounting-event-aaa { when "../type = 'policy-action-accounting-event-aaa-list'" { description "../type = 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST'"; } description "accounting event aaa"; leaf action { type Acct-en; description "action"; } leaf aaa-list-name { type string; description "aaa list name"; } } // container accounting-event-aaa container authorize-id { when "../type = 'policy-action-authorize-id'" { description "../type = 'POLICY_ACTION_AUTHORIZE_ID'"; } description "authorize id"; leaf id { type uint8; description "id"; } leaf aaa-list-name { type string; description "aaa list name"; } leaf format-name { type string; description "format name"; } leaf password { type string; description "password"; } } // container authorize-id container afm-react { when "../type = 'policy-action-afmon-react'" { description "../type = 'POLICY_ACTION_AFMON_REACT'"; } description "afm react"; list action-afmon-react-info { description "action afmon react info"; leaf oper-id { type uint32; description "React Operation ID"; } leaf description { type string; description "Describing the oper"; } leaf trig-num-intvls { type uint32; description "Averaged over N intvls"; } leaf clone-ifh { type uint32; description "Clone interface handle"; } leaf notif-actns { type uint8; description "Bitmap of actions on alert"; } leaf criterion { type uint8; description "React Criterion"; } leaf trig-type { type uint8; description "Immediate or averaged thresh trigger"; } leaf trig-relop { type uint8; description "Trigger LT|LE|GT|GE|Range"; } leaf trig-level-1 { type string; description "Trigger threshold 1/lower"; } leaf trig-level-2 { type string; description "Trigger upper threshold for range"; } leaf alm-grp-thresh { type uint16; units "percentage"; description "Num/percent in grp"; } leaf alm-type { type uint8; description "Discrete | grouped alarm"; } leaf alm-severity { type uint8; description "Major|Minor|... alarm"; } } // list action-afmon-react-info } // container afm-react container httpr { when "../type = 'policy-action-httpr'" { description "../type = 'POLICY_ACTION_HTTPR'"; } description "httpr"; leaf redirect-url { type string; description "redirect url"; } } // container httpr container punt { when "../type = 'policy-action-punt'" { description "../type = 'POLICY_ACTION_PUNT'"; } description "punt"; leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node name"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container punt container copy { when "../type = 'policy-action-copy'" { description "../type = 'POLICY_ACTION_COPY'"; } description "copy"; leaf num-byte { type uint32; units "byte"; description "number of bytes"; } leaf sn-type { type Dpss-snid-type-en; description "service node ID type"; } leaf sn-index { type uint32; description "service node index"; } leaf sn-name { type string; description "service node url"; } leaf app-id { type uint32; description "application ID"; } leaf local-id { type uint32; description "local ID"; } leaf vsnode-type { type Vsvc-service-type-t; description "vservice node type"; } } // container copy container sfrag { when "../type = 'policy-action-sfrag'" { description "../type = 'POLICY_ACTION_SFRAG'"; } description "sfrag"; leaf name { type string; description "Service Fragment Name"; } } // container sfrag container redirect { when "../type = 'policy-action-redirect'" { description "../type = 'POLICY_ACTION_REDIRECT'"; } description "redirect"; leaf value { type uint32; description "value"; } leaf type { type Redirect-type-e; description "type"; } } // container redirect container out-intf { when "../type = 'policy-action-output-interface'" { description "../type = 'POLICY_ACTION_OUTPUT_INTERFACE'"; } description "out intf"; leaf out-ifname { type string; description "output interface name"; } } // container out-intf container serv-func { when "../type = 'policy-action-service-function-path'" { description "../type = 'POLICY_ACTION_SERVICE_FUNCTION_PATH'"; } description "serv func"; leaf path-id { type uint32; description "service path id"; } leaf service-index { type uint8; description "service path index"; } leaf meta-name { type string; description "metadata name"; } leaf vs-index { type uint32; description "vservice index"; } } // container serv-func container http-enrich { when "../type = 'policy-action-http-enrich'" { description "../type = 'POLICY_ACTION_HTTP_ENRICH'"; } description "http enrich"; } // container http-enrich container police { when "../type = 'policy-action-police'" { description "../type = 'POLICY_ACTION_POLICE'"; } description "police"; list action-police-info-st { description "action police info array"; container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate container burst { description "burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container burst container peak-rate { description "peak rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-rate container peak-burst { description "peak burst"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container peak-burst container cdvt { description "cdvt"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container cdvt container conform-actns { description "conform actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container conform-actns container exceed-actns { description "exceed actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container exceed-actns container violate-actns { description "violate actns"; list police-action-array { description "police action array"; container mark { when "../type = 'police-action-mark'" { description "../type = 'POLICE_ACTION_MARK'"; } description "mark"; leaf type { type Mark-type-en; description "type"; } leaf mark-flags { type uint32; description "mark flags"; } leaf value { type uint16; description "value"; } } // container mark leaf type { type Police-action-type-en; description "type"; } } // list police-action-array } // container violate-actns container confclass-p { description "confclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container confclass-p container excdclass-p { description "excdclass p"; list class-map-bg { description "class map bg"; container match-infop { description "Pointer to the first Match info"; list class-match-info-st { description "class match info st"; container match-data { description "Match criteria"; container ipv4-dscp { when "../type = 'match-type-ipv4-dscp'" { description "../type = 'MATCH_TYPE_IPV4_DSCP'"; } description "IPv4 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv4-dscp container ipv6-dscp { when "../type = 'match-type-ipv6-dscp'" { description "../type = 'MATCH_TYPE_IPV6_DSCP'"; } description "IPv6 DSCP"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container ipv6-dscp container dscp { when "../type = 'match-type-dscp'" { description "../type = 'MATCH_TYPE_DSCP'"; } description "Match DSCP range array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container dscp container ipv4-prec { when "../type = 'match-type-ipv4-prec'" { description "../type = 'MATCH_TYPE_IPV4_PREC'"; } description "IPv4 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv4-prec container ipv6-prec { when "../type = 'match-type-ipv6-prec'" { description "../type = 'MATCH_TYPE_IPV6_PREC'"; } description "IPv6 Precedence"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container ipv6-prec container prec { when "../type = 'match-type-prec'" { description "../type = 'MATCH_TYPE_PREC'"; } description "Match Precedence array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container prec container discard-class { when "../type = 'match-type-disc-cls'" { description "../type = 'MATCH_TYPE_DISC_CLS'"; } description "Match Discard Class array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container discard-class container qos-group { when "../type = 'match-type-qos-grp'" { description "../type = 'MATCH_TYPE_QOS_GRP'"; } description "Match QoS group array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container qos-group container traffic-class { when "../type = 'match-type-traffic-class'" { description "../type = 'MATCH_TYPE_TRAFFIC_CLASS'"; } description "Match Traffic class array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container traffic-class container proto { when "../type = 'match-type-proto'" { description "../type = 'MATCH_TYPE_PROTO'"; } description "Match Protocol array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container proto container ipv4-packet-len { when "../type = 'match-type-ipv4-packet-length'" { description "../type = 'MATCH_TYPE_IPV4_PACKET_LENGTH'"; } description "IPv4 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv4-packet-len container ipv6-packet-len { when "../type = 'match-type-ipv6-packet-length'" { description "../type = 'MATCH_TYPE_IPV6_PACKET_LENGTH'"; } description "IPv6 packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ipv6-packet-len container packet-len { when "../type = 'match-type-packet-length'" { description "../type = 'MATCH_TYPE_PACKET_LENGTH'"; } description "Match packet length array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container packet-len container flow-tag { when "../type = 'match-type-flow-tag'" { description "../type = 'MATCH_TYPE_FLOW_TAG'"; } description "Match flow-tag array"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container flow-tag container tcp-flag { when "../type = 'match-type-tcp-flag'" { description "../type = 'MATCH_TYPE_TCP_FLAG'"; } description "Match tcp flag value"; leaf value { type uint16; description "Value of TCP flag"; } leaf match-any { type boolean; description "Match any TCP flag bit"; } } // container tcp-flag container icmpv4-type { when "../type = 'match-type-icmpv4-type'" { description "../type = 'MATCH_TYPE_ICMPV4_TYPE'"; } description "Match ipv4 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-type container icmpv4-code { when "../type = 'match-type-icmpv4-code'" { description "../type = 'MATCH_TYPE_ICMPV4_CODE'"; } description "Match ipv4 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv4-code container icmpv6-type { when "../type = 'match-type-icmpv6-type'" { description "../type = 'MATCH_TYPE_ICMPV6_TYPE'"; } description "Match ipv6 icmp type"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-type container icmpv6-code { when "../type = 'match-type-icmpv6-code'" { description "../type = 'MATCH_TYPE_ICMPV6_CODE'"; } description "Match ipv6 icmp code"; list uint8_rng_array { description "uint8 rng array"; leaf min { type uint8; description "Lower limit of the range"; } leaf max { type uint8; description "Upper limit of the range"; } } // list uint8_rng_array } // container icmpv6-code container mpls-exp { when "../type = 'match-type-mpls-exp-top'" { description "../type = 'MATCH_TYPE_MPLS_EXP_TOP'"; } description "Match MPLS experimental topmost array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp container mpls-exp-imp { when "../type = 'match-type-mpls-exp-imp'" { description "../type = 'MATCH_TYPE_MPLS_EXP_IMP'"; } description "Match MPLS experimental imposition array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container mpls-exp-imp container mpls-disp-ipv4-acl { when "../type = 'match-type-mpls-disp-ipv4-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV4_ACL'"; } description "MPLS Disposition IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv4-acl container mpls-disp-ipv6-acl { when "../type = 'match-type-mpls-disp-ipv6-acl'" { description "../type = 'MATCH_TYPE_MPLS_DISP_IPV6_ACL'"; } description "MPLS Disposition IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-ipv6-acl container mpls-disp-cl-map { when "../type = 'match-type-mpls-disp-cl-map'" { description "../type = 'MATCH_TYPE_MPLS_DISP_CMAP'"; } description "MPLS Disposition Class Map"; leaf-list string-array { type string; description "string array"; } } // container mpls-disp-cl-map container mpls-top-label { when "../type = 'match-type-mpls-topmost-label'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_LABEL'"; } description "MPLS Topmost LABEL"; list uint32_rng_array { description "uint32 rng array"; leaf min { type uint32; description "Lower limit of the range"; } leaf max { type uint32; description "Upper limit of the range"; } } // list uint32_rng_array } // container mpls-top-label container cos { when "../type = 'match-type-cos'" { description "../type = 'MATCH_TYPE_COS'"; } description "Match CoS array"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos container cos-inr { when "../type = 'match-type-cos-inner'" { description "../type = 'MATCH_TYPE_COS_INNER'"; } description "Match inner header CoS"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container cos-inr container dei { when "../type = 'match-type-dei'" { description "../type = 'MATCH_TYPE_DEI'"; } description "Match DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei container dei-inr { when "../type = 'match-type-dei-inner'" { description "../type = 'MATCH_TYPE_DEI_INNER'"; } description "Match inner DEI Bit"; leaf bit-value { type uint32; description "Value of the DEI bit"; } } // container dei-inr container vlan { when "../type = 'match-type-vlan'" { description "../type = 'MATCH_TYPE_VLAN'"; } description "Match VLAN array"; list vlan-id-array { description "vlan id array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } leaf mask { type uint16; description "VLAN mask"; } } // list vlan-id-array } // container vlan container vlan-inr { when "../type = 'match-type-vlan-inner'" { description "../type = 'MATCH_TYPE_VLAN_INNER'"; } description "Match inner header VLAN range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container vlan-inr container fr-dlci { when "../type = 'match-type-fr-dlci'" { description "../type = 'MATCH_TYPE_FR_DLCI'"; } description "Match FR DLCI range array"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container fr-dlci container src-mac { when "../type = 'match-type-src-mac'" { description "../type = 'MATCH_TYPE_SRC_MAC'"; } description "Match Source MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container src-mac container dst-mac { when "../type = 'match-type-dst-mac'" { description "../type = 'MATCH_TYPE_DST_MAC'"; } description "Match Destination MAC address"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // container dst-mac container atm-clp { when "../type = 'match-type-atm-clp'" { description "../type = 'MATCH_TYPE_ATM_CLP'"; } description "Match ATM CLP level"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container atm-clp container fr-de { when "../type = 'match-type-fr-de'" { description "../type = 'MATCH_TYPE_FR_DE'"; } description "Match FR DE value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container fr-de container ipv4-acl { when "../type = 'match-type-ipv4-acl'" { description "../type = 'MATCH_TYPE_IPV4_ACL'"; } description "IPv4 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv4-acl container ipv6-acl { when "../type = 'match-type-ipv6-acl'" { description "../type = 'MATCH_TYPE_IPV6_ACL'"; } description "IPv6 Access-list"; leaf-list string-array { type string; description "string array"; } } // container ipv6-acl container ether-service-acl { when "../type = 'match-type-ethernet-service-s-acl'" { description "../type = 'MATCH_TYPE_ETHERNET_SERVICES_ACL'"; } description "Ethernet-Services Access-list"; leaf-list string-array { type string; description "string array"; } } // container ether-service-acl container avail-id { when "../type = 'match-type-avail-id'" { description "../type = 'MATCH_TYPE_AVAIL_ID'"; } description "Available Identifiers"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container avail-id container media-type { when "../type = 'match-type-media'" { description "../type = 'MATCH_TYPE_MEDIA'"; } description "Media Type"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container media-type container subs-protocol { when "../type = 'match-type-subs-protocol'" { description "../type = 'MATCH_TYPE_SUBS_PROTOCOL'"; } description "Protocol"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container subs-protocol container dnis { when "../type = 'match-type-dnis'" { description "../type = 'MATCH_TYPE_DNIS'"; } description "DNIS"; leaf-list string-array { type string; description "string array"; } } // container dnis container dnis-regex { when "../type = 'match-type-dnis-regexp'" { description "../type = 'MATCH_TYPE_DNIS_REGEXP'"; } description "DNIS Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container dnis-regex container domain { when "../type = 'match-type-domain'" { description "../type = 'MATCH_TYPE_DOMAIN'"; } description "Domain Name"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain container domain-regex { when "../type = 'match-type-domain-regexp'" { description "../type = 'MATCH_TYPE_DOMAIN_REGEXP'"; } description "Domain Regular Expression"; list domain-array { description "domain array"; leaf domain-name { type string; description "domain name"; } leaf format-name { type string; description "format name"; } } // list domain-array } // container domain-regex container nas-port { when "../type = 'match-type-nas-port'" { description "../type = 'MATCH_TYPE_NAS_PORT'"; } description "NAS Port"; list nas-port-array { description "nas port array"; leaf sub-id { type Match-nas-port-sub-id-en; description "sub id"; } leaf operator { type Match-logical-operator-en; description "operator"; } leaf value { type uint32; description "value"; } } // list nas-port-array } // container nas-port container service-name { when "../type = 'match-type-service-name'" { description "../type = 'MATCH_TYPE_SERVICE_NAME'"; } description "Service Name"; leaf-list string-array { type string; description "string array"; } } // container service-name container service-name-regex { when "../type = 'match-type-service-name-regexp'" { description "../type = 'MATCH_TYPE_SERVICE_NAME_REGEXP'"; } description "Service Name Regular Exp"; leaf-list string-array { type string; description "string array"; } } // container service-name-regex container src-addr-ipv4 { when "../type = 'match-type-src-addr-ipv4'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV4'"; } description "Source Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container src-addr-ipv4 container dst-addr-ipv4 { when "../type = 'match-type-dst-addr-ipv4'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV4'"; } description "Destination Address IPV4"; list ipv4-addr-array { description "ipv4 addr array"; leaf prefix { type inet:ipv4-address; description "prefix"; } leaf mask { type inet:ipv4-address; description "mask"; } } // list ipv4-addr-array } // container dst-addr-ipv4 container src-addr-ipv6 { when "../type = 'match-type-src-addr-ipv6'" { description "../type = 'MATCH_TYPE_SRC_ADDR_IPV6'"; } description "Source Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container src-addr-ipv6 container dst-addr-ipv6 { when "../type = 'match-type-dst-addr-ipv6'" { description "../type = 'MATCH_TYPE_DST_ADDR_IPV6'"; } description "Destination Address IPV6"; list ipv6-addr-array { description "ipv6 addr array"; leaf prefix { type inet:ipv6-address; description "IPV6 prefix"; } leaf mask { type uint32; description "IPV6 mask"; } } // list ipv6-addr-array } // container dst-addr-ipv6 container src-addr-mac { when "../type = 'match-type-src-addr-mac'" { description "../type = 'MATCH_TYPE_SRC_ADDR_MAC'"; } description "Source Address MAC"; list mac-addr-array { description "mac addr array"; list mac-addr { max-elements 3; description "MAC address list"; leaf mac { type uint16; description "MAC address"; } } // list mac-addr list mac-mask { max-elements 3; description "MAC mask list"; leaf mask { type uint16; description "MAC mask"; } } // list mac-mask } // list mac-addr-array } // container src-addr-mac container timer { when "../type = 'match-type-timer'" { description "../type = 'MATCH_TYPE_TIMER'"; } description "Timer"; leaf-list string-array { type string; description "string array"; } } // container timer container timer-regexp { when "../type = 'match-type-timer-regexp'" { description "../type = 'MATCH_TYPE_TIMER_REGEXP'"; } description "Timer Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container timer-regexp container tunnel-name { when "../type = 'match-type-tunnel-name'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME'"; } description "Tunnel Name"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name container tunnel-name-regex { when "../type = 'match-type-tunnel-name-regexp'" { description "../type = 'MATCH_TYPE_TUNNEL_NAME_REGEXP'"; } description "Tunnel Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container tunnel-name-regex container user-name { when "../type = 'match-type-user-name'" { description "../type = 'MATCH_TYPE_USERNAME'"; } description "User Name"; leaf-list string-array { type string; description "string array"; } } // container user-name container user-name-regex { when "../type = 'match-type-user-name-regexp'" { description "../type = 'MATCH_TYPE_USERNAME_REGEXP'"; } description "User Name Regular Expression"; leaf-list string-array { type string; description "string array"; } } // container user-name-regex container auth-username { when "../type = 'match-type-auth-user-name'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME'"; } description "Authenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container auth-username container auth-username-regex { when "../type = 'match-type-auth-user-name-regexp'" { description "../type = 'MATCH_TYPE_AUTH_USERNAME_REGEXP'"; } description "Authenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-username-regex container unauth-username { when "../type = 'match-type-unauth-user-name'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME'"; } description "Unauthenticated User Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-username container unauth-username-regex { when "../type = 'match-type-unauth-user-name-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_USERNAME_REGEXP'"; } description "Unauthenticated User Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-username-regex container auth-domain { when "../type = 'match-type-auth-domain'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN'"; } description "Authenticated domain name"; leaf-list string-array { type string; description "string array"; } } // container auth-domain container auth-domain-regex { when "../type = 'match-type-auth-domain-regexp'" { description "../type = 'MATCH_TYPE_AUTH_DOMAIN_REGEXP'"; } description "Authenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container auth-domain-regex container unauth-domain { when "../type = 'match-type-unauth-domain'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN'"; } description "Unauthenticated Domain Name"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain container unauth-domain-regex { when "../type = 'match-type-unauth-domain-regexp'" { description "../type = 'MATCH_TYPE_UNAUTH_DOMAIN_REGEXP'"; } description "Unauthenticated Domain Name RegEx"; leaf-list string-array { type string; description "string array"; } } // container unauth-domain-regex container vendor-id { when "../type = 'match-type-vendor-id'" { description "../type = 'MATCH_TYPE_VENDOR_ID'"; } description "Vendor ID"; leaf-list string-array { type string; description "string array"; } } // container vendor-id container vendor-id-regex { when "../type = 'match-type-vendor-id-regexp'" { description "../type = 'MATCH_TYPE_VENDOR_ID_REGEXP'"; } description "Vendor ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container vendor-id-regex container access-interface { when "../type = 'match-type-access-interface'" { description "../type = 'MATCH_TYPE_ACCESS_INTERFACE'"; } description "Access interface"; leaf-list string-array { type string; description "string array"; } } // container access-interface container input-interface { when "../type = 'match-type-input-interface'" { description "../type = 'MATCH_TYPE_INPUT_INTERFACE'"; } description "Input interface"; leaf-list string-array { type string; description "string array"; } } // container input-interface container ethertype { when "../type = 'match-type-ether-type'" { description "../type = 'MATCH_TYPE_ETHERTYPE'"; } description "Ethernet type"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container ethertype container flow-key-data { when "../type = 'match-type-flow-key'" { description "../type = 'MATCH_TYPE_FLOW_KEY'"; } description "Flow key structure"; container flow-keys { description "flow keys"; leaf keys { type yang:hex-string; description "keys"; } leaf num { type uint8; description "num"; } } // container flow-keys leaf max-count { type uint16; description "Maximum count of flows"; } leaf idle-timeout { type uint16; units "second"; description "Idle timeout of flows (in seconds)"; } } // container flow-key-data container dhcp-client-id { when "../type = 'match-type-dhcp-client-id'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID'"; } description "Dhcp Client ID"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id container dhcp-client-id-regex { when "../type = 'match-type-dhcp-client-id-regexp'" { description "../type = 'MATCH_TYPE_DHCP_CLIENT_ID_REGEXP'"; } description "Dhcp Client ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container dhcp-client-id-regex container circuit-id { when "../type = 'match-type-circuit-id'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID'"; } description "Circuit ID"; leaf-list string-array { type string; description "string array"; } } // container circuit-id container circuit-id-regex { when "../type = 'match-type-circuit-id-regexp'" { description "../type = 'MATCH_TYPE_CIRCUIT_ID_REGEXP'"; } description "Circuit ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container circuit-id-regex container remote-id { when "../type = 'match-type-remote-id'" { description "../type = 'MATCH_TYPE_REMOTE_ID'"; } description "Remote ID"; leaf-list string-array { type string; description "string array"; } } // container remote-id container remote-id-regex { when "../type = 'match-type-remote-id-regexp'" { description "../type = 'MATCH_TYPE_REMOTE_ID_REGEXP'"; } description "Remote ID RegEx"; leaf-list string-array { type string; description "string array"; } } // container remote-id-regex container src-port { when "../type = 'match-type-src-port'" { description "../type = 'MATCH_TYPE_SRC_PORT'"; } description "Source port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container src-port container dst-port { when "../type = 'match-type-dst-port'" { description "../type = 'MATCH_TYPE_DST_PORT'"; } description "Destination port"; list uint16_rng_array { description "uint16 rng array"; leaf min { type uint16; description "Lower limit of the range"; } leaf max { type uint16; description "Upper limit of the range"; } } // list uint16_rng_array } // container dst-port leaf type { type Match-type-en; description "type"; } leaf mpls-top-eos { when "../type = 'match-type-mpls-topmost-eos'" { description "../type = 'MATCH_TYPE_MPLS_TOPMOST_EOS'"; } type uint8; description "MPLS Topmost EOS"; } leaf fragment-type { when "../type = 'match-type-fragment-type'" { description "../type = 'MATCH_TYPE_FRAGMENT_TYPE'"; } type uint8; description "Fragment type"; } leaf authen-status { when "../type = 'match-type-authen-status'" { description "../type = 'MATCH_TYPE_AUTHEN_STATUS'"; } type Match-authen-status-en; description "Authentication Status"; } leaf mlp-negotiated { when "../type = 'match-type-mlp-negotiated'" { description "../type = 'MATCH_TYPE_MLP_NEGOTIATED'"; } type Match-mlp-negotiated-en; description "MLP Negotiated"; } } // container match-data leaf flags { type uint32; description "Flags"; } } // list class-match-info-st } // container match-infop leaf name { type Class-map-name; description "Name of the class-map"; } leaf type { type Class-map-type-en; description "Class-Map Type QoS/PBR/Netflow/..."; } leaf mode { type Class-map-mode-en; description "Class-Map Mode Match any/Match all"; } leaf description { type string; description "description"; } } // list class-map-bg } // container excdclass-p leaf flags { type uint32; description "flags"; } leaf police-flags { type uint32; description "police flags"; } leaf sbuck-name { type Shared-bucket-name; description "sbuck name"; } leaf sbuck-type { type Shared-bucket-type; description "sbuck type"; } } // list action-police-info-st } // container police container shape { when "../type = 'policy-action-shape'" { description "../type = 'POLICY_ACTION_SHAPE'"; } description "shape"; list action-shape-info-st { description "action police info array"; container bw { description "bw"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container bw container be { description "be"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container be } // list action-shape-info-st } // container shape container child-policy { when "../type = 'policy-action-serv-pol'" { description "../type = 'POLICY_ACTION_SERV_POL'"; } description "child policy"; list action-policy-info-st { description "child policy info"; container info { when "../enc = 'policy-obj-enc-name'" { description "../enc = 'POLICY_OBJ_ENC_NAME'"; } description "info"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // container info container hd-info { when "../enc = 'policy-obj-enc-hdl'" { description "../enc = 'POLICY_OBJ_ENC_HDL'"; } description "hd info"; container data-hd { description "data hd"; list policy-map-name-type { description "policy map type and name"; leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } } // list policy-map-name-type } // container data-hd } // container hd-info leaf enc { type Policy-obj-enc-en; description "enc"; } } // list action-policy-info-st } // container child-policy container cac { when "../type = 'policy-action-cac'" { description "../type = 'POLICY_ACTION_CAC'"; } description "cac"; list action-cac-info-st { description "action cac info st"; container flow-rate { description "flow rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container flow-rate container rate { description "rate"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container rate leaf cac-type { type Cac-flow-actn-type-e; description "cac type"; } leaf idle-timeout { type uint16; description "idle timeout"; } } // list action-cac-info-st } // container cac container pfc { when "../type = 'policy-action-pfc'" { description "../type = 'POLICY_ACTION_PFC'"; } description "pfc"; list action-pfc-info-st { description "action pfc info st"; container buffer-size { description "buffer size"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container buffer-size container pause-threshold { description "pause threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container pause-threshold container resume-threshold { description "resume threshold"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container resume-threshold leaf pfc-pause-set { type uint32; description "pfc pause set"; } leaf buffer-size-flag { type uint32; description "buffer size flag"; } } // list action-pfc-info-st } // container pfc container flow-parm { when "../type = 'policy-action-afmon-flow-parm'" { description "../type = 'POLICY_ACTION_AFMON_FLOW_PARM'"; } description "flow parm"; leaf max-mon-flows { type uint32; description "max simult flows monitored per policy class"; } leaf mon-interval { type uint32; units "second"; description "monitored interval duration in secs"; } leaf intvl-hist { type uint32; description "num intervals of data stored on rtr"; } leaf flow-timeout { type uint32; units "second"; description "timeout in secs"; } } // container flow-parm container ipcbr { when "../type = 'policy-action-afmon-ipcbr-metric'" { description "../type = 'POLICY_ACTION_AFMON_IPCBR_METRIC'"; } description "ipcbr"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate container media-bit-rate { description "media data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container media-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf media-pkt-size { type uint32; units "byte"; description "media packet size in bytes"; } leaf media-pkts-per-ip { type uint32; description "media packets per ip pkt"; } } // container ipcbr container rtp { when "../type = 'policy-action-afmon-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_METRIC'"; } description "rtp"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp container rtp-mmr { when "../type = 'policy-action-afmon-rtp-mmr-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_MMR_METRIC'"; } description "rtp mmr"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-mmr container rtp-j2k { when "../type = 'policy-action-afmon-rtp-j2k-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_J2K_METRIC'"; } description "rtp j2k"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-j2k container rtp-voice { when "../type = 'policy-action-afmon-rtp-voice-metric'" { description "../type = 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC'"; } description "rtp voice"; leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf min-sequential { type uint32; description "min sequential"; } leaf max-dropout { type uint32; description "max dropout"; } leaf max-misorder { type uint32; description "max misorder"; } leaf seq-ext-cop4 { type uint32; description "enable seq extension cop4"; } list clock-rate { description "clock rate"; leaf pt { type uint32; description "pt"; } leaf frequency { type uint32; description "frequency"; } } // list clock-rate } // container rtp-voice container mdi { when "../type = 'policy-action-afmon-mdi-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_METRIC'"; } description "mdi"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi container mdi-rtp { when "../type = 'policy-action-afmon-mdi-rtp-metric'" { description "../type = 'POLICY_ACTION_AFMON_MDI_RTP_METRIC'"; } description "mdi rtp"; container ip-bit-rate { description "data rate in bps"; leaf value { type uint32; description "value"; } leaf unit { type Policy-param-unit-type; description "unit"; } } // container ip-bit-rate leaf action-metric-type { type Policy-action-en; description "metric type"; } leaf filtered-pkt-rate { type uint32; description "filtered packet rate"; } leaf ip-pkt-rate { type uint32; description "packet rate in pps"; } leaf-list pids { type uint32; description "array of monitoredcd pids"; } } // container mdi-rtp container fmm { when "../type = 'policy-action-afmon-fmm'" { description "../type = 'POLICY_ACTION_AFMON_FMM'"; } description "fmm"; leaf fmm-name { type string { length "0..33"; } description "flow monitor name"; } } // container fmm container pbf { when "../type = 'policy-action-pbr-next-hop'" { description "../type = 'POLICY_ACTION_PBR_NEXTHOP'"; } description "pbf"; list action-pbf-info-array { description "action pbf info array"; leaf addr { type inet:ipv6-address; description "v4 or v6 address"; } leaf vrf { type string; description "vrf name"; } leaf rt-type { type uint8; description "route target type"; } leaf rt { type yang:hex-string; description "route target"; } } // list action-pbf-info-array } // container pbf container ipv4-nh { when "../type = 'policy-action-ipv4-nh'" { description "../type = 'POLICY_ACTION_IPV4_NH'"; } description "ipv4 nh"; list action-ipv4-nh-info-array { description "action ipv4 nh info array"; leaf ipv4-nh-addr { type inet:ipv4-address; description "nh addr"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv4-nh-info-array } // container ipv4-nh container ipv6-nh { when "../type = 'policy-action-ipv6-nh'" { description "../type = 'POLICY_ACTION_IPV6_NH'"; } description "ipv6 nh"; list action-ipv6-nh-info-array { description "action ipv6 nh info array"; leaf ipv6-nh-addr { type inet:ipv6-address; description "IPV6 Address"; } leaf vrf-name { type string; description "Vrf name"; } } // list action-ipv6-nh-info-array } // container ipv6-nh leaf type { type Policy-action-en; description "type"; } leaf data-p { when "../type != 'policy-action-mark' and ../type != 'policy-action-mark2' and ../type != 'policy-action-wred' and ../type != 'policy-action-encap-seq' and ../type != 'policy-action-priority' and ../type != 'policy-action-bw-remaining' and ../type != 'policy-action-min-bw' and ../type != 'policy-action-authenticate-aaa' and ../type != 'policy-action-collect-id' and ../type != 'policy-action-decode-identifier' and ../type != 'policy-action-set-timer' and ../type != 'policy-action-stop-timer' and ../type != 'policy-action-accounting-aaa-list' and ../type != 'policy-action-query-ancp' and ../type != 'policy-action-prepaid-config' and ../type != 'policy-action-timeout-idle' and ../type != 'policy-action-proxy-aaa' and ../type != 'policy-action-template-activate' and ../type != 'policy-action-template-deactivate' and ../type != 'policy-action-q-limit' and ../type != 'policy-action-accounting-event-aaa-list' and ../type != 'policy-action-authorize-id' and ../type != 'policy-action-afmon-react' and ../type != 'policy-action-httpr' and ../type != 'policy-action-punt' and ../type != 'policy-action-copy' and ../type != 'policy-action-sfrag' and ../type != 'policy-action-redirect' and ../type != 'policy-action-output-interface' and ../type != 'policy-action-service-function-path' and ../type != 'policy-action-police' and ../type != 'policy-action-shape' and ../type != 'policy-action-serv-pol' and ../type != 'policy-action-cac' and ../type != 'policy-action-pfc' and ../type != 'policy-action-afmon-flow-parm' and ../type != 'policy-action-afmon-ipcbr-metric' and ../type != 'policy-action-afmon-rtp-metric' and ../type != 'policy-action-afmon-rtp-mmr-metric' and ../type != 'policy-action-afmon-rtp-j2k-metric' and ../type != 'policy-action-afmon-rtp-voice-metric' and ../type != 'policy-action-afmon-mdi-metric' and ../type != 'policy-action-afmon-mdi-rtp-metric' and ../type != 'policy-action-afmon-fmm' and ../type != 'policy-action-pbr-next-hop' and ../type != 'policy-action-ipv4-nh' and ../type != 'policy-action-ipv6-nh'" { description "../type != 'POLICY_ACTION_MARK' and ../type != 'POLICY_ACTION_MARK2' and ../type != 'POLICY_ACTION_WRED' and ../type != 'POLICY_ACTION_ENCAP_SEQ' and ../type != 'POLICY_ACTION_PRIORITY' and ../type != 'POLICY_ACTION_BW_REMAINING' and ../type != 'POLICY_ACTION_MIN_BW' and ../type != 'POLICY_ACTION_AUTHENTICATE_AAA' and ../type != 'POLICY_ACTION_COLLECT_ID' and ../type != 'POLICY_ACTION_DECODE_IDENTIFIER' and ../type != 'POLICY_ACTION_SET_TIMER' and ../type != 'POLICY_ACTION_STOP_TIMER' and ../type != 'POLICY_ACTION_ACCOUNTING_AAA_LIST' and . ./type != 'POLICY_ACTION_QUERY_ANCP' and . ./type != 'POLICY_ACTION_PREPAID_CONFIG' and . ./type != 'POLICY_ACTION_TIMEOUT_IDLE' and . ./type != 'POLICY_ACTION_PROXY_AAA' and . ./type != 'POLICY_ACTION_TEMPLATE_ACTIVATE' and ../type != 'POLICY_ACTION_TEMPLATE_DEACTIVATE' and . ./type != 'POLICY_ACTION_Q_LIMIT' and ../type != 'POLICY_ACTION_ACCOUNTING_EVENT_AAA_LIST' and ../type != 'POLICY_ACTION_AUTHORIZE_ID' and ../type != 'POLICY_ACTION_AFMON_REACT' and ../type != 'POLICY_ACTION_HTTPR' and ../type != 'POLICY_ACTION_PUNT' and ../type != 'POLICY_ACTION_COPY' and ../type != 'POLICY_ACTION_SFRAG' and ../type != 'POLICY_ACTION_REDIRECT' and ../type != 'POLICY_ACTION_OUTPUT_INTERFACE' and ../type != 'POLICY_ACTION_SERVICE_FUNCTION_PATH' and . ./type != 'POLICY_ACTION_POLICE' and ../type != 'POLICY_ACTION_SHAPE' and ../type != 'POLICY_ACTION_SERV_POL' and ../type != 'POLICY_ACTION_CAC' and ../type != 'POLICY_ACTION_PFC' and ../type != 'POLICY_ACTION_AFMON_FLOW_PARM' and ../type != 'POLICY_ACTION_AFMON_IPCBR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_MMR_METRIC' and ../type != 'POLICY_ACTION_AFMON_RTP_J2K_METRIC' and . ./type != 'POLICY_ACTION_AFMON_RTP_VOICE_METRIC' and . ./type != 'POLICY_ACTION_AFMON_MDI_METRIC' and ../type != 'POLICY_ACTION_AFMON_MDI_RTP_METRIC' and . ./type != 'POLICY_ACTION_AFMON_FMM' and . ./type != 'POLICY_ACTION_PBR_NEXTHOP' and . ./type != 'POLICY_ACTION_IPV4_NH' and ../type != 'POLICY_ACTION_IPV6_NH'"; } type uint32; description "data p"; } } // container actp leaf seq { type uint16; description "seq"; } leaf flags { type uint16; description "flags"; } } // list policy-action-info-st } // container act-infop container nlri-infop { description "nlri info pointer"; container nlri { description "nlri value"; leaf-list uint8_array { type uint8; description "uint8 array"; } } // container nlri } // container nlri-infop leaf policy-class-hd { type uint32; description "policy class hd"; } leaf seq { type uint32; description "seq"; } leaf flags { type uint32; description "flags"; } leaf ctype { type Class-map-type-en; description "ctype"; } leaf num-actions { type uint16; description "num actions"; } leaf version { type uint8; description "version"; } leaf exe-strat { type Pclass-exec-strat-en; description "exe strat"; } } // list policy-class-info-bg } // container class-infop leaf event-type { type Pevent-type-en; description "event type"; } leaf cond-eval { type Pevent-cond-eval-en; description "cond eval"; } } // list policy-event-info-bg } // container event-infop leaf name { type Policy-map-name; description "name"; } leaf type { type Policy-map-type-en; description "type"; } leaf description { type string; description "description"; } } // list policy-map-bg } // list policy-map } // container policy-maps container policy-map-details { description "Policy-map table"; list policy-map-detail { key "policy-map-name"; description "Policy-map detail information"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf total-objects { type uint32; description "Total number of objects configured for a specific object type"; } leaf transient { type boolean; description "Transient object"; } list reference { description "Each Policymap details"; leaf total-internal-reference-objects { type uint32; description "Total number of internal reference objects"; } leaf total-class-maps { type uint32; description "Total number of Classmaps in a Policymap"; } leaf total-flows { type uint32; description "Total flows in a Policymap"; } } // list reference list objects { description "Each object details"; leaf object-name { type string { length "0..64"; } description "Name of object (Policymap/Classmap)"; } } // list objects list class-map-reference { description "Each Classmapdetails"; leaf total-reference-objects { type uint32; description "Total number of Policymaps referencing a Classmap"; } list policy-map-reference { description "List of Policymaps referencing a Classmap"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf policy-map-name { type string { length "0..64"; } description "Name of Policymap referencing a Classmap"; } } // list policy-map-reference } // list class-map-reference } // list policy-map-detail } // container policy-map-details container vrf-table { xr:xr-xml-map "policymgr_oper:VRFTable"; description "VRF table"; list vrf { xr:xr-xml-map "policymgr_oper:VRF"; key "vrf-name"; description "VRF configuration"; leaf vrf-name { xr:xr-xml-map "policymgr_oper:VRFName"; type string { length "1..63"; } description "Name of Vrf"; } container afi-table { xr:xr-xml-map "policymgr_oper:AfITable"; description "AFI table"; list afi { xr:xr-xml-map "policymgr_oper:AfI"; key "afi-type"; description "Address family config"; leaf afi-type { xr:xr-xml-map "policymgr_oper:Type"; type afi-enum; description "Name of AFI"; } container stats { xr:xr-xml-map "policymgr_oper:VrfStats"; leaf pmap-name { type string; description "pmap name"; } leaf vrf-name { type string; description "vrf name"; } leaf appln-type { type uint32; description "appln type"; } leaf addr-family { type uint32; description "addr family"; } leaf rc { type int32; description "rc"; } list plmgr-vrf-stats { description "plmgr vrf stats"; leaf pmap-name { type string; description "pmap name"; } list cmap-stats-arr { description "cmap stats arr"; leaf cmap-name { type string { length "0..65"; } description "cmap name"; } leaf matched-bytes { type uint64; description "matched bytes"; } leaf matched-packets { type uint64; description "matched packets"; } leaf transmit-bytes { type uint64; description "transmit bytes"; } leaf transmit-packets { type uint64; description "transmit packets"; } } // list cmap-stats-arr } // list plmgr-vrf-stats } // container stats } // list afi } // container afi-table } // list vrf } // container vrf-table leaf type { type Policymgr-policy-map; description "The application type"; } } // list policy-map-type } // container policy-map-types container transient-policy-map-types { description "Application type of transient policy-map list"; list transient-policy-map-type { key "type"; description "Transient policy-map type"; container transient-list-unuseds { description "Transient policy-map list unused table"; list transient-list-unused { key "policy-map-name"; description "Policy-map list unused"; leaf policy-map-name { type string { length "1..63"; } description "Name of policy-map"; } leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf total-objects { type uint32; description "Total number of objects configured for a specific object type"; } leaf transient { type boolean; description "Transient object"; } list reference { description "Each Policymap details"; leaf total-internal-reference-objects { type uint32; description "Total number of internal reference objects"; } leaf total-class-maps { type uint32; description "Total number of Classmaps in a Policymap"; } leaf total-flows { type uint32; description "Total flows in a Policymap"; } } // list reference list objects { description "Each object details"; leaf object-name { type string { length "0..64"; } description "Name of object (Policymap/Classmap)"; } } // list objects list class-map-reference { description "Each Classmapdetails"; leaf total-reference-objects { type uint32; description "Total number of Policymaps referencing a Classmap"; } list policy-map-reference { description "List of Policymaps referencing a Classmap"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf policy-map-name { type string { length "0..64"; } description "Name of Policymap referencing a Classmap"; } } // list policy-map-reference } // list class-map-reference } // list transient-list-unused } // container transient-list-unuseds leaf type { type Policymgr-policy-map; description "The application type"; } } // list transient-policy-map-type } // container transient-policy-map-types } // container policy-map container summary { description "Summary of policy-maps and class-maps configured"; leaf total-class-maps { type uint32; description "Total number of Classmaps configured"; } leaf total-class-map-types { type uint32; description "Total number of Classmap types configured"; } leaf total-policy-maps { type uint32; description "Total number of Policymaps configured"; } leaf total-policy-map-types { type uint32; description "Total number of Policymap types configured"; } list class-maps { description "Summary of Classmap database"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf total-objects { type uint32; description "Total number of objects configured for a specific object type"; } leaf transient { type boolean; description "Transient object"; } list reference { description "Each Policymap details"; leaf total-internal-reference-objects { type uint32; description "Total number of internal reference objects"; } leaf total-class-maps { type uint32; description "Total number of Classmaps in a Policymap"; } leaf total-flows { type uint32; description "Total flows in a Policymap"; } } // list reference list objects { description "Each object details"; leaf object-name { type string { length "0..64"; } description "Name of object (Policymap/Classmap)"; } } // list objects list class-map-reference { description "Each Classmapdetails"; leaf total-reference-objects { type uint32; description "Total number of Policymaps referencing a Classmap"; } list policy-map-reference { description "List of Policymaps referencing a Classmap"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf policy-map-name { type string { length "0..64"; } description "Name of Policymap referencing a Classmap"; } } // list policy-map-reference } // list class-map-reference } // list class-maps list policy-maps { description "Summary of Policymap database"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf total-objects { type uint32; description "Total number of objects configured for a specific object type"; } leaf transient { type boolean; description "Transient object"; } list reference { description "Each Policymap details"; leaf total-internal-reference-objects { type uint32; description "Total number of internal reference objects"; } leaf total-class-maps { type uint32; description "Total number of Classmaps in a Policymap"; } leaf total-flows { type uint32; description "Total flows in a Policymap"; } } // list reference list objects { description "Each object details"; leaf object-name { type string { length "0..64"; } description "Name of object (Policymap/Classmap)"; } } // list objects list class-map-reference { description "Each Classmapdetails"; leaf total-reference-objects { type uint32; description "Total number of Policymaps referencing a Classmap"; } list policy-map-reference { description "List of Policymaps referencing a Classmap"; leaf object-type { type Plmgr-appln-type-en; description "Application type configured"; } leaf policy-map-name { type string { length "0..64"; } description "Name of Policymap referencing a Classmap"; } } // list policy-map-reference } // list class-map-reference } // list policy-maps } // container summary } // container global } // container policy-manager } // module Cisco-IOS-XR-infra-policymgr-oper
© 2023 YumaWorks, Inc. All rights reserved.