Cisco-IOS-XR-um-if-ipv4-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR interface configuration. Copyright (c) 2019-2020 by Cisc...

  • Version: 2020-10-02

    Cisco-IOS-XR-um-if-ipv4-cfg@2020-10-02


    
      module Cisco-IOS-XR-um-if-ipv4-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-if-ipv4-cfg";
    
        prefix um-if-ipv4-cfg;
    
        import cisco-semver {
          prefix semver;
        }
        import ietf-inet-types {
          prefix inet;
        }
        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 interface configuration.
         
         Copyright (c) 2019-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2020-10-02" {
          description
            "Added container qos-group under propagation/input.
           Removed container source under
           input/ip-precedence/destination/qos-group
           as it's overlapped with
           input/qos-group/source/ip-precedence/destination.";
        }
    
        revision "2019-10-10" {
          description "Initial version";
        }
    
        semver:module-version "2.0.0";
        semver:module-version "1.0.0";
    
        grouping GROUP-IPV4 {
          description
            "Interface IPv4 config commands";
          container forwarding-enable {
            presence
              "Indicates a forwarding-enable node is configured.";
            description
              "enable ipv4 forwarding on a interface";
          }  // container forwarding-enable
    
          container point-to-point {
            presence
              "Indicates a point-to-point node is configured.";
            description
              "Enable point-to-point handling for this interface.";
          }  // container point-to-point
    
          leaf mtu {
            type uint32 {
              range "68..65535";
            }
            description
              "Set IPv4 Maximum Transmission Unit";
          }
    
          container redirects {
            presence
              "Indicates a redirects node is configured.";
            description
              "Enable sending ICMP Redirect messages";
          }  // container redirects
    
          container mask-reply {
            presence
              "Indicates a mask-reply node is configured.";
            description
              "Enable sending ICMP mask reply messages";
          }  // container mask-reply
    
          container helper-addresses {
            description
              "Specify a destination address for UDP broadcasts";
            list helper-address {
              key "address vrf";
              description
                "Specify a destination address for UDP broadcasts";
              leaf address {
                type inet:ipv4-address-no-zone;
                description
                  "Specify a destination address for UDP broadcasts";
              }
    
              leaf vrf {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description "VRF name";
              }
            }  // list helper-address
          }  // container helper-addresses
    
          container icmp {
            description
              "Disable ICMP unreachable for Nullx interface";
            container unreachables {
              description
                "Disable sending ICMP Unreachable messages";
              container disable {
                presence
                  "Indicates a disable node is configured.";
                description
                  "Override sending of ICMP Unreachable messages";
              }  // container disable
            }  // container unreachables
          }  // container icmp
    
          container unreachables {
            description
              "Enable sending ICMP Unreachable messages";
            container disable {
              presence
                "Indicates a disable node is configured.";
              description
                "Override sending of ICMP Unreachable messages";
            }  // container disable
          }  // container unreachables
    
          container directed-broadcast {
            presence
              "Indicates a directed-broadcast node is configured.";
            description
              "Enable forwarding of directed broadcasts";
          }  // container directed-broadcast
    
          container bgp {
            description
              "Enable BGP policy based feature";
            container policy {
              description "BGP policy";
              container accounting {
                description
                  "BGP policy accounting";
                container input {
                  must
                    "source-accounting or destination-accounting";
                  presence
                    "Indicates a input node is configured.";
                  description
                    "BGP policy accounting on input";
                  container source-accounting {
                    presence
                      "Indicates a source-accounting node is configured.";
                    description
                      "BGP policy accounting on source IP address";
                  }  // container source-accounting
    
                  container destination-accounting {
                    presence
                      "Indicates a destination-accounting node is configured.";
                    description
                      "BGP policy accounting on destination IP address";
                  }  // container destination-accounting
                }  // container input
    
                container output {
                  must
                    "source-accounting or destination-accounting";
                  presence
                    "Indicates a output node is configured.";
                  description
                    "BGP policy accounting on output";
                  container source-accounting {
                    presence
                      "Indicates a source-accounting node is configured.";
                    description
                      "BGP policy accounting on source IP address";
                  }  // container source-accounting
    
                  container destination-accounting {
                    presence
                      "Indicates a destination-accounting node is configured.";
                    description
                      "BGP policy accounting on destination IP address";
                  }  // container destination-accounting
                }  // container output
              }  // container accounting
    
              container propagation {
                description
                  "BGP QoS/Flow-tag policy propagation";
                container input {
                  description
                    "Flow type is input";
                  container ip-precedence {
                    description
                      "QPPB using IP Precedence";
                    container source {
                      must
                        "not(../destination or ../../qos-group/source
                       or ../../qos-group/destination)";
                      presence
                        "Indicates a source node is configured.";
                      description
                        "QPPB on source IP address";
                      container qos-group {
                        description
                          "QPPB using Qos Group";
                        container source {
                          must
                            "not(../destination)";
                          presence
                            "Indicates a source node is configured.";
                          description
                            "QPPB on source IP address";
                        }  // container source
    
                        container destination {
                          must "not(../source)";
                          presence
                            "Indicates a destination node is configured.";
                          description
                            "QPPB on destination IP address";
                        }  // container destination
                      }  // container qos-group
                    }  // container source
    
                    container destination {
                      must
                        "not(../source or ../../qos-group/source
                       or ../../qos-group/destination)";
                      presence
                        "Indicates a destination node is configured.";
                      description
                        "QPPB on destination IP address";
                      container qos-group {
                        description
                          "QPPB using Qos Group";
                        container destination {
                          presence
                            "Indicates a destination node is configured.";
                          description
                            "QPPB on destination IP address";
                        }  // container destination
                      }  // container qos-group
                    }  // container destination
                  }  // container ip-precedence
    
                  container qos-group {
                    description
                      "QPPB using Qos Group";
                    container source {
                      must
                        "not(../destination or ../../ip-precedence/source
                       or ../../ip-precedence/destination)";
                      presence
                        "Indicates a source node is configured.";
                      description
                        "QPPB on source IP address";
                      container ip-precedence {
                        description
                          "QPPB using IP Precedence";
                        container destination {
                          presence
                            "Indicates a destination node is configured.";
                          description
                            "QPPB on destination IP address";
                        }  // container destination
                      }  // container ip-precedence
                    }  // container source
    
                    container destination {
                      must
                        "not(../source or ../../ip-precedence/source
                       or ../../ip-precedence/destination)";
                      presence
                        "Indicates a destination node is configured.";
                      description
                        "QPPB on destination IP address";
                    }  // container destination
                  }  // container qos-group
    
                  container flow-tag {
                    must
                      "(source or destination) and not(source and destination)";
                    presence
                      "Indicates a flow-tag node is configured.";
                    description
                      "Flow tag policy option";
                    container source {
                      presence
                        "Indicates a source node is configured.";
                      description
                        "Flow-tag policy on source IP address";
                    }  // container source
    
                    container destination {
                      presence
                        "Indicates a destination node is configured.";
                      description
                        "Flow-tag policy on destination IP address";
                    }  // container destination
                  }  // container flow-tag
                }  // container input
              }  // container propagation
            }  // container policy
          }  // container bgp
    
          container verify {
            description
              "Enable per packet validation";
            container unicast {
              description
                "Enable per packet validation for unicast";
              container source {
                description
                  "Validation of source address";
                container reachable-via {
                  presence
                    "Indicates a reachable-via node is configured.";
                  description
                    "Specify reachability check to apply to the source address";
                  leaf type {
                    type enumeration {
                      enum "any" {
                        value 0;
                        description
                          "Source is reachable via any interface";
                      }
                      enum "rx" {
                        value 1;
                        description
                          "Source is reachable via interface on which packet was received";
                      }
                    }
                    mandatory true;
                    description
                      "Source reachable type";
                  }
    
                  leaf allow-self-ping {
                    type boolean;
                    mandatory true;
                    description
                      "Allow router to ping itself (opens vulnerability in verification)";
                  }
    
                  leaf allow-default {
                    type boolean;
                    mandatory true;
                    description
                      "Allow default route to match when checking source address";
                  }
                }  // container reachable-via
              }  // container source
            }  // container unicast
          }  // container verify
    
          container ttl-propagate {
            description
              "Disable ip ttl propagation for this interface.";
            container disable {
              presence
                "Indicates a disable node is configured.";
              description
                "Disable ipv4 ttl propagation on this interface";
            }  // container disable
          }  // container ttl-propagate
    
          container tcp-mss-adjust {
            description
              "Enable tcp mss adjust for this interface.";
            container enable {
              presence
                "Indicates a enable node is configured.";
              description
                "Enable tcp mss adjust on this interface";
            }  // container enable
          }  // container tcp-mss-adjust
    
          container flowspec {
            description
              "Flowspec on IPv4 interface";
            container disable {
              presence
                "Indicates a disable node is configured.";
              description
                "Disable flowspec on interface";
            }  // container disable
          }  // container flowspec
        }  // grouping GROUP-IPV4
    
        augment /a1:interfaces/a1:interface/a1:ipv4 {
          uses GROUP-IPV4;
        }
    
        augment /a1:interfaces/a1:interface-preconfigure/a1:ipv4 {
          uses GROUP-IPV4;
        }
      }  // module Cisco-IOS-XR-um-if-ipv4-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.