Network quality analysis.
Version: 2021-04-29
module huawei-nqa { yang-version 1; namespace "urn:huawei:yang:huawei-nqa"; prefix nqa; import huawei-pub-type { prefix pub-type; } import huawei-extension { prefix ext; } import huawei-ifm { prefix ifm; } import huawei-ifm-trunk { prefix ifm-trunk; } include huawei-nqa-type; include huawei-nqa-global; include huawei-nqa-server; include huawei-nqa-instance; include huawei-nqa-reflector; include huawei-nqa-record; include huawei-nqa-test-flow; organization "Huawei Technologies Co., Ltd."; contact "Huawei Industrial Base Bantian, Longgang Shenzhen 518129 People's Republic of China Website: http://www.huawei.com Email: support@huawei.com"; description "Network quality analysis."; revision "2021-04-29" { description "Add ethernet-service test instance and test flow and ethernet-service-results. Modify reflector."; reference "Huawei private."; } revision "2021-03-19" { description "Modify default-value of probe-count, jitter-packet-num, and data-size in a jitter test instance."; reference "Huawei private."; } revision "2020-09-24" { description "Add MAC ping test instance and modify jitter-results."; reference "Huawei private."; } revision "2020-07-04" { description "Add BIER IPv6 OAM."; reference "Huawei private."; } revision "2020-06-30" { description "Add rpc for nqa execution policy."; reference "Huawei private."; } revision "2019-10-25" { description "Initial revision."; reference "Huawei private."; } ext:task-name "sla"; container nqa { description "Network quality analysis (NQA) service."; container global { description "Configure NQA global configuration."; uses nqa:global-type { refine vxlan-echo-v4/source-ip-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'LoopBack'"; } } } // container global container server { description "Configure NQA server list."; uses nqa:server-type; } // container server container testflows { description "Configure test flow list."; uses nqa:test-flows-type; } // container testflows container reflectors { description "Configure reflector list."; uses nqa:reflectors-type { refine reflector/if-name { must "(/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Ethernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Virtual-Ethernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Pos' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '200GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '40GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GEBrief' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '25GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '4x10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'XGigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50|100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'FlexE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '400GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Global-VE') or ((/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Eth-Trunk' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Ip-Trunk') and not(/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm-trunk:trunk/ifm-trunk:members/ifm-trunk:member/ifm-trunk:name))"; } } } // container reflectors container instances { description "Configure NQA test instance list."; uses nqa:instances-type { refine instance/type/lsp-jitter/lsp-jitter-input/lsp-protocol/te/te-lsp-jitter/tunnel-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Tunnel'"; } refine instance/type/icmp/icmp-input/out-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'NULL' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'E1' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Fabric-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Stack-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Atm-Bundle' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Ima-group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos-Trunk' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-Ima-Group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FCoE-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FC' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Remote-Ap' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ServiceIf' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ATM' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-200GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50|100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Virtual-if' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-400G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-10G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Lmpif' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'HP-GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'OpticalAmplifier'"; } refine instance/type/icmp/icmp-input/fwd-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Atm-Bundle' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Virtual-Ethernet' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'MTunnel' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Tunnel' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'LoopBack' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Vbdif' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Serial' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Mp-group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-Mp-Group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Trunk-Serial' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Fabric-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Stack-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos-Trunk' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'NULL' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Ima-group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-Ima-Group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FCoE-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FC' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Remote-Ap' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ServiceIf' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ATM' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-200GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50|100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-VE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Virtual-if' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-400G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-10G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Lmpif' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'HP-GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'OpticalAmplifier'"; } refine instance/type/path-mtu/path-mtu-input/out-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'NULL' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'E1' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Fabric-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Stack-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Atm-Bundle' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Ima-group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos-Trunk' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-Ima-Group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FCoE-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FC' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Remote-Ap' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ServiceIf' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ATM' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-200GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50|100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Virtual-if' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-400G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-10G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Lmpif' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'HP-GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'OpticalAmplifier'"; } refine instance/type/arp-ping-ip/arp-ping-ip-input/out-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Ethernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Eth-Trunk' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Vlanif' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Virtual-Ethernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '200GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '40GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GEBrief' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'MEth' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Vbdif' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Global-VE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '25GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50|100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'FlexE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '400GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '4x10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'XGigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Lmpif'"; } refine instance/type/jitter/jitter-input/out-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'NULL' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'E1' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Fabric-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Stack-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Atm-Bundle' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Ima-group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos-Trunk' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-Ima-Group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FCoE-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FC' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Remote-Ap' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ServiceIf' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ATM' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-200GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50|100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Virtual-if' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-400G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-10G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Lmpif' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'HP-GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'OpticalAmplifier'"; } refine instance/type/trace/trace-input/out-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'NULL' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'E1' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Fabric-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Stack-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Atm-Bundle' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Ima-group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos-Trunk' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-Ima-Group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FCoE-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FC' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Remote-Ap' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ServiceIf' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ATM' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-200GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50|100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Virtual-if' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-400G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-10G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Lmpif' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'HP-GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'OpticalAmplifier'"; } refine instance/type/mac-ping/mac-ping-input/source-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Ethernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '200GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '40GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Eth-Trunk' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GEBrief' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '25GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '4x10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50|100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '400GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'FlexE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'XGigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Lmpif'"; } refine instance/type/icmp-jitter/icmp-jitter-input/out-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'NULL' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'E1' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Fabric-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Stack-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Atm-Bundle' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Ima-group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Cpos-Trunk' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Global-Ima-Group' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FCoE-Port' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FC' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Remote-Ap' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ServiceIf' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'ATM' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-200GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-50|100G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Virtual-if' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-400G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'FlexE-10G' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'Lmpif' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'HP-GE' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type != 'OpticalAmplifier'"; } refine instance/type/ethernet-service/ethernet-service-input/fwd-if-name { must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Ethernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Eth-Trunk' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '200GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '40GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GEBrief' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'GigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '25GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '4x10GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'XGigabitEthernet' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '50|100GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'FlexE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = '400GE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Global-VE' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type = 'Vbdif'"; } } } // container instances container record { config false; description "Statistics of NQA test instance test record table."; uses nqa:record-type; } // container record } // container nqa rpc test-instance-execution { ext:node-ref "/nqa:nqa/nqa:instances/nqa:instance"; description "The test instance execution."; input { leaf admin-name { type leafref { path "/nqa/instances/instance/admin-name"; } mandatory true; description "Administrator name."; } leaf test-name { type leafref { path "/nqa/instances/instance/test-name"; } mandatory true; description "Test name."; } choice execution-policy { description "The test instance start policy."; case start { description "Start the test."; choice start-type { description "The test instance start type."; case start-now { description "Start the test now."; leaf start-now { type empty; mandatory true; description "Receive the command then start the test."; } choice start-now-end-type { description "Test instance end type."; case at { description "Stop the test at the specified time."; leaf start-now-end-time { type pub-type:time; mandatory true; description "The test instance end time."; } leaf start-now-end-date { type pub-type:date; description "The test instance end date."; } } // case at case delay { description "Stop the test after the specified delay time."; choice start-now-end-delay-type { mandatory true; description "The test instance end delay type."; case end-delay-time { description "The test instance end delay time."; leaf start-now-end-delay-time { type pub-type:time; description "The test instance end delay time."; } } // case end-delay-time case end-delay-seconds { description "The test instance end delay seconds."; leaf start-now-end-delay-seconds { type uint32 { range "6..86399"; } units "s"; description "The test instance end delay seconds."; } } // case end-delay-seconds } // choice start-now-end-delay-type } // case delay case lifetime { description "Stop the test after the specified life time."; choice start-now-end-lifetime-type { mandatory true; description "The test instance end lifetime type."; case lifetime-time { description "The test instance end lifetime time."; leaf start-now-end-lifetime-time { type pub-type:time; description "The test instance end lifetime time."; } } // case lifetime-time case lifetime-seconds { description "The test instance end lifetime seconds."; leaf start-now-end-lifetime-seconds { type uint32 { range "6..86399"; } units "s"; description "The test instance end lifetime seconds."; } } // case lifetime-seconds } // choice start-now-end-lifetime-type } // case lifetime } // choice start-now-end-type } // case start-now case start-at { description "Execute at the specified time."; leaf start-time { type pub-type:time; mandatory true; description "The test instance start time."; } leaf start-date { type pub-type:date; description "The test instance start date."; } choice start-at-end-type { description "Test instance end type."; case at { description "Stop the test at the specified time."; leaf start-at-end-time { type pub-type:time; mandatory true; description "The test instance end time."; } leaf start-at-end-date { type pub-type:date; description "The test instance end date."; } } // case at case delay { description "Stop the test after the specified delay time."; choice start-at-end-delay-type { mandatory true; description "The test instance end delay type."; case end-delay-time { description "The test instance end delay time."; leaf start-at-end-delay-time { type pub-type:time; description "The test instance end delay time."; } } // case end-delay-time case end-delay-seconds { description "The test instance end delay seconds."; leaf start-at-end-delay-seconds { type uint32 { range "6..86399"; } units "s"; description "The test instance end delay seconds."; } } // case end-delay-seconds } // choice start-at-end-delay-type } // case delay case lifetime { description "Stop the test after the specified life time."; choice start-at-end-lifetime-type { mandatory true; description "The test instance end lifetime type."; case lifetime-time { description "The test instance end lifetime time."; leaf start-at-end-lifetime-time { type pub-type:time; description "The test instance end lifetime time."; } } // case lifetime-time case lifetime-seconds { description "The test instance end lifetime seconds."; leaf start-at-end-lifetime-seconds { type uint32 { range "6..86399"; } units "s"; description "The test instance end lifetime seconds."; } } // case lifetime-seconds } // choice start-at-end-lifetime-type } // case lifetime } // choice start-at-end-type } // case start-at case start-delay { description "Delay some time then execute testcase."; choice start-delay-type { mandatory true; description "The test instance start delay time."; case start-delay-time { description "Execute at the specified time."; leaf start-delay-time { type pub-type:time; description "The test instance start delay time."; } } // case start-delay-time case start-delay-seconds { description "The test instance start delay seconds."; leaf start-delay-seconds { type uint32 { range "1..86399"; } units "s"; description "The test instance start delay seconds."; } } // case start-delay-seconds } // choice start-delay-type choice start-delay-end-type { description "Test instance end type."; case at { description "Stop the test at the specified time."; leaf start-delay-end-time { type pub-type:time; mandatory true; description "The test instance end time."; } leaf start-delay-end-date { type pub-type:date; description "The test instance end date."; } } // case at case delay { description "Stop the test after the specified delay time."; choice start-delay-end-delay-type { mandatory true; description "The test instance end delay type."; case end-delay-time { description "The test instance end delay time."; leaf start-delay-end-delay-time { type pub-type:time; description "The test instance end delay time."; } } // case end-delay-time case end-delay-seconds { description "The test instance end delay seconds."; leaf start-delay-end-delay-seconds { type uint32 { range "6..86399"; } units "s"; description "The test instance end delay seconds."; } } // case end-delay-seconds } // choice start-delay-end-delay-type } // case delay case lifetime { description "Stop the test after the specified life time."; choice start-delay-end-lifetime-type { mandatory true; description "The test instance end lifetime type."; case lifetime-time { description "The test instance end lifetime time."; leaf start-delay-end-lifetime-time { type pub-type:time; description "The test instance end lifetime time."; } } // case lifetime-time case lifetime-seconds { description "The test instance end lifetime seconds."; leaf start-delay-end-lifetime-seconds { type uint32 { range "6..86399"; } units "s"; description "The test instance end lifetime seconds."; } } // case lifetime-seconds } // choice start-delay-end-lifetime-type } // case lifetime } // choice start-delay-end-type } // case start-delay case start-daily { description "Execute the test instance daily."; leaf daily-start-time { type pub-type:time; mandatory true; description "Start time of daily execution."; } leaf daily-start-date { type pub-type:date; description "Start date of daily execution."; } leaf daily-end-time { type pub-type:time; mandatory true; description "End time of daily execution."; } leaf daily-end-date { type pub-type:date; description "End date of daily execution."; } } // case start-daily } // choice start-type } // case start case stop { description "Stop the test."; leaf stop { type empty; description "Stop the test."; } } // case stop case restart { description "Restart the test."; leaf restart { type empty; description "Restart the test."; } } // case restart } // choice execution-policy } } // rpc test-instance-execution } // module huawei-nqa
© 2023 YumaWorks, Inc. All rights reserved.