Cisco-IOS-XR-um-if-access-group-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR if-access-group package configuration. This YANG module ...

  • Version: 2019-06-10

    Cisco-IOS-XR-um-if-access-group-cfg@2019-06-10


    
      module Cisco-IOS-XR-um-if-access-group-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-if-access-group-cfg";
    
        prefix um-if-access-group-cfg;
    
        import tailf-common {
          prefix tailf;
        }
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import Cisco-IOS-XR-um-interface-cfg {
          prefix a1;
        }
    
        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 if-access-group package configuration.
         
         This YANG module augments the
         modules with configuration data.
         
         Copyright (c) 2019 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2019-06-10" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2019-04-02" {
          description "Initial version";
        }
    
        semver:module-version "1.0.0";
    
        grouping GROUP-IPV4 {
          container access-group {
            tailf:dependency "../../a1:interface-name";
            when
              "../../a1:interface-name[not(starts-with(text(),'tunnel-gre'))] and ../../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../../a1:interface-name[not(starts-with(text(),'vasileft'))] and ../../a1:interface-name[not(starts-with(text(),'vasiright'))]";
            description
              "Specify access group for packets";
            container ingress {
              xr:xr-xml-map "ip_pfilter_cfg:Outbound";
              must "access-list-name-1";
              presence
                "Indicates an ingress node is configured.";
              description
                "IPv4 Packet filter to be applied to inbound
               packets";
              container access-list-name-1 {
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-1
    
              container access-list-name-2 {
                must "../access-list-name-1";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-2
    
              container access-list-name-3 {
                must "../access-list-name-2";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-3
    
              container access-list-name-4 {
                must "../access-list-name-3";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-4
    
              container access-list-name-5 {
                must "../access-list-name-4";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-5
    
              container hardware-count {
                tailf:dependency "../../../../a1:interface-name";
                when
                  "../../../../a1:interface-name[not(starts-with(text(),'MgmtEth'))]";
                presence
                  "Indicates a hardware-count node is configured.";
                description
                  "Count packets in hardware";
              }  // container hardware-count
    
              container interface-statistics {
                presence
                  "Indicates an interface-statistics node is configured.";
                description
                  "Per interface statistics in hardware";
              }  // container interface-statistics
    
              leaf compress-level {
                type uint32 {
                  range "0..3";
                }
                must
                  "not(../access-list-name-2 or ../access-list-name-1/common)";
                description
                  "Specify ACL compression in hardware";
              }
            }  // container ingress
    
            container egress {
              xr:xr-xml-map "ip_pfilter_cfg:Outbound";
              presence
                "Indicates an egress node is configured.";
              description
                "IPv4 Packet filter to be applied to outbound
               packets";
              container access-list-name {
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
              }  // container access-list-name
    
              container hardware-count {
                tailf:dependency "../../../../a1:interface-name";
                when
                  "../../../../a1:interface-name[not(starts-with(text(),'MgmtEth'))]";
                presence
                  "Indicates a hardware-count node is configured.";
                description
                  "Count packets in hardware";
              }  // container hardware-count
    
              container interface-statistics {
                presence
                  "Indicates an interface-statistics node is configured.";
                description
                  "Per interface statistics in hardware";
              }  // container interface-statistics
    
              leaf compress-level {
                type uint32 {
                  range "0..3";
                }
                description
                  "Specify ACL compression in hardware";
              }
            }  // container egress
          }  // container access-group
        }  // grouping GROUP-IPV4
    
        grouping GROUP-IPV6 {
          container access-group {
            tailf:dependency "../../a1:interface-name";
            when
              "../../a1:interface-name[not(starts-with(text(),'tunnel-gre'))] and ../../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../../a1:interface-name[not(starts-with(text(),'vasileft'))] and ../../a1:interface-name[not(starts-with(text(),'vasiright'))]";
            description
              "Specify access group for packets";
            container ingress {
              xr:xr-xml-map "ip_pfilter_cfg:Outbound";
              must "access-list-name-1";
              presence
                "Indicates an ingress node is configured.";
              description
                "IPv6 Packet filter to be applied to inbound
               packets";
              container access-list-name-1 {
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-1
    
              container access-list-name-2 {
                must "../access-list-name-1";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-2
    
              container access-list-name-3 {
                must "../access-list-name-2";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-3
    
              container access-list-name-4 {
                must "../access-list-name-3";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-4
    
              container access-list-name-5 {
                must "../access-list-name-4";
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
    
                container common {
                  presence
                    "Indicates this is a common Access-list name";
                  description
                    "common Access-list name";
                }  // container common
              }  // container access-list-name-5
    
              container interface-statistics {
                presence
                  "Indicates an interface-statistics node is configured.";
                description
                  "Per interface statistics in hardware";
              }  // container interface-statistics
    
              leaf compress-level {
                type uint32 {
                  range "0..3";
                }
                must
                  "not(../access-list-name-2 or ../access-list-name-1/common)";
                description
                  "Specify ACL compression in hardware";
              }
            }  // container ingress
    
            container egress {
              xr:xr-xml-map "ip_pfilter_cfg:Outbound";
              presence
                "Indicates an egress node is configured.";
              description
                "IPv6 Packet filter to be applied to outbound
               packets";
              container access-list-name-1 {
                presence
                  "Indicates this Access-list name is configured";
                description "Access-list name";
                leaf name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  mandatory true;
                  description "Access-list name";
                }
              }  // container access-list-name-1
    
              container interface-statistics {
                presence
                  "Indicates an interface-statistics node is configured.";
                description
                  "Per interface statistics in hardware";
              }  // container interface-statistics
    
              leaf compress-level {
                type uint32 {
                  range "0..3";
                }
                description
                  "Specify ACL compression in hardware";
              }
            }  // container egress
          }  // container access-group
        }  // grouping GROUP-IPV6
    
        grouping GROUP-ETHERNET-SERVICES {
          container ethernet-services {
            tailf:dependency "../a1:interface-name";
            when
              "../a1:interface-name[not(starts-with(text(),'tunnel-ip'))] and ../a1:interface-name[not(starts-with(text(),'tunnel-te'))] and ../a1:interface-name[not(starts-with(text(),'Loopback'))] and ../a1:interface-name[not(starts-with(text(),'BVI'))] and ../a1:interface-name[not(starts-with(text(),'MgmtEth'))]";
            description
              "Ethernet related services";
            container access-group {
              description
                "Specify access control for packets";
              leaf ingress {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "ingress Access-list name";
              }
    
              leaf egress {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "egress Access-list name";
              }
            }  // container access-group
          }  // container ethernet-services
        }  // grouping GROUP-ETHERNET-SERVICES
    
        augment /a1:interfaces/a1:interface/a1:ipv4 {
          uses GROUP-IPV4;
        }
    
        augment /a1:interfaces/a1:interface-preconfigure/a1:ipv4 {
          uses GROUP-IPV4;
        }
    
        augment /a1:interfaces/a1:interface/a1:ipv6 {
          uses GROUP-IPV6;
        }
    
        augment /a1:interfaces/a1:interface-preconfigure/a1:ipv6 {
          uses GROUP-IPV6;
        }
    
        augment /a1:interfaces/a1:interface {
          uses GROUP-ETHERNET-SERVICES;
        }
    
        augment /a1:interfaces/a1:interface-preconfigure {
          uses GROUP-ETHERNET-SERVICES;
        }
      }  // module Cisco-IOS-XR-um-if-access-group-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.