Cisco-IOS-XR-linux-xlnc-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR linux-xlnc package configuration. This module contains d...

  • Version: 2019-04-05

    Cisco-IOS-XR-linux-xlnc-cfg@2019-04-05


    
      module Cisco-IOS-XR-linux-xlnc-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-linux-xlnc-cfg";
    
        prefix linux-xlnc-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR linux-xlnc package configuration.
         
         This module contains definitions
         for the following management objects:
           linux-networking: Linux Networking interface configuration
         
         Copyright (c) 2013-2019 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "2.0.0";
    
        typedef Addr-family {
          type enumeration {
            enum "ipv4" {
              value 412;
              description
                "Internet Protocol version 4, RFC 791";
            }
            enum "ipv6" {
              value 413;
              description
                "Internet Protocol version 6, RFC 8200";
            }
          }
          description "Addr family";
        }
    
        typedef L4-proto-family {
          type enumeration {
            enum "tcp" {
              value 104;
              description
                "Transmission Control Protocol, RFC 793";
            }
            enum "udp" {
              value 105;
              description
                "User Datagram Protocol, RFC 768";
            }
          }
          description "L4 proto family";
        }
    
        typedef Statistics-sync-interval {
          type enumeration {
            enum "5s" {
              value 2;
              description "5 seconds";
            }
            enum "10s" {
              value 3;
              description "10 seconds";
            }
            enum "30s" {
              value 4;
              description "30 seconds";
            }
            enum "60s" {
              value 5;
              description "60 seconds";
            }
          }
          description "Statistics sync interval";
        }
    
        typedef Xlnc-sync-dir {
          type enumeration {
            enum "xr-to-linux" {
              value 0;
              description
                "Set direction to be from XR to Linux";
            }
            enum "linux-to-xr" {
              value 1;
              description
                "Set direction to be from Linux to XR";
            }
          }
          description "Xlnc sync dir";
        }
    
        typedef Xlnc-protection-action {
          type enumeration {
            enum "permit" {
              value 7926;
              description "Allow traffic";
            }
            enum "deny" {
              value 7927;
              description "Deny traffic";
            }
          }
          description "Xlnc protection action";
        }
    
        container linux-networking {
          description
            "Linux Networking interface configuration";
          container exposed-interfaces {
            description
              "Configuration for exposed interfaces";
            list exposed-interface {
              key "interface-name";
              description
                "Configuration for a single exposed interface";
              container statistics-synchronization {
                presence
                  "Indicates a statistics-synchronization node is configured.";
                description
                  "Configure synchronization of this interface's
                 statistics between IOS-XR and Linux";
                leaf direction {
                  type Xlnc-sync-dir;
                  mandatory true;
                  description
                    "Specify the direction in which statistics
                   sychronization should be performed. Currently
                   the only supported value is FromXR";
                }
    
                leaf interval {
                  type Statistics-sync-interval;
                  mandatory true;
                  description
                    "Interval how often statistics sychronization
                   takes place";
                }
              }  // container statistics-synchronization
    
              leaf exposed-interface-sync-direction {
                type Xlnc-sync-dir;
                description
                  "Synchronization direction for an exposed
                 interface.";
              }
    
              leaf interface-name {
                type xr:Interface-name;
                description "Interface name";
              }
            }  // list exposed-interface
          }  // container exposed-interfaces
    
          container statistics-synchronization {
            presence
              "Indicates a statistics-synchronization node is configured.";
            description
              "Configure synchronization of interface
             statistics between IOS-XR and Linux";
            leaf direction {
              type Xlnc-sync-dir;
              mandatory true;
              description
                "Specify the direction in which statistics
               sychronization should be performed. Currently
               the only supported value is FromXR";
            }
    
            leaf interval {
              type Statistics-sync-interval;
              mandatory true;
              description
                "Interval how often statistics sychronization
               takes place";
            }
          }  // container statistics-synchronization
    
          container vrf-names {
            description "Table of VRF names";
            list vrf-name {
              key "vrf-name";
              description "VRF name";
              container address-families {
                description
                  "Table of address families";
                list address-family {
                  key "address-family";
                  description
                    "IP address family";
                  container traffic-protection {
                    description
                      "Traffic Protection configuration";
                    container service-protocol-local-port-nums {
                      description
                        "Container for Traffic Protection Services";
                      grouping SERVICE-CONTENT {
                        description
                          "SERVICE CONTENT";
                        container rules-table {
                          description
                            "Container for Traffic Protection Rule";
                          grouping RULE-CONTENT {
                            description
                              "RULE CONTENT";
                            leaf rule-action {
                              type Xlnc-protection-action;
                              mandatory true;
                              description
                                "rule action";
                            }
                          }  // grouping RULE-CONTENT
    
                          grouping REMOTE-ADDRESS-LEAF {
                            description
                              "REMOTE ADDRESS LEAF";
                            leaf remote-address {
                              type inet:ip-prefix;
                              description
                                "remote prefix/length";
                            }
                          }  // grouping REMOTE-ADDRESS-LEAF
    
                          grouping LOCAL-ADDRESS-LEAF {
                            description
                              "LOCAL ADDRESS LEAF";
                            leaf local-address {
                              type inet:ip-prefix;
                              description
                                "local prefix/length";
                            }
                          }  // grouping LOCAL-ADDRESS-LEAF
    
                          grouping INTERFACE-NAME-LEAF {
                            description
                              "INTERFACE NAME LEAF";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "interface name";
                            }
                          }  // grouping INTERFACE-NAME-LEAF
                          list rule-local-address {
                            key "local-address";
                            description
                              "Represents a single Traffic Protection
                             Rule, defining an exception to the
                             parent Service's default action.";
                            uses LOCAL-ADDRESS-LEAF;
    
                            uses RULE-CONTENT;
                          }  // list rule-local-address
    
                          list rule-interface-name {
                            key "interface-name";
                            description
                              "Represents a single Traffic Protection
                             Rule, defining an exception to the
                             parent Service's default action.";
                            uses INTERFACE-NAME-LEAF;
    
                            uses RULE-CONTENT;
                          }  // list rule-interface-name
    
                          list rule-remote-address {
                            key "remote-address";
                            description
                              "Represents a single Traffic Protection
                             Rule, defining an exception to the
                             parent Service's default action.";
                            uses REMOTE-ADDRESS-LEAF;
    
                            uses RULE-CONTENT;
                          }  // list rule-remote-address
    
                          list rule-remote-address-local-address {
                            key "remote-address local-address";
                            description
                              "Represents a single Traffic Protection
                             Rule, defining an exception to the
                             parent Service's default action.";
                            uses REMOTE-ADDRESS-LEAF;
    
                            uses LOCAL-ADDRESS-LEAF;
    
                            uses RULE-CONTENT;
                          }  // list rule-remote-address-local-address
    
                          list rule-remote-address-interface-name {
                            key "remote-address interface-name";
                            description
                              "Represents a single Traffic Protection
                             Rule, defining an exception to the
                             parent Service's default action.";
                            uses REMOTE-ADDRESS-LEAF;
    
                            uses INTERFACE-NAME-LEAF;
    
                            uses RULE-CONTENT;
                          }  // list rule-remote-address-interface-name
    
                          list rule-local-address-interface-name {
                            key "local-address interface-name";
                            description
                              "Represents a single Traffic Protection
                             Rule, defining an exception to the
                             parent Service's default action.";
                            uses LOCAL-ADDRESS-LEAF;
    
                            uses INTERFACE-NAME-LEAF;
    
                            uses RULE-CONTENT;
                          }  // list rule-local-address-interface-name
    
                          list rule-remote-address-local-address-interface-name {
                            key "remote-address local-address interface-name";
                            description
                              "Represents a single Traffic Protection
                             Rule, defining an exception to the
                             parent Service's default action.";
                            uses REMOTE-ADDRESS-LEAF;
    
                            uses LOCAL-ADDRESS-LEAF;
    
                            uses INTERFACE-NAME-LEAF;
    
                            uses RULE-CONTENT;
                          }  // list rule-remote-address-local-address-interface-name
                        }  // container rules-table
    
                        leaf service-default-action {
                          type Xlnc-protection-action;
                          description
                            "Indicates the default action to be taken
                           for traffic this Traffic Protection
                           Service.";
                        }
                      }  // grouping SERVICE-CONTENT
                      list service-protocol-local-port-num {
                        key "protocol local-port-num";
                        description
                          "A single Traffic Protection Service,
                         defining a L4 protocol and local port
                         value.";
                        leaf protocol {
                          type L4-proto-family;
                          description
                            "L4 protocol";
                        }
    
                        leaf local-port-num {
                          type xr:Cisco-ios-xr-port-number;
                          description
                            "Local port number";
                        }
    
                        uses SERVICE-CONTENT;
                      }  // list service-protocol-local-port-num
    
                      list service-protocol-local-port-all {
                        key "protocol local-port-all";
                        description
                          "A single Traffic Protection Service,
                         defining a L4 protocol and local port
                         value.";
                        leaf protocol {
                          type L4-proto-family;
                          description
                            "L4 protocol";
                        }
    
                        leaf local-port-all {
                          type xr:Cisco-ios-xr-string;
                          description
                            "All ports";
                        }
    
                        uses SERVICE-CONTENT;
                      }  // list service-protocol-local-port-all
                    }  // container service-protocol-local-port-nums
                  }  // container traffic-protection
    
                  leaf address-family {
                    type Addr-family;
                    description
                      "IP address family";
                  }
                }  // list address-family
              }  // container address-families
    
              leaf vrf-name {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description "VRF name";
              }
            }  // list vrf-name
          }  // container vrf-names
        }  // container linux-networking
      }  // module Cisco-IOS-XR-linux-xlnc-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.