This module contains a collection of YANG definitions for app-hosting configuration data. Copyright (c) 2019-2020 by Cisco Syste...
Version: 2021-07-01
module Cisco-IOS-XE-app-hosting-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XE-app-hosting-cfg"; prefix app-hosting-ios-xe-cfg; import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } import cisco-semver { prefix cisco-semver; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 W Tasman Drive San Jose, CA 95134 Tel: +1 1800 553-NETS E-mail: cs-yang@cisco.com"; description "This module contains a collection of YANG definitions for app-hosting configuration data. Copyright (c) 2019-2020 by Cisco Systems, Inc. All rights reserved."; revision "2021-07-01" { description "- Increased limits on the amount of persistent disk space and the amount of memory reserved for an application."; reference "2.6.0"; } revision "2021-03-01" { description "- Add support for multiple AppGigabitEthernet ports configuration - Add support for CAM module interface"; reference "2.5.0"; } revision "2020-11-01" { description "- Added static IPV6 support - Added CPU percent that is relative to IOX total CPU units - Added support for docker package runtime options."; reference "2.4.0"; } revision "2020-03-01" { description "- Suppress app-hosting dynamic resources"; reference "2.3.1"; } revision "2019-11-01" { description "- Add app-hosting dynamic resources - Add support for mac-forwarding and mirroring on guest interface - Add support for assigning usb-port label"; reference "2.3.0"; } revision "2019-06-11" { description "- Add support for Device USB information - Add docker run-time options - Rename disk size parameter and change description - Added semantic version - Add support for access guest interface number"; reference "2.2.0"; } revision "2019-01-11" { description "- Adding KR port interface configuration in app-hosting - Cleaned up spelling errors in descriptions - Add start - Rename the KR port to App Interface - Add a new leaf to remove the app interface mode setting"; reference "2.1.0"; } revision "2018-06-14" { description "Rename virtual service to app-hosting"; reference "2.0.0"; } revision "2018-01-01" { description "Initial revision"; reference "1.0.0"; } cisco-semver:module-version "2.6.0"; cisco-semver:module-version "2.5.0"; cisco-semver:module-version "2.4.0"; cisco-semver:module-version "2.3.1"; cisco-semver:module-version "2.3.0"; cisco-semver:module-version "2.2.0"; cisco-semver:module-version "2.1.0"; cisco-semver:module-version "2.0.0"; cisco-semver:module-version "1.0.0"; typedef im-app-appintf-mode { type enumeration { enum "appintf-not-set" { value 0; description "App interface port is not set"; } enum "appintf-trunk" { value 1; description "App interface port configure for trunk mode"; } enum "appintf-vlan" { value 2; description "App interface port configuration for VLAN access mode"; } enum "appintf-access" { value 3; description "App interface port configuration for access mode"; } } description "App interface mode type"; } grouping im-app-resource { description "Application Resource information"; leaf profile-name { type string { length "0..64"; pattern '[0-9a-zA-Z\-_]*'; } default ""; description "Resource profile name"; } leaf vcpu { type uint16; must '../vcpu <= 65535' { error-message "must be <= 65535"; error-app-tag "must-violation"; } description "Amount of VCPUs allocated for the application"; } leaf cpu-units { type uint16 { range "0 .. 20000"; } must '../cpu-units <= 20000' { error-message "must be <= 20000"; error-app-tag "must-violation"; } default "0"; description "Amount of reserved cpu in unit"; } leaf memory-capacity-mb { type uint16 { range "0 .. 16384"; } default "0"; description "Amount of reserved memory in MB"; } leaf disk-size-mb { type uint16 { range "0 .. 65535"; } default "0"; description "IOX Application persistent disk size in MB"; } leaf pkg-profile-name { type string { length "0..64"; pattern '[0-9a-zA-Z\-_]*'; } description "Resource package profile name"; } leaf cpu-percent { type uint8 { range "0 .. 100"; } description "Percent of IOX total CPU units"; } } // grouping im-app-resource grouping im-app-docker-run-opts { description "Multi-line docker run-time options"; leaf line-index { type uint16 { range "1 .. 30"; } description "Index number"; } leaf line-run-opts { type string { length "0..235"; } description "Docker run-time options"; } } // grouping im-app-docker-run-opts grouping im-app-device { description "Application device information"; leaf device-name { type string { length "0..32"; pattern '[0-9a-zA-Z]*'; } default ""; description "device name"; } } // grouping im-app-device grouping im-app-mac { description "Application MAC information"; leaf mac-address { type yang:mac-address; description "MAC address"; } leaf mac-interface-name { type string { length "0..32"; pattern '[0-9a-zA-Z]*'; } default ""; description "MAC interface name"; } } // grouping im-app-mac grouping im-app-vnic-param { description "Application L2 interface Parameters"; leaf trunk-if-num { type uint8 { range "0 .. 63"; } description "Application L2 interface number for trunk mode in range of 0..63"; } leaf access-if-num { type uint8 { range "0 .. 63"; } description "Application L2 interface number for access mode in range of 0..63"; } leaf mac-fwd-enable { type boolean; default "false"; description "Enable or Disable MAC forwarding mode on bridge"; } leaf mirror-enable { type boolean; default "false"; description "Enable or Disable Mirroring mode on bridge"; } } // grouping im-app-vnic-param grouping im-app-vnic-vlan-param { description "VLAN access mode parameters for application L2 interface"; leaf guest-if { type uint8 { range "0 .. 63"; } description "VLAN access mode application L2 interface number in range of 0..63"; } leaf guest-ip { type inet:ip-address; description "Guest interface IP address"; } leaf guest-netmask { type inet:ip-address; description "Guest IP netmask"; } leaf guest-ipv6 { type inet:ipv6-address; description "Guest interface IPV6 address"; } leaf guest-ipv6-prefix-len { type uint8 { range "0 .. 128"; } description "Guest interface IPV6 prefix length"; } leaf mac-fwd-enable { type boolean; default "false"; description "Enable or Disable MAC forwarding mode on bridge"; } leaf mirror-enable { type boolean; default "false"; description "Enable or Disable Mirroring mode on bridge"; } } // grouping im-app-vnic-vlan-param grouping im-app-vnic-mgmt-vlan { description "VLAN access mode parameters for application L2 interface using management interface"; leaf vlan-id { type uint16 { range "1 .. 4094"; } description "Application L2 interface using management interface VLAN ID in range of 1..4094"; } container mgmt-vlan-param { description "Application L2 interface using management interface VLAN parameters"; uses app-hosting-ios-xe-cfg:im-app-vnic-vlan-param; } // container mgmt-vlan-param } // grouping im-app-vnic-mgmt-vlan grouping im-app-vnic-mgmt { description "Application L2 interface using management interface parameters"; leaf vlan-mode { type im-app-appintf-mode; default "appintf-not-set"; description "Application L2 interface using management interface mode configuration"; } leaf trunk-if-num { type uint8 { range "0 .. 63"; } description "Interface number for trunk mode in range of 0..63"; } leaf access-if-num { type uint8 { range "0 .. 63"; } description "Interface number for access mode in range of 0..63"; } leaf mac-fwd-enable { type boolean; default "false"; description "Enable or Disable MAC forwarding mode on bridge"; } leaf mirror-enable { type boolean; default "false"; description "Enable or Disable Mirroring mode on bridge"; } } // grouping im-app-vnic-mgmt grouping im-app-vnic-vlan { description "VLAN access mode parameters for application L2 interface"; leaf vlan-id { type uint16 { range "1 .. 4094"; } description "Application L2 interface VLAN ID in range of 1..4094"; } container appintf-vlan-param { description "Application L2 interface VLAN parameters"; uses app-hosting-ios-xe-cfg:im-app-vnic-vlan-param; } // container appintf-vlan-param } // grouping im-app-vnic-vlan grouping im-app-vnic { description "Application L2 interface configuration"; leaf port-number { type uint16 { range "0 .. 15"; } description "Port Number identifying the application L2 interface"; } leaf vlan-mode { type im-app-appintf-mode; default "appintf-not-set"; description "Application L2 interface mode configuration"; } container appintf-param { description "Application L2 interface parameters"; uses app-hosting-ios-xe-cfg:im-app-vnic-param; } // container appintf-param container vlan-nodes { description "List of Application L2 interface rules for VLAN access mode"; list vlan-node { key "vlan-id"; description "Application L2 interface rules for VLAN access mode"; uses app-hosting-ios-xe-cfg:im-app-vnic-vlan; } // list vlan-node } // container vlan-nodes } // grouping im-app-vnic grouping im-app-network { description "Application Network information"; leaf vnic-gateway-0 { type string { length "1..2"; pattern '[0-9]*'; } description "Vnic gateway"; } leaf virtualportgroup-guest-interface-name-1 { type string { length "1"; pattern '[0-3]*'; } description "VirtualPortGroup guest interface name as number in range of 0 .. 3"; } leaf virtualportgroup-guest-ip-address-1 { type inet:ip-address; description "Guest interface IP address"; } leaf virtualportgroup-guest-ip-netmask-1 { type inet:ip-address; description "Guest IP netmask"; } leaf virtualportgroup-application-default-gateway-1 { type inet:ip-address; description "VirtualPortGroup application default gateway IP address"; } leaf nameserver-0 { type inet:ip-address; description "Name server IP address"; } leaf virtualportgroup-guest-interface-default-gateway-1 { type uint8; must '../virtualportgroup-guest-interface-default-gateway-1 <= 3' { error-message "must be <= 3"; error-app-tag "must-violation"; } description "VirtualPortGroup default gateway guest interface"; } leaf vnic-gateway-1 { type string { length "1..2"; pattern '[0-9]*'; } description "Vnic gateway"; } leaf virtualportgroup-guest-interface-name-2 { type string { length "1"; pattern '[0-3]*'; } description "VirtualPortGroup guest interface name as number in range of 0 .. 3"; } leaf virtualportgroup-guest-ip-address-2 { type inet:ip-address; description "Guest interface IP address"; } leaf virtualportgroup-guest-ip-netmask-2 { type inet:ip-address; description "Guest IP netmask"; } leaf virtualportgroup-application-gateway-2 { type inet:ip-address; description "VirtualPortGroup application gateway IP address"; } leaf nameserver-1 { type inet:ip-address; description "Name server IP address"; } leaf virtualportgroup-guest-interface-default-gateway-2 { type uint8; must '../virtualportgroup-guest-interface-default-gateway-2 <= 1 ' { error-message "must be <= 1"; error-app-tag "must-violation"; } description "VirtualPortGroup default gateway guest interface"; } leaf vnic-gateway-2 { type string { length "1..2"; pattern '[0-9]*'; } description "Vnic gateway"; } leaf virtualportgroup-guest-interface-name-3 { type string { length "1"; pattern '[0-3]*'; } description "VirtualPortGroup guest interface name as number in range of 0 .. 3"; } leaf virtualportgroup-guest-ip-address-3 { type inet:ip-address; description "Guest interface IP address"; } leaf virtualportgroup-guest-ip-netmask-3 { type inet:ip-address; description "Guest IP netmask"; } leaf virtualportgroup-application-gateway-3 { type inet:ip-address; description "VirtualPortGroup application gateway IP address"; } leaf nameserver2 { type inet:ip-address; description "Name server IP address"; } leaf virtualportgroup-guest-interface-default-gateway-3 { type uint8; must '../virtualportgroup-guest-interface-default-gateway-3 <= 1' { error-message "must be <= 1"; error-app-tag "must-violation"; } description "VirtualPortGroup default gateway guest interface"; } leaf vnic-gateway-3 { type string { length "1..2"; pattern '[0-9]*'; } description "Vnic gateway"; } leaf virtualportgroup-guest-interface-name-4 { type string { length "1"; pattern '[0-3]*'; } description "VirtualPortGroup guest interface name as number in range of 0 .. 3"; } leaf virtualportgroup-guest-ip-address-4 { type inet:ip-address; description "Guest interface IP address"; } leaf virtualportgroup-guest-ip-netmask-4 { type inet:ip-address; description "Guest IP netmask"; } leaf virtualportgroup-application-gateway-4 { type inet:ip-address; description "VirtualPortGroup application gateway IP address"; } leaf nameserver-3 { type inet:ip-address; description "Name server IP address"; } leaf virtualportgroup-guest-interface-default-gateway-4 { type uint8; must '../virtualportgroup-guest-interface-default-gateway-4 <= 1' { error-message "must be <= 1"; error-app-tag "must-violation"; } description "VirtualPortGroup default gateway guest interface"; } leaf management-interface-name { type string { length "1"; pattern '[0-3]*'; } description "Management port guest interface name as number in range of 0 .. 3"; } leaf management-guest-ip-address { type inet:ip-address; description "Guest management port interface IP address"; } leaf management-guest-ip-netmask { type inet:ip-address; description "Guest management port interface IP netmask"; } leaf management-application-gateway { type inet:ip-address; description "Management port application gateway IP address"; } leaf nameseerver4 { type inet:ip-address; description "Name server IP address"; } leaf management-guest-interface-default-gateway { type uint8; must '../management-guest-interface-default-gateway <= 1' { error-message "must be <= 1"; error-app-tag "must-violation"; } description "Management port default gateway guest interface"; } container application-mac-address { description "Application MAC address"; uses app-hosting-ios-xe-cfg:im-app-mac; } // container application-mac-address leaf appintf-guest-interface-number { type uint8; must '../appintf-guest-interface-number <= 63' { error-message "Guest interface must be in range of 0..63"; error-app-tag "must-violation"; } description "Guest interface port number for trunk mode in range of 0..63"; } leaf appintf-vlan-mode { type im-app-appintf-mode; default "appintf-not-set"; description "App interface mode configuration"; } leaf appintf-access-interface-number { type uint8; must '../appintf-access-interface-number <= 63' { error-message "Access interface must be in range of 0..63"; error-app-tag "must-violation"; } description "Guest interface port number for access mode in range of 0..63"; } leaf mac-forward-enable { type boolean; default "false"; description "Enable or Disable MAC forwarding mode on bridge"; } leaf mirror-enable { type boolean; default "false"; description "Enable or Disable Mirroring mode on bridge"; } leaf vpg-guest-ipv6-addr-1 { type inet:ipv6-address; description "Guest interface IPV6 address"; } leaf ipv6-prefix-len-1 { type uint8 { range "0 .. 128"; } description "Guest interface IPV6 prefix length"; } leaf vpg-guest-ipv6-addr-2 { type inet:ipv6-address; description "Guest interface IPV6 address"; } leaf ipv6-prefix-len-2 { type uint8 { range "0 .. 128"; } description "Guest interface IPV6 prefix length"; } leaf vpg-guest-ipv6-addr-3 { type inet:ipv6-address; description "Guest interface IPV6 address"; } leaf ipv6-prefix-len-3 { type uint8 { range "0 .. 128"; } description "Guest interface IPV6 prefix length"; } leaf vpg-guest-ipv6-addr-4 { type inet:ipv6-address; description "Guest interface IPV6 address"; } leaf ipv6-prefix-len-4 { type uint8 { range "0 .. 128"; } description "Guest interface IPV6 prefix length"; } leaf mgmt-guest-ipv6-addr { type inet:ipv6-address; description "Guest management port interface IPV6 address"; } leaf mgmt-ipv6-prefix-len { type uint8 { range "0 .. 128"; } description "Guest management port interface IPV6 prefix length"; } leaf vpg-app-default-ipv6-gw { type inet:ipv6-address; description "VirtualPortGroup application IPV6 default gateway"; } leaf vpg-guest-if-ipv6-def-gw { type uint8 { range "0 .. 31"; } description "Guest interface of IPV6 default gateway"; } } // grouping im-app-network grouping application-im-app-intf-vlan-rule { description "App interface VLAN access to guest interface table mapping"; leaf vlan-id { type uint16; must '(../vlan-id >= 1 and ../vlan-id <= 4094)' { error-message "VLAN ID must be in range of 1..4094"; error-app-tag "must-violation"; } description "VLAN ID in range of 1..4094"; } leaf guest-interface { type uint8; must '../guest-interface <= 63' { error-message "Guest interface must be in range of 0..63"; error-app-tag "must-violation"; } description "Guest interface number in range of 0..63"; } leaf guest-ip { type inet:ip-address; description "Guest interface IP address"; } leaf guest-ipnetmask { type inet:ip-address; description "Guest IP netmask"; } leaf mac-forward-enable { type boolean; default "false"; description "Enable or Disable MAC forwarding mode on bridge"; } leaf mirror-enable { type boolean; default "false"; description "Enable or Disable Mirroring mode on bridge"; } leaf guest-ipv6 { type inet:ipv6-address; description "Guest interface IPV6 address"; } leaf guest-ipv6-prefix-len { type uint8 { range "0 .. 128"; } description "Guest interface IPV6 prefix length"; } } // grouping application-im-app-intf-vlan-rule grouping application-im-app-device-usb { description "App device details"; leaf usb-port-num { type uint16; description "USB port number"; } leaf usb-port-label { type string { length "0..63"; pattern '[0-9a-zA-Z_]*'; } description "USB port label"; } } // grouping application-im-app-device-usb grouping im-app-vnic-module { description "Application interface configuration for module network"; leaf guest-if { type uint8 { range "0 .. 63"; } description "Application interface number connected to module"; } leaf guest-ip { type inet:ip-address; description "Guest interface IP address"; } leaf guest-netmask { type inet:ip-address; description "Guest IP netmask"; } leaf guest-ipv6 { type inet:ipv6-address; description "Guest interface IPV6 address"; } leaf guest-ipv6-prefix-len { type uint8 { range "0 .. 128"; } description "Guest interface IPV6 prefix length"; } } // grouping im-app-vnic-module grouping application-information { description "Application Information"; leaf application-name { type string { length "1..40"; pattern '[0-9a-zA-Z_]*'; } description "Application name"; } container application-network-resource { description "Application Network Resource Information"; uses app-hosting-ios-xe-cfg:im-app-network; } // container application-network-resource container application-resource-profile { description "Application Resource profile"; uses app-hosting-ios-xe-cfg:im-app-resource; } // container application-resource-profile container application-attached-device { description "Application attached device"; uses app-hosting-ios-xe-cfg:im-app-device; } // container application-attached-device container appintf-vlan-rules { description "App interface rules for VLAN access mode"; list appintf-vlan-rule { key "vlan-id"; description "List of App interface rules for VLAN access mode"; uses app-hosting-ios-xe-cfg:application-im-app-intf-vlan-rule; } // list appintf-vlan-rule } // container appintf-vlan-rules leaf start { type boolean; description "Application run state"; } container dev-usbs { description "Device USB details for this app"; list dev-usb { key "usb-port-num"; description "List of USB ports that are associated with this app"; uses app-hosting-ios-xe-cfg:application-im-app-device-usb; } // list dev-usb } // container dev-usbs leaf docker-resource { type boolean; default "false"; description "Enable or Disable docker resources"; } container run-optss { description "List of docker run-time options"; list run-opts { key "line-index"; description "Docker run-time options"; uses app-hosting-ios-xe-cfg:im-app-docker-run-opts; } // list run-opts } // container run-optss leaf prepend-pkg-opts { type boolean; description "Add docker runtime options specified in the app package file to the beginning of the docker runtime options"; } container appintf-mgmt { description "Application l2 interface using management interface"; uses app-hosting-ios-xe-cfg:im-app-vnic-mgmt; } // container appintf-mgmt container appintf-mgmt-vlans { description "List of Application L2 interfaces for VLAN access mode using management interface"; list appintf-mgmt-vlan { key "vlan-id"; description "Application L2 interface for VLAN access mode using management interface"; uses app-hosting-ios-xe-cfg:im-app-vnic-mgmt-vlan; } // list appintf-mgmt-vlan } // container appintf-mgmt-vlans container appintf-ports { description "List of Application L2 interfaces for VLAN access mode"; list appintf-port { key "port-number"; description "Application L2 interface for VLAN access mode"; uses app-hosting-ios-xe-cfg:im-app-vnic; } // list appintf-port } // container appintf-ports container app-cam-gintfs { description "List of Application guest interfaces for CGR ACT Module (CAM)"; list app-cam-gintf { key "guest-if"; description "Application guest interface for module CAM"; uses app-hosting-ios-xe-cfg:im-app-vnic-module; } // list app-cam-gintf } // container app-cam-gintfs } // grouping application-information grouping application-hosting-infra-record { description "Application hosting Infra Record"; leaf application-hosting-infra-enable-statue { type uint8; must '../application-hosting-infra-enable-statue <= 1' { error-message "must be <= 1"; error-app-tag "must-violation"; } default "0"; description "Application hosting Infra enable status"; } leaf sign-verification { type boolean; description "Signature verification of all applications"; } } // grouping application-hosting-infra-record container app-hosting-cfg-data { description "app-hosting configuration data"; container apps { description "Application list"; list app { key "application-name"; description "Application info"; uses app-hosting-ios-xe-cfg:application-information; } // list app } // container apps container controls { presence "Controls"; description "App-hosting control"; uses app-hosting-ios-xe-cfg:application-hosting-infra-record; } // container controls } // container app-hosting-cfg-data } // module Cisco-IOS-XE-app-hosting-cfg
© 2023 YumaWorks, Inc. All rights reserved.