1<?xml version="1.0"?> 2<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> 3 <!-- domain-related definitions used in multiple grammars --> 4 <include href="basictypes.rng"/> 5 <include href="storagecommon.rng"/> 6 <include href="networkcommon.rng"/> 7 <include href="cputypes.rng"/> 8 <include href="nwfilter_params.rng"/> 9 10 <!-- 11 description and title element, may be placed anywhere under the root 12 --> 13 <define name="description"> 14 <element name="description"> 15 <text/> 16 </element> 17 </define> 18 19 <define name="title"> 20 <element name="title"> 21 <ref name="objectNameWithSlash"/> 22 </element> 23 </define> 24 25 <define name="createMode"> 26 <data type="unsignedInt"> 27 <param name="pattern">0[0-7]{3}|[0-7]{1,3}</param> 28 </data> 29 </define> 30 31 <!-- 32 We handle only document defining a domain 33 --> 34 <define name="domain"> 35 <element name="domain"> 36 <ref name="hvs"/> 37 <interleave> 38 <ref name="ids"/> 39 <optional> 40 <ref name="title"/> 41 </optional> 42 <optional> 43 <ref name="description"/> 44 </optional> 45 <optional> 46 <ref name="metadata"/> 47 </optional> 48 <optional> 49 <ref name="guestcpu"/> 50 </optional> 51 <zeroOrMore> 52 <ref name="sysinfo"/> 53 </zeroOrMore> 54 <ref name="os"/> 55 <ref name="clock"/> 56 <ref name="resources"/> 57 <ref name="features"/> 58 <ref name="events"/> 59 <optional> 60 <ref name="pm"/> 61 </optional> 62 <optional> 63 <ref name="perf"/> 64 </optional> 65 <optional> 66 <ref name="idmap"/> 67 </optional> 68 <optional> 69 <ref name="devices"/> 70 </optional> 71 <zeroOrMore> 72 <ref name="seclabel"/> 73 </zeroOrMore> 74 <optional> 75 <ref name="qemucmdline"/> 76 </optional> 77 <optional> 78 <ref name="qemucapabilities"/> 79 </optional> 80 <optional> 81 <ref name="qemudeprecation"/> 82 </optional> 83 <optional> 84 <ref name="lxcsharens"/> 85 </optional> 86 <optional> 87 <ref name="keywrap"/> 88 </optional> 89 <optional> 90 <ref name="launchSecurity"/> 91 </optional> 92 <optional> 93 <ref name="bhyvecmdline"/> 94 </optional> 95 <optional> 96 <ref name="xencmdline"/> 97 </optional> 98 <optional> 99 <ref name="vmwaredatacenterpath"/> 100 </optional> 101 </interleave> 102 </element> 103 </define> 104 <define name="seclabel"> 105 <element name="seclabel"> 106 <optional> 107 <attribute name="model"> 108 <text/> 109 </attribute> 110 </optional> 111 <choice> 112 <group> 113 <!-- with dynamic label (default), relabel must be yes, baselabel 114 is optional, and label and imagelabel are output-only --> 115 <optional> 116 <attribute name="type"> 117 <value>dynamic</value> 118 </attribute> 119 </optional> 120 <optional> 121 <attribute name="relabel"> 122 <value>yes</value> 123 </attribute> 124 </optional> 125 <interleave> 126 <optional> 127 <element name="label"> 128 <text/> 129 </element> 130 </optional> 131 <optional> 132 <element name="imagelabel"> 133 <text/> 134 </element> 135 </optional> 136 <optional> 137 <element name="baselabel"> 138 <text/> 139 </element> 140 </optional> 141 </interleave> 142 </group> 143 <group> 144 <!-- with static label, relabel can be either format (default 145 no), label is required, imagelabel is output-only, and no 146 baselabel is present --> 147 <attribute name="type"> 148 <value>static</value> 149 </attribute> 150 <optional> 151 <attribute name="relabel"> 152 <ref name="virYesNo"/> 153 </attribute> 154 </optional> 155 <interleave> 156 <element name="label"> 157 <text/> 158 </element> 159 <optional> 160 <element name="imagelabel"> 161 <text/> 162 </element> 163 </optional> 164 </interleave> 165 </group> 166 <group> 167 <!-- with none, relabel must be no if present --> 168 <attribute name="type"> 169 <value>none</value> 170 </attribute> 171 <optional> 172 <attribute name="relabel"> 173 <value>no</value> 174 </attribute> 175 </optional> 176 </group> 177 </choice> 178 </element> 179 </define> 180 <define name="devSeclabel"> 181 <element name="seclabel"> 182 <!-- A per-device seclabel override is more limited, either 183 relabel=no or a <label> must be present on input; 184 output also can include labelskip=yes. --> 185 <optional> 186 <attribute name="model"> 187 <text/> 188 </attribute> 189 </optional> 190 <choice> 191 <group> 192 <attribute name="relabel"> 193 <value>no</value> 194 </attribute> 195 </group> 196 <group> 197 <attribute name="labelskip"> 198 <value>yes</value> 199 </attribute> 200 </group> 201 <group> 202 <optional> 203 <attribute name="relabel"> 204 <value>yes</value> 205 </attribute> 206 </optional> 207 <oneOrMore> 208 <element name="label"> 209 <text/> 210 </element> 211 </oneOrMore> 212 </group> 213 </choice> 214 </element> 215 </define> 216 <define name="hvs"> 217 <attribute name="type"> 218 <choice> 219 <value>qemu</value> 220 <value>kqemu</value> 221 <value>kvm</value> 222 <value>xen</value> 223 <value>lxc</value> 224 <value>uml</value> <!-- NOT USED ANYMORE --> 225 <value>openvz</value> 226 <value>test</value> 227 <value>vmware</value> 228 <value>hyperv</value> 229 <value>vbox</value> 230 <value>phyp</value> <!-- NOT USED ANYMORE --> 231 <value>vz</value> 232 <value>bhyve</value> 233 <value>nvmm</value> 234 </choice> 235 </attribute> 236 </define> 237 <define name="os"> 238 <choice> 239 <ref name="osxen"/> 240 <ref name="oshvm"/> 241 <ref name="osexe"/> 242 </choice> 243 </define> 244 <define name="osxen"> 245 <choice> 246 <group> 247 <optional> 248 <ref name="bootloader"/> 249 </optional> 250 <element name="os"> 251 <ref name="ostypexen"/> 252 <ref name="osbootkernel"/> 253 </element> 254 </group> 255 <group> 256 <ref name="bootloader"/> 257 <optional> 258 <element name="os"> 259 <ref name="ostypexen"/> 260 <optional> 261 <ref name="osbootkernel"/> 262 </optional> 263 </element> 264 </optional> 265 </group> 266 </choice> 267 </define> 268 <define name="oshvm"> 269 <optional> 270 <ref name="bootloader"/> 271 </optional> 272 <element name="os"> 273 <interleave> 274 <optional> 275 <attribute name="firmware"> 276 <choice> 277 <value>bios</value> 278 <value>efi</value> 279 </choice> 280 </attribute> 281 </optional> 282 <ref name="ostypehvm"/> 283 <optional> 284 <element name="firmware"> 285 <oneOrMore> 286 <element name="feature"> 287 <attribute name="enabled"> 288 <ref name="virYesNo"/> 289 </attribute> 290 <attribute name="name"> 291 <choice> 292 <value>enrolled-keys</value> 293 <value>secure-boot</value> 294 </choice> 295 </attribute> 296 </element> 297 </oneOrMore> 298 </element> 299 </optional> 300 <optional> 301 <element name="loader"> 302 <optional> 303 <attribute name="readonly"> 304 <choice> 305 <value>yes</value> 306 <value>no</value> 307 </choice> 308 </attribute> 309 </optional> 310 <optional> 311 <attribute name="secure"> 312 <choice> 313 <value>yes</value> 314 <value>no</value> 315 </choice> 316 </attribute> 317 </optional> 318 <optional> 319 <attribute name="type"> 320 <choice> 321 <value>rom</value> 322 <value>pflash</value> 323 </choice> 324 </attribute> 325 </optional> 326 <optional> 327 <ref name="absFilePath"/> 328 </optional> 329 </element> 330 </optional> 331 <optional> 332 <element name="nvram"> 333 <optional> 334 <attribute name="template"> 335 <ref name="absFilePath"/> 336 </attribute> 337 </optional> 338 <optional> 339 <ref name="absFilePath"/> 340 </optional> 341 </element> 342 </optional> 343 <optional> 344 <ref name="osbootkernel"/> 345 </optional> 346 <zeroOrMore> 347 <ref name="osbootdev"/> 348 </zeroOrMore> 349 <optional> 350 <element name="bootmenu"> 351 <attribute name="enable"> 352 <ref name="virYesNo"/> 353 </attribute> 354 <optional> 355 <attribute name="timeout"> 356 <ref name="unsignedShort"/> 357 </attribute> 358 </optional> 359 </element> 360 </optional> 361 <optional> 362 <ref name="smbios"/> 363 </optional> 364 <optional> 365 <ref name="bios"/> 366 </optional> 367 <optional> 368 <ref name="acpiTable"/> 369 </optional> 370 </interleave> 371 </element> 372 </define> 373 <define name="ostypexen"> 374 <element name="type"> 375 <optional> 376 <attribute name="arch"> 377 <choice> 378 <value>i686</value> 379 <value>x86_64</value> 380 <value>ia64</value> 381 </choice> 382 </attribute> 383 </optional> 384 <optional> 385 <attribute name="machine"> 386 <choice> 387 <value>xenpv</value> 388 <value>xenfv</value> 389 <value>xenpvh</value> 390 </choice> 391 </attribute> 392 </optional> 393 <choice> 394 <value>xen</value> 395 <value>linux</value> 396 <value>xenpvh</value> 397 </choice> 398 </element> 399 </define> 400 <define name="ostypehvm"> 401 <element name="type"> 402 <optional> 403 <attribute name="arch"> 404 <ref name="archnames"/> 405 </attribute> 406 </optional> 407 <optional> 408 <attribute name="machine"> 409 <data type="string"> 410 <param name="pattern">[a-zA-Z0-9_\.\-]+</param> 411 </data> 412 </attribute> 413 </optional> 414 <value>hvm</value> 415 </element> 416 </define> 417 418 <define name="osexe"> 419 <element name="os"> 420 <element name="type"> 421 <optional> 422 <attribute name="arch"> 423 <ref name="archnames"/> 424 </attribute> 425 </optional> 426 <value>exe</value> 427 </element> 428 <interleave> 429 <optional> 430 <element name="init"> 431 <ref name="absFilePath"/> 432 </element> 433 </optional> 434 <zeroOrMore> 435 <element name="initarg"> 436 <text/> 437 </element> 438 </zeroOrMore> 439 <zeroOrMore> 440 <element name="initenv"> 441 <attribute name="name"> 442 <data type="string"> 443 <param name="pattern">[a-zA-Z_]+[a-zA-Z0-9_]*</param> 444 </data> 445 </attribute> 446 <text/> 447 </element> 448 </zeroOrMore> 449 <optional> 450 <element name="initdir"> 451 <ref name="absFilePath"/> 452 </element> 453 </optional> 454 <optional> 455 <element name="inituser"> 456 <ref name="genericName"/> 457 </element> 458 <element name="initgroup"> 459 <ref name="genericName"/> 460 </element> 461 </optional> 462 </interleave> 463 </element> 464 </define> 465 466 <define name="keywrap"> 467 <element name="keywrap"> 468 <oneOrMore> 469 <element name="cipher"> 470 <attribute name="name"> 471 <choice> 472 <value>aes</value> 473 <value>dea</value> 474 </choice> 475 </attribute> 476 <attribute name="state"> 477 <ref name="virOnOff"/> 478 </attribute> 479 </element> 480 </oneOrMore> 481 </element> 482 </define> 483 484 <define name="launchSecurity"> 485 <element name="launchSecurity"> 486 <choice> 487 <group> 488 <ref name="launchSecuritySEV"/> 489 </group> 490 <group> 491 <attribute name="type"> 492 <value>s390-pv</value> 493 </attribute> 494 </group> 495 </choice> 496 </element> 497 </define> 498 499 <define name="launchSecuritySEV"> 500 <attribute name="type"> 501 <value>sev</value> 502 </attribute> 503 <interleave> 504 <optional> 505 <element name="cbitpos"> 506 <data type="unsignedInt"/> 507 </element> 508 </optional> 509 <optional> 510 <element name="reducedPhysBits"> 511 <data type="unsignedInt"/> 512 </element> 513 </optional> 514 <element name="policy"> 515 <ref name="hexuint"/> 516 </element> 517 <optional> 518 <element name="handle"> 519 <ref name="unsignedInt"/> 520 </element> 521 </optional> 522 <optional> 523 <element name="dhCert"> 524 <data type="string"/> 525 </element> 526 </optional> 527 <optional> 528 <element name="session"> 529 <data type="string"/> 530 </element> 531 </optional> 532 </interleave> 533 </define> 534 535 <!-- 536 Enable or disable perf events for the domain. For each 537 of the events the following rules apply: 538 on: the event will be forcefully enabled 539 off: the event will be forcefully disabled 540 not specified: the event will be disabled by default 541 --> 542 <define name="perf"> 543 <element name="perf"> 544 <oneOrMore> 545 <element name="event"> 546 <attribute name="name"> 547 <choice> 548 <value>cmt</value> 549 <value>mbmt</value> 550 <value>mbml</value> 551 <value>cpu_cycles</value> 552 <value>instructions</value> 553 <value>cache_references</value> 554 <value>cache_misses</value> 555 <value>branch_instructions</value> 556 <value>branch_misses</value> 557 <value>bus_cycles</value> 558 <value>stalled_cycles_frontend</value> 559 <value>stalled_cycles_backend</value> 560 <value>ref_cpu_cycles</value> 561 <value>cpu_clock</value> 562 <value>task_clock</value> 563 <value>page_faults</value> 564 <value>context_switches</value> 565 <value>cpu_migrations</value> 566 <value>page_faults_min</value> 567 <value>page_faults_maj</value> 568 <value>alignment_faults</value> 569 <value>emulation_faults</value> 570 </choice> 571 </attribute> 572 <attribute name="enabled"> 573 <ref name="virYesNo"/> 574 </attribute> 575 </element> 576 </oneOrMore> 577 </element> 578 </define> 579 580 <define name="fibrechannel"> 581 <element name="fibrechannel"> 582 <attribute name="appid"> 583 <data type="string"> 584 <!-- All printable characters --> 585 <param name="pattern">[ -~]{1,128}</param> 586 </data> 587 </attribute> 588 </element> 589 </define> 590 591 <!-- 592 The Identifiers can be: 593 - an optional id attribute with a number on the domain element 594 - a mandatory name 595 - an optional uuid 596 --> 597 <define name="ids"> 598 <optional> 599 <attribute name="id"> 600 <ref name="unsignedInt"/> 601 </attribute> 602 </optional> 603 <interleave> 604 <element name="name"> 605 <ref name="objectNameWithSlash"/> 606 </element> 607 <optional> 608 <element name="uuid"> 609 <ref name="UUID"/> 610 </element> 611 </optional> 612 <optional> 613 <element name="genid"> 614 <choice> 615 <ref name="UUID"/> 616 <empty/> 617 </choice> 618 </element> 619 </optional> 620 </interleave> 621 </define> 622 <define name="idmap"> 623 <element name="idmap"> 624 <interleave> 625 <zeroOrMore> 626 <element name="uid"> 627 <attribute name="start"> 628 <ref name="unsignedInt"/> 629 </attribute> 630 <attribute name="target"> 631 <ref name="unsignedInt"/> 632 </attribute> 633 <attribute name="count"> 634 <ref name="unsignedInt"/> 635 </attribute> 636 <empty/> 637 </element> 638 </zeroOrMore> 639 <zeroOrMore> 640 <element name="gid"> 641 <attribute name="start"> 642 <ref name="unsignedInt"/> 643 </attribute> 644 <attribute name="target"> 645 <ref name="unsignedInt"/> 646 </attribute> 647 <attribute name="count"> 648 <ref name="unsignedInt"/> 649 </attribute> 650 <empty/> 651 </element> 652 </zeroOrMore> 653 </interleave> 654 </element> 655 </define> 656 <!-- 657 Resources usage defines the amount of memory (maximum and possibly 658 current usage) and number of virtual CPUs used by that domain. 659 We can't check here the rule that currentMemory <= memory 660 --> 661 <define name="resources"> 662 <interleave> 663 <optional> 664 <element name="memory"> 665 <ref name="scaledInteger"/> 666 <optional> 667 <attribute name="dumpCore"> 668 <ref name="virOnOff"/> 669 </attribute> 670 </optional> 671 </element> 672 </optional> 673 <optional> 674 <element name="maxMemory"> 675 <ref name="scaledInteger"/> 676 <attribute name="slots"> 677 <ref name="unsignedInt"/> 678 </attribute> 679 </element> 680 </optional> 681 <optional> 682 <element name="currentMemory"> 683 <ref name="scaledInteger"/> 684 </element> 685 </optional> 686 <optional> 687 <element name="memoryBacking"> 688 <interleave> 689 <optional> 690 <element name="hugepages"> 691 <zeroOrMore> 692 <element name="page"> 693 <attribute name="size"> 694 <ref name="unsignedLong"/> 695 </attribute> 696 <optional> 697 <attribute name="unit"> 698 <ref name="unit"/> 699 </attribute> 700 </optional> 701 <optional> 702 <attribute name="nodeset"> 703 <ref name="cpuset"/> 704 </attribute> 705 </optional> 706 <empty/> 707 </element> 708 </zeroOrMore> 709 </element> 710 </optional> 711 <optional> 712 <element name="nosharepages"> 713 <empty/> 714 </element> 715 </optional> 716 <optional> 717 <element name="locked"> 718 <empty/> 719 </element> 720 </optional> 721 <optional> 722 <element name="source"> 723 <attribute name="type"> 724 <choice> 725 <value>file</value> 726 <value>anonymous</value> 727 <value>memfd</value> 728 </choice> 729 </attribute> 730 </element> 731 </optional> 732 <optional> 733 <element name="access"> 734 <attribute name="mode"> 735 <choice> 736 <value>shared</value> 737 <value>private</value> 738 </choice> 739 </attribute> 740 </element> 741 </optional> 742 <optional> 743 <element name="allocation"> 744 <attribute name="mode"> 745 <choice> 746 <value>immediate</value> 747 <value>ondemand</value> 748 </choice> 749 </attribute> 750 </element> 751 </optional> 752 <optional> 753 <element name="discard"> 754 <empty/> 755 </element> 756 </optional> 757 </interleave> 758 </element> 759 </optional> 760 761 <optional> 762 <element name="vcpu"> 763 <optional> 764 <attribute name="placement"> 765 <choice> 766 <value>static</value> 767 <value>auto</value> 768 </choice> 769 </attribute> 770 </optional> 771 <optional> 772 <attribute name="cpuset"> 773 <ref name="cpuset"/> 774 </attribute> 775 </optional> 776 <optional> 777 <attribute name="current"> 778 <ref name="countCPU"/> 779 </attribute> 780 </optional> 781 <ref name="countCPU"/> 782 </element> 783 </optional> 784 785 <optional> 786 <element name="vcpus"> 787 <zeroOrMore> 788 <element name="vcpu"> 789 <attribute name="id"> 790 <ref name="unsignedInt"/> 791 </attribute> 792 <attribute name="enabled"> 793 <ref name="virYesNo"/> 794 </attribute> 795 <optional> 796 <attribute name="hotpluggable"> 797 <ref name="virYesNo"/> 798 </attribute> 799 </optional> 800 <optional> 801 <attribute name="order"> 802 <ref name="unsignedInt"/> 803 </attribute> 804 </optional> 805 </element> 806 </zeroOrMore> 807 </element> 808 </optional> 809 810 <optional> 811 <element name="iothreads"> 812 <ref name="unsignedInt"/> 813 </element> 814 </optional> 815 816 <optional> 817 <element name="iothreadids"> 818 <zeroOrMore> 819 <element name="iothread"> 820 <attribute name="id"> 821 <ref name="unsignedInt"/> 822 </attribute> 823 </element> 824 </zeroOrMore> 825 </element> 826 </optional> 827 828 <optional> 829 <ref name="blkiotune"/> 830 </optional> 831 832 <optional> 833 <ref name="memtune"/> 834 </optional> 835 836 <optional> 837 <ref name="cputune"/> 838 </optional> 839 840 <optional> 841 <ref name="numatune"/> 842 </optional> 843 844 <optional> 845 <ref name="respartition"/> 846 </optional> 847 </interleave> 848 </define> 849 850 <!-- The Blkio cgroup related tunables would go in the blkiotune --> 851 <define name="blkiotune"> 852 <element name="blkiotune"> 853 <interleave> 854 <!-- I/O weight the VM can use --> 855 <optional> 856 <element name="weight"> 857 <ref name="weight"/> 858 </element> 859 </optional> 860 <zeroOrMore> 861 <element name="device"> 862 <interleave> 863 <element name="path"> 864 <ref name="absFilePath"/> 865 </element> 866 <optional> 867 <element name="weight"> 868 <ref name="weight"/> 869 </element> 870 </optional> 871 <optional> 872 <element name="read_iops_sec"> 873 <data type="unsignedInt"/> 874 </element> 875 </optional> 876 <optional> 877 <element name="write_iops_sec"> 878 <data type="unsignedInt"/> 879 </element> 880 </optional> 881 <optional> 882 <element name="read_bytes_sec"> 883 <data type="unsignedLong"/> 884 </element> 885 </optional> 886 <optional> 887 <element name="write_bytes_sec"> 888 <data type="unsignedLong"/> 889 </element> 890 </optional> 891 </interleave> 892 </element> 893 </zeroOrMore> 894 </interleave> 895 </element> 896 </define> 897 898 <!-- All the memory/swap related tunables would go in the memtune --> 899 <define name="memtune"> 900 <element name="memtune"> 901 <!-- Maximum memory the VM can use --> 902 <optional> 903 <element name="hard_limit"> 904 <ref name="scaledInteger"/> 905 </element> 906 </optional> 907 <!-- Minimum memory ascertained for the VM during contention --> 908 <optional> 909 <element name="soft_limit"> 910 <ref name="scaledInteger"/> 911 </element> 912 </optional> 913 <!-- Minimum amount of memory required to start the VM --> 914 <optional> 915 <element name="min_guarantee"> 916 <ref name="scaledInteger"/> 917 </element> 918 </optional> 919 <!-- Maximum swap area the VM can use --> 920 <optional> 921 <element name="swap_hard_limit"> 922 <ref name="scaledInteger"/> 923 </element> 924 </optional> 925 </element> 926 </define> 927 928 <!-- All the cpu related tunables would go in the cputune --> 929 <define name="cputune"> 930 <element name="cputune"> 931 <interleave> 932 <optional> 933 <element name="shares"> 934 <ref name="cpushares"/> 935 </element> 936 </optional> 937 <optional> 938 <element name="global_period"> 939 <ref name="cpuperiod"/> 940 </element> 941 </optional> 942 <optional> 943 <element name="global_quota"> 944 <ref name="cpuquota"/> 945 </element> 946 </optional> 947 <optional> 948 <element name="period"> 949 <ref name="cpuperiod"/> 950 </element> 951 </optional> 952 <optional> 953 <element name="quota"> 954 <ref name="cpuquota"/> 955 </element> 956 </optional> 957 <optional> 958 <element name="emulator_period"> 959 <ref name="cpuperiod"/> 960 </element> 961 </optional> 962 <optional> 963 <element name="emulator_quota"> 964 <ref name="cpuquota"/> 965 </element> 966 </optional> 967 <optional> 968 <element name="iothread_period"> 969 <ref name="cpuperiod"/> 970 </element> 971 </optional> 972 <optional> 973 <element name="iothread_quota"> 974 <ref name="cpuquota"/> 975 </element> 976 </optional> 977 <zeroOrMore> 978 <element name="vcpupin"> 979 <attribute name="vcpu"> 980 <ref name="vcpuid"/> 981 </attribute> 982 <attribute name="cpuset"> 983 <ref name="cpuset"/> 984 </attribute> 985 </element> 986 </zeroOrMore> 987 <optional> 988 <element name="emulatorpin"> 989 <attribute name="cpuset"> 990 <ref name="cpuset"/> 991 </attribute> 992 </element> 993 </optional> 994 <zeroOrMore> 995 <element name="iothreadpin"> 996 <attribute name="iothread"> 997 <ref name="unsignedInt"/> 998 </attribute> 999 <attribute name="cpuset"> 1000 <ref name="cpuset"/> 1001 </attribute> 1002 </element> 1003 </zeroOrMore> 1004 <zeroOrMore> 1005 <element name="vcpusched"> 1006 <optional> 1007 <attribute name="vcpus"> 1008 <ref name="cpuset"/> 1009 </attribute> 1010 </optional> 1011 <ref name="schedparam"/> 1012 </element> 1013 </zeroOrMore> 1014 <zeroOrMore> 1015 <element name="iothreadsched"> 1016 <optional> 1017 <attribute name="iothreads"> 1018 <ref name="cpuset"/> 1019 </attribute> 1020 </optional> 1021 <ref name="schedparam"/> 1022 </element> 1023 </zeroOrMore> 1024 <optional> 1025 <element name="emulatorsched"> 1026 <ref name="schedparam"/> 1027 </element> 1028 </optional> 1029 <zeroOrMore> 1030 <element name="cachetune"> 1031 <attribute name="vcpus"> 1032 <ref name="cpuset"/> 1033 </attribute> 1034 <optional> 1035 <attribute name="id"> 1036 <data type="string"/> 1037 </attribute> 1038 </optional> 1039 <oneOrMore> 1040 <choice> 1041 <element name="cache"> 1042 <attribute name="id"> 1043 <ref name="unsignedInt"/> 1044 </attribute> 1045 <attribute name="level"> 1046 <ref name="unsignedInt"/> 1047 </attribute> 1048 <attribute name="type"> 1049 <choice> 1050 <value>both</value> 1051 <value>code</value> 1052 <value>data</value> 1053 </choice> 1054 </attribute> 1055 <attribute name="size"> 1056 <ref name="unsignedLong"/> 1057 </attribute> 1058 <optional> 1059 <attribute name="unit"> 1060 <ref name="unit"/> 1061 </attribute> 1062 </optional> 1063 </element> 1064 <element name="monitor"> 1065 <attribute name="level"> 1066 <ref name="unsignedInt"/> 1067 </attribute> 1068 <attribute name="vcpus"> 1069 <ref name="cpuset"/> 1070 </attribute> 1071 </element> 1072 </choice> 1073 </oneOrMore> 1074 </element> 1075 </zeroOrMore> 1076 <zeroOrMore> 1077 <element name="memorytune"> 1078 <attribute name="vcpus"> 1079 <ref name="cpuset"/> 1080 </attribute> 1081 <oneOrMore> 1082 <choice> 1083 <element name="node"> 1084 <attribute name="id"> 1085 <ref name="unsignedInt"/> 1086 </attribute> 1087 <attribute name="bandwidth"> 1088 <ref name="unsignedInt"/> 1089 </attribute> 1090 </element> 1091 <element name="monitor"> 1092 <attribute name="vcpus"> 1093 <ref name="cpuset"/> 1094 </attribute> 1095 </element> 1096 </choice> 1097 </oneOrMore> 1098 </element> 1099 </zeroOrMore> 1100 </interleave> 1101 </element> 1102 </define> 1103 1104 <define name="schedparam"> 1105 <choice> 1106 <group> 1107 <attribute name="scheduler"> 1108 <choice> 1109 <value>batch</value> 1110 <value>idle</value> 1111 </choice> 1112 </attribute> 1113 </group> 1114 <group> 1115 <attribute name="scheduler"> 1116 <choice> 1117 <value>fifo</value> 1118 <value>rr</value> 1119 </choice> 1120 </attribute> 1121 <attribute name="priority"> 1122 <ref name="unsignedShort"/> 1123 </attribute> 1124 </group> 1125 </choice> 1126 </define> 1127 1128 <!-- All the NUMA related tunables would go in the numatune --> 1129 <define name="numatune"> 1130 <element name="numatune"> 1131 <interleave> 1132 <optional> 1133 <element name="memory"> 1134 <optional> 1135 <attribute name="mode"> 1136 <choice> 1137 <value>strict</value> 1138 <value>preferred</value> 1139 <value>interleave</value> 1140 <value>restrictive</value> 1141 </choice> 1142 </attribute> 1143 </optional> 1144 <choice> 1145 <group> 1146 <optional> 1147 <attribute name="placement"> 1148 <value>static</value> 1149 </attribute> 1150 </optional> 1151 <optional> 1152 <attribute name="nodeset"> 1153 <ref name="cpuset"/> 1154 </attribute> 1155 </optional> 1156 </group> 1157 <attribute name="placement"> 1158 <value>auto</value> 1159 </attribute> 1160 </choice> 1161 </element> 1162 </optional> 1163 <zeroOrMore> 1164 <element name="memnode"> 1165 <attribute name="cellid"> 1166 <ref name="unsignedInt"/> 1167 </attribute> 1168 <attribute name="mode"> 1169 <choice> 1170 <value>strict</value> 1171 <value>preferred</value> 1172 <value>interleave</value> 1173 <value>restrictive</value> 1174 </choice> 1175 </attribute> 1176 <attribute name="nodeset"> 1177 <ref name="cpuset"/> 1178 </attribute> 1179 </element> 1180 </zeroOrMore> 1181 </interleave> 1182 </element> 1183 </define> 1184 1185 <define name="respartition"> 1186 <element name="resource"> 1187 <optional> 1188 <element name="partition"> 1189 <ref name="absFilePath"/> 1190 </element> 1191 </optional> 1192 <optional> 1193 <ref name="fibrechannel"/> 1194 </optional> 1195 </element> 1196 </define> 1197 1198 <define name="clock"> 1199 <optional> 1200 <element name="clock"> 1201 <choice> 1202 <group> 1203 <attribute name="offset"> 1204 <choice> 1205 <value>localtime</value> 1206 <value>utc</value> 1207 </choice> 1208 </attribute> 1209 <optional> 1210 <attribute name="adjustment"> 1211 <choice> 1212 <ref name="timeDelta"/> 1213 <value>reset</value> 1214 </choice> 1215 </attribute> 1216 </optional> 1217 </group> 1218 <group> 1219 <attribute name="offset"> 1220 <value>timezone</value> 1221 </attribute> 1222 <optional> 1223 <attribute name="timezone"> 1224 <ref name="timeZone"/> 1225 </attribute> 1226 </optional> 1227 </group> 1228 <group> 1229 <attribute name="offset"> 1230 <value>variable</value> 1231 </attribute> 1232 <optional> 1233 <attribute name="adjustment"> 1234 <ref name="timeDelta"/> 1235 </attribute> 1236 </optional> 1237 <optional> 1238 <attribute name="basis"> 1239 <choice> 1240 <value>utc</value> 1241 <value>localtime</value> 1242 </choice> 1243 </attribute> 1244 </optional> 1245 </group> 1246 </choice> 1247 <zeroOrMore> 1248 <ref name="timer"/> 1249 </zeroOrMore> 1250 </element> 1251 </optional> 1252 </define> 1253 <define name="timer"> 1254 <element name="timer"> 1255 <choice> 1256 <group> 1257 <attribute name="name"> 1258 <choice> 1259 <value>platform</value> 1260 <value>rtc</value> 1261 </choice> 1262 </attribute> 1263 <optional> 1264 <attribute name="track"> 1265 <choice> 1266 <value>boot</value> 1267 <value>guest</value> 1268 <value>wall</value> 1269 <value>realtime</value> 1270 </choice> 1271 </attribute> 1272 </optional> 1273 <optional> 1274 <ref name="tickpolicy"/> 1275 </optional> 1276 </group> 1277 <group> 1278 <attribute name="name"> 1279 <value>tsc</value> 1280 </attribute> 1281 <optional> 1282 <ref name="tickpolicy"/> 1283 </optional> 1284 <optional> 1285 <attribute name="frequency"> 1286 <ref name="unsignedLong"/> 1287 </attribute> 1288 </optional> 1289 <optional> 1290 <attribute name="mode"> 1291 <choice> 1292 <value>auto</value> 1293 <value>native</value> 1294 <value>emulate</value> 1295 <value>paravirt</value> 1296 <value>smpsafe</value> 1297 </choice> 1298 </attribute> 1299 </optional> 1300 </group> 1301 <group> 1302 <attribute name="name"> 1303 <choice> 1304 <value>hpet</value> 1305 <value>pit</value> 1306 <value>armvtimer</value> 1307 </choice> 1308 </attribute> 1309 <optional> 1310 <ref name="tickpolicy"/> 1311 </optional> 1312 </group> 1313 <group> 1314 <attribute name="name"> 1315 <choice> 1316 <value>kvmclock</value> 1317 <value>hypervclock</value> 1318 </choice> 1319 </attribute> 1320 </group> 1321 </choice> 1322 <optional> 1323 <attribute name="present"> 1324 <ref name="virYesNo"/> 1325 </attribute> 1326 </optional> 1327 <empty/> 1328 </element> 1329 </define> 1330 1331 <define name="tickpolicy"> 1332 <choice> 1333 <group> 1334 <attribute name="tickpolicy"> 1335 <choice> 1336 <value>delay</value> 1337 <value>merge</value> 1338 <value>discard</value> 1339 </choice> 1340 </attribute> 1341 </group> 1342 <group> 1343 <attribute name="tickpolicy"> 1344 <value>catchup</value> 1345 </attribute> 1346 <optional> 1347 <element name="catchup"> 1348 <optional> 1349 <attribute name="threshold"> 1350 <ref name="unsignedInt"/> 1351 </attribute> 1352 </optional> 1353 <optional> 1354 <attribute name="slew"> 1355 <ref name="unsignedInt"/> 1356 </attribute> 1357 </optional> 1358 <optional> 1359 <attribute name="limit"> 1360 <ref name="unsignedInt"/> 1361 </attribute> 1362 </optional> 1363 </element> 1364 </optional> 1365 </group> 1366 </choice> 1367 </define> 1368<!-- 1369 A bootloader may be used to extract the OS information instead of 1370 defining the OS parameter in the instance. It points just to the 1371 binary or script used to extract the data from the first disk device. 1372 --> 1373 <define name="bootloader"> 1374 <interleave> 1375 <optional> 1376 <element name="bootloader"> 1377 <choice> 1378 <text/> 1379 <empty/> 1380 </choice> 1381 </element> 1382 </optional> 1383 <optional> 1384 <element name="bootloader_args"> 1385 <text/> 1386 </element> 1387 </optional> 1388 </interleave> 1389 </define> 1390 <define name="osbootkernel"> 1391 <interleave> 1392 <optional> 1393 <element name="kernel"> 1394 <ref name="absFilePath"/> 1395 </element> 1396 </optional> 1397 <optional> 1398 <element name="initrd"> 1399 <ref name="absFilePath"/> 1400 </element> 1401 </optional> 1402 <optional> 1403 <element name="root"> 1404 <ref name="absFilePath"/> 1405 </element> 1406 </optional> 1407 <optional> 1408 <element name="cmdline"> 1409 <text/> 1410 </element> 1411 </optional> 1412 <optional> 1413 <element name="dtb"> 1414 <ref name="absFilePath"/> 1415 </element> 1416 </optional> 1417 </interleave> 1418 </define> 1419 <define name="osbootdev"> 1420 <element name="boot"> 1421 <attribute name="dev"> 1422 <choice> 1423 <value>hd</value> 1424 <value>fd</value> 1425 <value>cdrom</value> 1426 <value>network</value> 1427 </choice> 1428 </attribute> 1429 <empty/> 1430 </element> 1431 </define> 1432 <define name="diskspec"> 1433 <interleave> 1434 <optional> 1435 <ref name="diskDriver"/> 1436 </optional> 1437 <optional> 1438 <ref name="diskMirror"/> 1439 </optional> 1440 <optional> 1441 <ref name="diskAuth"/> 1442 </optional> 1443 <ref name="target"/> 1444 <optional> 1445 <ref name="deviceBoot"/> 1446 </optional> 1447 <optional> 1448 <element name="backenddomain"> 1449 <attribute name="name"> 1450 <ref name="objectNameWithSlash"/> 1451 </attribute> 1452 <empty/> 1453 </element> 1454 </optional> 1455 <optional> 1456 <element name="readonly"> 1457 <empty/> 1458 </element> 1459 </optional> 1460 <optional> 1461 <element name="shareable"> 1462 <empty/> 1463 </element> 1464 </optional> 1465 <optional> 1466 <element name="transient"> 1467 <optional> 1468 <attribute name="shareBacking"> 1469 <ref name='virYesNo'/> 1470 </attribute> 1471 </optional> 1472 <empty/> 1473 </element> 1474 </optional> 1475 <optional> 1476 <element name="serial"> 1477 <ref name="diskSerial"/> 1478 </element> 1479 </optional> 1480 <optional> 1481 <ref name="encryption"/> 1482 </optional> 1483 <optional> 1484 <ref name="diskIoTune"/> 1485 </optional> 1486 <optional> 1487 <ref name="alias"/> 1488 </optional> 1489 <optional> 1490 <ref name="acpi"/> 1491 </optional> 1492 <optional> 1493 <ref name="address"/> 1494 </optional> 1495 <optional> 1496 <ref name="geometry"/> 1497 </optional> 1498 <optional> 1499 <ref name="diskBlockIo"/> 1500 </optional> 1501 <optional> 1502 <element name="wwn"> 1503 <ref name="wwn"/> 1504 </element> 1505 </optional> 1506 <optional> 1507 <element name="vendor"> 1508 <data type="string"> 1509 <!-- All printable characters --> 1510 <param name="pattern">[ -~]{0,8}</param> 1511 </data> 1512 </element> 1513 </optional> 1514 <optional> 1515 <element name="product"> 1516 <data type="string"> 1517 <!-- All printable characters --> 1518 <param name="pattern">[ -~]{0,16}</param> 1519 </data> 1520 </element> 1521 </optional> 1522 </interleave> 1523 </define> 1524 <define name="snapshot"> 1525 <attribute name="snapshot"> 1526 <choice> 1527 <value>no</value> 1528 <value>internal</value> 1529 <value>external</value> 1530 </choice> 1531 </attribute> 1532 </define> 1533 1534 <define name="lease"> 1535 <element name="lease"> 1536 <interleave> 1537 <element name="lockspace"> 1538 <text/> 1539 </element> 1540 <element name="key"> 1541 <text/> 1542 </element> 1543 <element name="target"> 1544 <attribute name="path"> 1545 <text/> 1546 </attribute> 1547 <optional> 1548 <attribute name="offset"> 1549 <ref name="unsignedInt"/> 1550 </attribute> 1551 </optional> 1552 </element> 1553 </interleave> 1554 </element> 1555 </define> 1556 1557 <define name="startupPolicy"> 1558 <attribute name="startupPolicy"> 1559 <choice> 1560 <value>mandatory</value> 1561 <value>requisite</value> 1562 <value>optional</value> 1563 </choice> 1564 </attribute> 1565 </define> 1566 1567 <!-- 1568 A disk description can be either of type file or block 1569 The name of the attribute on the source element depends on the type 1570 1571 --> 1572 <define name="disk"> 1573 <element name="disk"> 1574 <choice> 1575 <group> 1576 <optional> 1577 <attribute name="device"> 1578 <choice> 1579 <value>floppy</value> 1580 <value>disk</value> 1581 <value>cdrom</value> 1582 </choice> 1583 </attribute> 1584 </optional> 1585 <interleave> 1586 <ref name="diskSource"/> 1587 <ref name="diskSpecsExtra"/> 1588 </interleave> 1589 </group> 1590 <group> 1591 <attribute name="device"> 1592 <value>lun</value> 1593 </attribute> 1594 <optional> 1595 <ref name="rawIO"/> 1596 </optional> 1597 <optional> 1598 <ref name="sgIO"/> 1599 </optional> 1600 <interleave> 1601 <choice> 1602 <ref name="diskSourceNetwork"/> 1603 <ref name="diskSourceBlock"/> 1604 <ref name="diskSourceVolume"/> 1605 </choice> 1606 <ref name="diskSpecsExtra"/> 1607 </interleave> 1608 </group> 1609 </choice> 1610 <optional> 1611 <attribute name="model"> 1612 <choice> 1613 <value>virtio</value> 1614 <value>virtio-transitional</value> 1615 <value>virtio-non-transitional</value> 1616 </choice> 1617 </attribute> 1618 </optional> 1619 <optional> 1620 <ref name="snapshot"/> 1621 </optional> 1622 </element> 1623 </define> 1624 1625 <define name="diskSpecsExtra"> 1626 <interleave> 1627 <ref name="storageSourceExtra"/> 1628 <ref name="diskBackingChain"/> 1629 </interleave> 1630 </define> 1631 1632 <define name="diskBackingChain"> 1633 <choice> 1634 <ref name="diskBackingStore"/> 1635 <ref name="diskBackingStoreLast"/> 1636 </choice> 1637 </define> 1638 1639 <define name="diskBackingStore"> 1640 <element name="backingStore"> 1641 <optional> 1642 <attribute name="index"> 1643 <ref name="positiveInteger"/> 1644 </attribute> 1645 </optional> 1646 <interleave> 1647 <ref name="diskSource"/> 1648 <ref name="diskBackingChain"/> 1649 <ref name="diskFormat"/> 1650 </interleave> 1651 </element> 1652 </define> 1653 1654 <define name="diskFormat"> 1655 <element name="format"> 1656 <attribute name="type"> 1657 <ref name="storageFormat"/> 1658 </attribute> 1659 <optional> 1660 <element name="metadata_cache"> 1661 <optional> 1662 <element name="max_size"> 1663 <ref name="scaledInteger"/> 1664 </element> 1665 </optional> 1666 </element> 1667 </optional> 1668 </element> 1669 </define> 1670 1671 <define name="diskBackingStoreLast"> 1672 <optional> 1673 <element name="backingStore"> 1674 <empty/> 1675 </element> 1676 </optional> 1677 </define> 1678 1679 <define name="diskSourceSlice"> 1680 <attribute name="offset"> 1681 <ref name="unsignedInt"/> 1682 </attribute> 1683 <attribute name="size"> 1684 <ref name="positiveInteger"/> 1685 </attribute> 1686 </define> 1687 1688 <define name="diskSourceCommon"> 1689 <optional> 1690 <attribute name="index"> 1691 <ref name="positiveInteger"/> 1692 </attribute> 1693 </optional> 1694 <optional> 1695 <element name="slices"> 1696 <element name="slice"> 1697 <attribute name="type"> 1698 <value>storage</value> 1699 </attribute> 1700 <ref name="diskSourceSlice"/> 1701 </element> 1702 </element> 1703 </optional> 1704 </define> 1705 1706 <define name="diskSource"> 1707 <choice> 1708 <ref name="diskSourceFile"/> 1709 <ref name="diskSourceBlock"/> 1710 <ref name="diskSourceDir"/> 1711 <ref name="diskSourceNetwork"/> 1712 <ref name="diskSourceVolume"/> 1713 <ref name="diskSourceNvme"/> 1714 <ref name="diskSourceVhostUser"/> 1715 </choice> 1716 </define> 1717 1718 <define name="diskSourceFile"> 1719 <optional> 1720 <attribute name="type"> 1721 <value>file</value> 1722 </attribute> 1723 </optional> 1724 <optional> 1725 <element name="source"> 1726 <interleave> 1727 <optional> 1728 <attribute name="file"> 1729 <choice> 1730 <ref name="absFilePath"/> 1731 <ref name="vmwarePath"/> 1732 </choice> 1733 </attribute> 1734 </optional> 1735 <ref name="diskSourceCommon"/> 1736 <optional> 1737 <ref name="storageStartupPolicy"/> 1738 </optional> 1739 <optional> 1740 <ref name="encryption"/> 1741 </optional> 1742 <zeroOrMore> 1743 <ref name="devSeclabel"/> 1744 </zeroOrMore> 1745 </interleave> 1746 </element> 1747 </optional> 1748 </define> 1749 1750 <define name="diskSourceBlock"> 1751 <attribute name="type"> 1752 <value>block</value> 1753 </attribute> 1754 <optional> 1755 <element name="source"> 1756 <interleave> 1757 <optional> 1758 <attribute name="dev"> 1759 <choice> 1760 <ref name="absFilePath"/> 1761 <ref name="deviceName"/> 1762 </choice> 1763 </attribute> 1764 </optional> 1765 <ref name="diskSourceCommon"/> 1766 <optional> 1767 <ref name="storageStartupPolicy"/> 1768 </optional> 1769 <optional> 1770 <ref name="encryption"/> 1771 </optional> 1772 <optional> 1773 <ref name="reservations"/> 1774 </optional> 1775 <zeroOrMore> 1776 <ref name="devSeclabel"/> 1777 </zeroOrMore> 1778 </interleave> 1779 </element> 1780 </optional> 1781 </define> 1782 1783 <define name="diskSourceDir"> 1784 <attribute name="type"> 1785 <value>dir</value> 1786 </attribute> 1787 <optional> 1788 <element name="source"> 1789 <interleave> 1790 <attribute name="dir"> 1791 <ref name="absFilePath"/> 1792 </attribute> 1793 <ref name="diskSourceCommon"/> 1794 <optional> 1795 <ref name="storageStartupPolicy"/> 1796 </optional> 1797 <optional> 1798 <ref name="encryption"/> 1799 </optional> 1800 <empty/> 1801 </interleave> 1802 </element> 1803 </optional> 1804 </define> 1805 1806 <define name="diskSourceNetworkHost"> 1807 <element name="host"> 1808 <choice> 1809 <group> 1810 <optional> 1811 <attribute name="transport"> 1812 <choice> 1813 <value>tcp</value> 1814 <value>rdma</value> 1815 </choice> 1816 </attribute> 1817 </optional> 1818 <attribute name="name"> 1819 <choice> 1820 <ref name="dnsName"/> 1821 <ref name="ipAddr"/> 1822 </choice> 1823 </attribute> 1824 <optional> 1825 <attribute name="port"> 1826 <ref name="unsignedInt"/> 1827 </attribute> 1828 </optional> 1829 </group> 1830 <group> 1831 <attribute name="transport"> 1832 <value>unix</value> 1833 </attribute> 1834 <attribute name="socket"> 1835 <ref name="absFilePath"/> 1836 </attribute> 1837 </group> 1838 </choice> 1839 </element> 1840 </define> 1841 1842 <define name="diskSourceNetworkNFS"> 1843 <element name="identity"> 1844 <optional> 1845 <attribute name="user"> 1846 <ref name="genericName"/> 1847 </attribute> 1848 </optional> 1849 <optional> 1850 <attribute name="group"> 1851 <ref name="genericName"/> 1852 </attribute> 1853 </optional> 1854 </element> 1855 </define> 1856 1857 <define name="diskSourceNetworkProtocolRBD"> 1858 <element name="source"> 1859 <interleave> 1860 <attribute name="protocol"> 1861 <value>rbd</value> 1862 </attribute> 1863 <ref name="diskSourceCommon"/> 1864 <optional> 1865 <attribute name="name"/> 1866 </optional> 1867 <zeroOrMore> 1868 <ref name="diskSourceNetworkHost"/> 1869 </zeroOrMore> 1870 <optional> 1871 <element name="snapshot"> 1872 <attribute name="name"> 1873 <ref name="genericName"/> 1874 </attribute> 1875 <empty/> 1876 </element> 1877 </optional> 1878 <optional> 1879 <element name="config"> 1880 <attribute name="file"> 1881 <ref name="absFilePath"/> 1882 </attribute> 1883 <empty/> 1884 </element> 1885 </optional> 1886 <optional> 1887 <ref name="diskAuth"/> 1888 </optional> 1889 <optional> 1890 <ref name="encryption"/> 1891 </optional> 1892 <empty/> 1893 </interleave> 1894 </element> 1895 </define> 1896 1897 <define name="diskSourceNetworkProtocolISCSI"> 1898 <element name="source"> 1899 <attribute name="protocol"> 1900 <value>iscsi</value> 1901 </attribute> 1902 <attribute name="name"/> 1903 <interleave> 1904 <ref name="diskSourceCommon"/> 1905 <ref name="diskSourceNetworkHost"/> 1906 <optional> 1907 <ref name="diskAuth"/> 1908 </optional> 1909 <optional> 1910 <ref name="encryption"/> 1911 </optional> 1912 <optional> 1913 <ref name="initiatorinfo"/> 1914 </optional> 1915 </interleave> 1916 </element> 1917 </define> 1918 1919 <define name="diskSourceNetworkProtocolPropsCommon"> 1920 <optional> 1921 <element name="readahead"> 1922 <attribute name="size"> 1923 <ref name="positiveInteger"/> 1924 </attribute> 1925 <empty/> 1926 </element> 1927 </optional> 1928 <optional> 1929 <element name="timeout"> 1930 <attribute name="seconds"> 1931 <ref name="positiveInteger"/> 1932 </attribute> 1933 <empty/> 1934 </element> 1935 </optional> 1936 </define> 1937 1938 <define name="diskSourceNetworkProtocolSSLVerify"> 1939 <element name="ssl"> 1940 <attribute name="verify"> 1941 <ref name="virYesNo"/> 1942 </attribute> 1943 <empty/> 1944 </element> 1945 </define> 1946 1947 <define name="diskSourceNetworkProtocolHTTPCookies"> 1948 <element name="cookies"> 1949 <oneOrMore> 1950 <element name="cookie"> 1951 <attribute name="name"> 1952 <data type="string"> 1953 <param name="pattern">[!#$%&'*+\-.0-9A-Z\^_`a-z|~]+</param> 1954 </data> 1955 </attribute> 1956 <data type="string"> 1957 <param name="pattern">"?[!#$%&'()*+\-./0-9:>=<?@A-Z\^_`\[\]a-z|~]+"?</param> 1958 </data> 1959 </element> 1960 </oneOrMore> 1961 <empty/> 1962 </element> 1963 </define> 1964 1965 <define name="diskSourceNetworkProtocolHTTPS"> 1966 <element name="source"> 1967 <interleave> 1968 <attribute name="protocol"> 1969 <choice> 1970 <value>https</value> 1971 </choice> 1972 </attribute> 1973 <attribute name="name"/> 1974 <optional> 1975 <attribute name="query"/> 1976 </optional> 1977 <ref name="diskSourceCommon"/> 1978 <ref name="diskSourceNetworkHost"/> 1979 <optional> 1980 <ref name="encryption"/> 1981 </optional> 1982 <optional> 1983 <ref name="diskSourceNetworkProtocolSSLVerify"/> 1984 </optional> 1985 <optional> 1986 <ref name="diskSourceNetworkProtocolHTTPCookies"/> 1987 </optional> 1988 <ref name="diskSourceNetworkProtocolPropsCommon"/> 1989 </interleave> 1990 </element> 1991 </define> 1992 1993 <define name="diskSourceNetworkProtocolHTTP"> 1994 <element name="source"> 1995 <interleave> 1996 <attribute name="protocol"> 1997 <choice> 1998 <value>http</value> 1999 </choice> 2000 </attribute> 2001 <attribute name="name"/> 2002 <optional> 2003 <attribute name="query"/> 2004 </optional> 2005 <ref name="diskSourceCommon"/> 2006 <ref name="diskSourceNetworkHost"/> 2007 <optional> 2008 <ref name="encryption"/> 2009 </optional> 2010 <optional> 2011 <ref name="diskSourceNetworkProtocolHTTPCookies"/> 2012 </optional> 2013 <ref name="diskSourceNetworkProtocolPropsCommon"/> 2014 </interleave> 2015 </element> 2016 </define> 2017 2018 <define name="diskSourceNetworkProtocolFTPS"> 2019 <element name="source"> 2020 <interleave> 2021 <attribute name="protocol"> 2022 <choice> 2023 <value>ftps</value> 2024 </choice> 2025 </attribute> 2026 <attribute name="name"/> 2027 <ref name="diskSourceCommon"/> 2028 <ref name="diskSourceNetworkHost"/> 2029 <optional> 2030 <ref name="encryption"/> 2031 </optional> 2032 <optional> 2033 <ref name="diskSourceNetworkProtocolSSLVerify"/> 2034 </optional> 2035 <ref name="diskSourceNetworkProtocolPropsCommon"/> 2036 </interleave> 2037 </element> 2038 </define> 2039 2040 <define name="diskSourceNetworkProtocolSimple"> 2041 <element name="source"> 2042 <interleave> 2043 <attribute name="protocol"> 2044 <choice> 2045 <value>sheepdog</value> 2046 <value>ftp</value> 2047 <value>tftp</value> 2048 </choice> 2049 </attribute> 2050 <attribute name="name"/> 2051 <ref name="diskSourceCommon"/> 2052 <ref name="diskSourceNetworkHost"/> 2053 <optional> 2054 <ref name="encryption"/> 2055 </optional> 2056 <ref name="diskSourceNetworkProtocolPropsCommon"/> 2057 </interleave> 2058 </element> 2059 </define> 2060 2061 <define name="diskSourceNetworkProtocolNBD"> 2062 <element name="source"> 2063 <interleave> 2064 <attribute name="protocol"> 2065 <value>nbd</value> 2066 </attribute> 2067 <optional> 2068 <attribute name="name"/> 2069 </optional> 2070 <optional> 2071 <attribute name="tls"> 2072 <ref name="virYesNo"/> 2073 </attribute> 2074 </optional> 2075 <ref name="diskSourceCommon"/> 2076 <ref name="diskSourceNetworkHost"/> 2077 <optional> 2078 <ref name="encryption"/> 2079 </optional> 2080 </interleave> 2081 </element> 2082 </define> 2083 2084 <define name="diskSourceNetworkProtocolGluster"> 2085 <element name="source"> 2086 <interleave> 2087 <attribute name="protocol"> 2088 <value>gluster</value> 2089 </attribute> 2090 <attribute name="name"/> 2091 <ref name="diskSourceCommon"/> 2092 <oneOrMore> 2093 <ref name="diskSourceNetworkHost"/> 2094 </oneOrMore> 2095 <optional> 2096 <ref name="encryption"/> 2097 </optional> 2098 </interleave> 2099 </element> 2100 </define> 2101 2102 <define name="diskSourceNetworkProtocolVxHS"> 2103 <element name="source"> 2104 <interleave> 2105 <attribute name="protocol"> 2106 <choice> 2107 <value>vxhs</value> 2108 </choice> 2109 </attribute> 2110 <attribute name="name"/> 2111 <ref name="diskSourceCommon"/> 2112 <optional> 2113 <attribute name="tls"> 2114 <ref name="virYesNo"/> 2115 </attribute> 2116 </optional> 2117 <ref name="diskSourceNetworkHost"/> 2118 </interleave> 2119 </element> 2120 </define> 2121 2122 <define name="diskSourceNetworkProtocolNFS"> 2123 <element name="source"> 2124 <interleave> 2125 <attribute name="protocol"> 2126 <choice> 2127 <value>nfs</value> 2128 </choice> 2129 </attribute> 2130 <attribute name="name"/> 2131 <ref name="diskSourceCommon"/> 2132 <ref name="diskSourceNetworkHost"/> 2133 <ref name="diskSourceNetworkNFS"/> 2134 </interleave> 2135 </element> 2136 </define> 2137 2138 <define name="diskSourceNetwork"> 2139 <attribute name="type"> 2140 <value>network</value> 2141 </attribute> 2142 <choice> 2143 <ref name="diskSourceNetworkProtocolNBD"/> 2144 <ref name="diskSourceNetworkProtocolGluster"/> 2145 <ref name="diskSourceNetworkProtocolRBD"/> 2146 <ref name="diskSourceNetworkProtocolISCSI"/> 2147 <ref name="diskSourceNetworkProtocolHTTP"/> 2148 <ref name="diskSourceNetworkProtocolHTTPS"/> 2149 <ref name="diskSourceNetworkProtocolFTPS"/> 2150 <ref name="diskSourceNetworkProtocolSimple"/> 2151 <ref name="diskSourceNetworkProtocolVxHS"/> 2152 <ref name="diskSourceNetworkProtocolNFS"/> 2153 </choice> 2154 </define> 2155 2156 <define name="diskSourceVolume"> 2157 <attribute name="type"> 2158 <value>volume</value> 2159 </attribute> 2160 <optional> 2161 <element name="source"> 2162 <interleave> 2163 <attribute name="pool"> 2164 <ref name="objectName"/> 2165 </attribute> 2166 <attribute name="volume"> 2167 <ref name="volName"/> 2168 </attribute> 2169 <optional> 2170 <attribute name="mode"> 2171 <choice> 2172 <value>host</value> 2173 <value>direct</value> 2174 </choice> 2175 </attribute> 2176 </optional> 2177 <ref name="diskSourceCommon"/> 2178 <optional> 2179 <ref name="storageStartupPolicy"/> 2180 </optional> 2181 <optional> 2182 <ref name="encryption"/> 2183 </optional> 2184 <zeroOrMore> 2185 <ref name="devSeclabel"/> 2186 </zeroOrMore> 2187 </interleave> 2188 </element> 2189 </optional> 2190 </define> 2191 2192 <define name="diskSourceNvme"> 2193 <attribute name="type"> 2194 <value>nvme</value> 2195 </attribute> 2196 <optional> 2197 <element name="source"> 2198 <interleave> 2199 <attribute name="type"> 2200 <value>pci</value> 2201 </attribute> 2202 <attribute name="namespace"> 2203 <ref name="uint32"/> 2204 </attribute> 2205 <optional> 2206 <attribute name="managed"> 2207 <ref name="virYesNo"/> 2208 </attribute> 2209 </optional> 2210 <element name="address"> 2211 <ref name="pciaddress"/> 2212 </element> 2213 <ref name="diskSourceCommon"/> 2214 <optional> 2215 <ref name="storageStartupPolicy"/> 2216 </optional> 2217 <optional> 2218 <ref name="encryption"/> 2219 </optional> 2220 </interleave> 2221 </element> 2222 </optional> 2223 </define> 2224 2225 <define name="diskSourceVhostUser"> 2226 <attribute name="type"> 2227 <value>vhostuser</value> 2228 </attribute> 2229 <element name="source"> 2230 <attribute name="type"> 2231 <value>unix</value> 2232 </attribute> 2233 <attribute name="path"> 2234 <ref name="absFilePath"/> 2235 </attribute> 2236 <optional> 2237 <ref name="reconnect"/> 2238 </optional> 2239 <empty/> 2240 </element> 2241 </define> 2242 2243 <define name="diskTarget"> 2244 <data type="string"> 2245 <param name="pattern">(ioemu:)?(fd|hd|sd|vd|xvd|ubd)[a-zA-Z0-9_]+</param> 2246 </data> 2247 </define> 2248 <define name="target"> 2249 <element name="target"> 2250 <attribute name="dev"> 2251 <ref name="diskTarget"/> 2252 </attribute> 2253 <optional> 2254 <attribute name="bus"> 2255 <choice> 2256 <value>ide</value> 2257 <value>fdc</value> 2258 <value>scsi</value> 2259 <value>virtio</value> 2260 <value>xen</value> 2261 <value>usb</value> 2262 <value>uml</value> <!-- NOT USED ANYMORE --> 2263 <value>sata</value> 2264 <value>sd</value> 2265 </choice> 2266 </attribute> 2267 </optional> 2268 <optional> 2269 <attribute name="tray"> 2270 <choice> 2271 <value>open</value> 2272 <value>closed</value> 2273 </choice> 2274 </attribute> 2275 </optional> 2276 <optional> 2277 <attribute name="removable"> 2278 <ref name="virOnOff"/> 2279 </attribute> 2280 </optional> 2281 <optional> 2282 <attribute name="rotation_rate"> 2283 <ref name="positiveInteger"/> 2284 </attribute> 2285 </optional> 2286 </element> 2287 </define> 2288 <define name="geometry"> 2289 <element name="geometry"> 2290 <attribute name="cyls"> 2291 <data type="integer"/> 2292 </attribute> 2293 <attribute name="heads"> 2294 <data type="integer"/> 2295 </attribute> 2296 <attribute name="secs"> 2297 <data type="integer"/> 2298 </attribute> 2299 <optional> 2300 <attribute name="trans"> 2301 <choice> 2302 <value>auto</value> 2303 <value>none</value> 2304 <value>lba</value> 2305 </choice> 2306 </attribute> 2307 </optional> 2308 </element> 2309 </define> 2310 <define name="diskBlockIo"> 2311 <element name="blockio"> 2312 <optional> 2313 <attribute name="logical_block_size"> 2314 <data type="integer"/> 2315 </attribute> 2316 </optional> 2317 <optional> 2318 <attribute name="physical_block_size"> 2319 <data type="integer"/> 2320 </attribute> 2321 </optional> 2322 </element> 2323 </define> 2324 <!-- 2325 Disk may use a special driver for access. 2326 --> 2327 <define name="diskDriver"> 2328 <element name="driver"> 2329 <optional> 2330 <ref name="driverFormat"/> 2331 </optional> 2332 <optional> 2333 <ref name="driverCache"/> 2334 </optional> 2335 <optional> 2336 <ref name="driverErrorPolicy"/> 2337 </optional> 2338 <optional> 2339 <ref name="driverRerrorPolicy"/> 2340 </optional> 2341 <optional> 2342 <ref name="driverIO"/> 2343 </optional> 2344 <optional> 2345 <ref name="ioeventfd"/> 2346 </optional> 2347 <optional> 2348 <ref name="event_idx"/> 2349 </optional> 2350 <optional> 2351 <ref name="copy_on_read"/> 2352 </optional> 2353 <optional> 2354 <ref name="discard"/> 2355 </optional> 2356 <optional> 2357 <ref name="driverIOThread"/> 2358 </optional> 2359 <optional> 2360 <ref name="detect_zeroes"/> 2361 </optional> 2362 <optional> 2363 <attribute name="queues"> 2364 <ref name="positiveInteger"/> 2365 </attribute> 2366 </optional> 2367 <optional> 2368 <attribute name="queue_size"> 2369 <ref name="positiveInteger"/> 2370 </attribute> 2371 </optional> 2372 <ref name="virtioOptions"/> 2373 <optional> 2374 <element name="metadata_cache"> 2375 <optional> 2376 <element name="max_size"> 2377 <ref name="scaledInteger"/> 2378 </element> 2379 </optional> 2380 </element> 2381 </optional> 2382 </element> 2383 </define> 2384 <define name="driverFormat"> 2385 <optional> 2386 <attribute name="name"> 2387 <ref name="genericName"/> 2388 </attribute> 2389 </optional> 2390 <optional> 2391 <attribute name="type"> 2392 <choice> 2393 <ref name="storageFormat"/> 2394 <value>aio</value> <!-- back-compat for "raw" --> 2395 </choice> 2396 </attribute> 2397 </optional> 2398 </define> 2399 2400 <define name="driverCache"> 2401 <attribute name="cache"> 2402 <choice> 2403 <value>default</value> 2404 <value>none</value> 2405 <value>writeback</value> 2406 <value>writethrough</value> 2407 <value>directsync</value> 2408 <value>unsafe</value> 2409 </choice> 2410 </attribute> 2411 </define> 2412 <define name="driverErrorPolicy"> 2413 <attribute name="error_policy"> 2414 <choice> 2415 <value>stop</value> 2416 <value>report</value> 2417 <value>ignore</value> 2418 <value>enospace</value> 2419 </choice> 2420 </attribute> 2421 </define> 2422 <define name="driverRerrorPolicy"> 2423 <attribute name="rerror_policy"> 2424 <choice> 2425 <value>stop</value> 2426 <value>report</value> 2427 <value>ignore</value> 2428 </choice> 2429 </attribute> 2430 </define> 2431 <define name="driverIO"> 2432 <attribute name="io"> 2433 <choice> 2434 <value>threads</value> 2435 <value>native</value> 2436 <value>io_uring</value> 2437 </choice> 2438 </attribute> 2439 </define> 2440 <define name="ioeventfd"> 2441 <attribute name="ioeventfd"> 2442 <ref name="virOnOff"/> 2443 </attribute> 2444 </define> 2445 <define name="event_idx"> 2446 <attribute name="event_idx"> 2447 <ref name="virOnOff"/> 2448 </attribute> 2449 </define> 2450 <define name="copy_on_read"> 2451 <attribute name="copy_on_read"> 2452 <ref name="virOnOff"/> 2453 </attribute> 2454 </define> 2455 <define name="discard"> 2456 <attribute name="discard"> 2457 <choice> 2458 <value>unmap</value> 2459 <value>ignore</value> 2460 </choice> 2461 </attribute> 2462 </define> 2463 <define name="driverIOThread"> 2464 <attribute name="iothread"> 2465 <ref name="unsignedInt"/> 2466 </attribute> 2467 </define> 2468 <define name="detect_zeroes"> 2469 <attribute name="detect_zeroes"> 2470 <choice> 2471 <value>off</value> 2472 <value>on</value> 2473 <value>unmap</value> 2474 </choice> 2475 </attribute> 2476 </define> 2477 <define name="controller"> 2478 <element name="controller"> 2479 <optional> 2480 <attribute name="index"> 2481 <ref name="unsignedInt"/> 2482 </attribute> 2483 </optional> 2484 <interleave> 2485 <optional> 2486 <ref name="alias"/> 2487 </optional> 2488 <optional> 2489 <ref name="acpi"/> 2490 </optional> 2491 <optional> 2492 <ref name="address"/> 2493 </optional> 2494 <choice> 2495 <!-- fdc/sata/ccid have only the common attributes --> 2496 <group> 2497 <attribute name="type"> 2498 <choice> 2499 <value>fdc</value> 2500 <value>sata</value> 2501 <value>ccid</value> 2502 </choice> 2503 </attribute> 2504 </group> 2505 <!-- scsi has an optional attribute "model" --> 2506 <group> 2507 <attribute name="type"> 2508 <value>scsi</value> 2509 </attribute> 2510 <optional> 2511 <attribute name="model"> 2512 <choice> 2513 <value>auto</value> 2514 <value>buslogic</value> 2515 <value>lsilogic</value> 2516 <value>lsisas1068</value> 2517 <value>vmpvscsi</value> 2518 <value>ibmvscsi</value> 2519 <value>virtio-scsi</value> 2520 <value>lsisas1078</value> 2521 <value>virtio-transitional</value> 2522 <value>virtio-non-transitional</value> 2523 <value>ncr53c90</value> 2524 <value>dc390</value> 2525 <value>am53c974</value> 2526 </choice> 2527 </attribute> 2528 </optional> 2529 </group> 2530 <!-- usb has an optional attribute "model", 2531 and optional subelements "master" and "ports" --> 2532 <group> 2533 <attribute name="type"> 2534 <value>usb</value> 2535 </attribute> 2536 <optional> 2537 <attribute name="model"> 2538 <choice> 2539 <value>piix3-uhci</value> 2540 <value>piix4-uhci</value> 2541 <value>ehci</value> 2542 <value>ich9-ehci1</value> 2543 <value>ich9-uhci1</value> 2544 <value>ich9-uhci2</value> 2545 <value>ich9-uhci3</value> 2546 <value>vt82c686b-uhci</value> 2547 <value>pci-ohci</value> 2548 <value>nec-xhci</value> 2549 <value>none</value> 2550 <value>qusb1</value> 2551 <value>qusb2</value> 2552 <value>qemu-xhci</value> 2553 </choice> 2554 </attribute> 2555 </optional> 2556 <optional> 2557 <ref name="usbmaster"/> 2558 </optional> 2559 <optional> 2560 <attribute name="ports"> 2561 <ref name="unsignedInt"/> 2562 </attribute> 2563 </optional> 2564 </group> 2565 <!-- ide has an optional attribute "model" --> 2566 <group> 2567 <attribute name="type"> 2568 <value>ide</value> 2569 </attribute> 2570 <optional> 2571 <attribute name="model"> 2572 <choice> 2573 <value>piix3</value> 2574 <value>piix4</value> 2575 <value>ich6</value> 2576 </choice> 2577 </attribute> 2578 </optional> 2579 </group> 2580 <!-- isa --> 2581 <group> 2582 <attribute name="type"> 2583 <value>isa</value> 2584 </attribute> 2585 </group> 2586 <!-- pci has an optional attribute "model" --> 2587 <group> 2588 <attribute name="type"> 2589 <value>pci</value> 2590 </attribute> 2591 <optional> 2592 <element name="model"> 2593 <attribute name="name"> 2594 <choice> 2595 <!-- implementations of "pci-root" --> 2596 <value>spapr-pci-host-bridge</value> 2597 <!-- implementations of "pci-bridge" --> 2598 <value>pci-bridge</value> 2599 <!-- implementations of "dmi-to-pci-bridge" --> 2600 <value>i82801b11-bridge</value> 2601 <!-- implementations of "pcie-to-pci-bridge" --> 2602 <value>pcie-pci-bridge</value> 2603 <!-- implementations of "pcie-root-port" --> 2604 <value>ioh3420</value> 2605 <value>pcie-root-port</value> 2606 <!-- implementations of "pcie-switch-upstream-port" --> 2607 <value>x3130-upstream</value> 2608 <!-- implementations of "pcie-switch-downstream-port" --> 2609 <value>xio3130-downstream</value> 2610 <!-- implementations of "pci-expander-bus" --> 2611 <value>pxb</value> 2612 <!-- implementations of "pcie-expander-bus" --> 2613 <value>pxb-pcie</value> 2614 </choice> 2615 </attribute> 2616 <empty/> 2617 </element> 2618 </optional> 2619 <optional> 2620 <element name="target"> 2621 <optional> 2622 <attribute name="chassisNr"> 2623 <ref name="uint8"/> 2624 </attribute> 2625 </optional> 2626 <optional> 2627 <attribute name="chassis"> 2628 <ref name="uint8"/> 2629 </attribute> 2630 </optional> 2631 <optional> 2632 <attribute name="port"> 2633 <ref name="uint8"/> 2634 </attribute> 2635 </optional> 2636 <optional> 2637 <attribute name="busNr"> 2638 <ref name="uint8"/> 2639 </attribute> 2640 </optional> 2641 <optional> 2642 <attribute name="index"> 2643 <ref name="uint8"/> 2644 </attribute> 2645 </optional> 2646 <optional> 2647 <attribute name="hotplug"> 2648 <ref name="virOnOff"/> 2649 </attribute> 2650 </optional> 2651 <optional> 2652 <element name="node"> 2653 <ref name="unsignedInt"/> 2654 </element> 2655 </optional> 2656 </element> 2657 </optional> 2658 <!-- *-root controllers have an optional element "pcihole64"--> 2659 <choice> 2660 <group> 2661 <attribute name="model"> 2662 <choice> 2663 <value>pci-root</value> 2664 <value>pcie-root</value> 2665 </choice> 2666 </attribute> 2667 <optional> 2668 <element name="pcihole64"> 2669 <ref name="scaledInteger"/> 2670 </element> 2671 </optional> 2672 </group> 2673 <group> 2674 <attribute name="model"> 2675 <choice> 2676 <value>pci-bridge</value> 2677 <value>dmi-to-pci-bridge</value> 2678 <value>pcie-to-pci-bridge</value> 2679 <value>pcie-root-port</value> 2680 <value>pcie-switch-upstream-port</value> 2681 <value>pcie-switch-downstream-port</value> 2682 <value>pci-expander-bus</value> 2683 <value>pcie-expander-bus</value> 2684 </choice> 2685 </attribute> 2686 </group> 2687 </choice> 2688 </group> 2689 <!-- virtio-serial has optional "ports" and "vectors" --> 2690 <group> 2691 <attribute name="type"> 2692 <value>virtio-serial</value> 2693 </attribute> 2694 <optional> 2695 <attribute name="model"> 2696 <choice> 2697 <value>virtio</value> 2698 <value>virtio-transitional</value> 2699 <value>virtio-non-transitional</value> 2700 </choice> 2701 </attribute> 2702 </optional> 2703 <optional> 2704 <attribute name="ports"> 2705 <ref name="unsignedInt"/> 2706 </attribute> 2707 </optional> 2708 <optional> 2709 <attribute name="vectors"> 2710 <ref name="unsignedInt"/> 2711 </attribute> 2712 </optional> 2713 </group> 2714 <!-- xenbus has an optional attribute "maxGrantFrames" --> 2715 <group> 2716 <attribute name="type"> 2717 <value>xenbus</value> 2718 </attribute> 2719 <optional> 2720 <attribute name="maxGrantFrames"> 2721 <ref name="unsignedInt"/> 2722 </attribute> 2723 </optional> 2724 <optional> 2725 <attribute name="maxEventChannels"> 2726 <ref name="unsignedInt"/> 2727 </attribute> 2728 </optional> 2729 </group> 2730 </choice> 2731 <optional> 2732 <element name="driver"> 2733 <optional> 2734 <attribute name="queues"> 2735 <ref name="unsignedInt"/> 2736 </attribute> 2737 </optional> 2738 <optional> 2739 <attribute name="cmd_per_lun"> 2740 <ref name="unsignedInt"/> 2741 </attribute> 2742 </optional> 2743 <optional> 2744 <attribute name="max_sectors"> 2745 <ref name="unsignedInt"/> 2746 </attribute> 2747 </optional> 2748 <optional> 2749 <ref name="ioeventfd"/> 2750 </optional> 2751 <optional> 2752 <ref name="driverIOThread"/> 2753 </optional> 2754 <ref name="virtioOptions"/> 2755 </element> 2756 </optional> 2757 </interleave> 2758 </element> 2759 </define> 2760 <define name="filesystem"> 2761 <element name="filesystem"> 2762 <interleave> 2763 <choice> 2764 <group> 2765 <attribute name="type"> 2766 <value>file</value> 2767 </attribute> 2768 <interleave> 2769 <optional> 2770 <ref name="fsDriver"/> 2771 </optional> 2772 <element name="source"> 2773 <attribute name="file"> 2774 <ref name="absFilePath"/> 2775 </attribute> 2776 <empty/> 2777 </element> 2778 </interleave> 2779 </group> 2780 <group> 2781 <attribute name="type"> 2782 <value>block</value> 2783 </attribute> 2784 <interleave> 2785 <optional> 2786 <ref name="fsDriver"/> 2787 </optional> 2788 <element name="source"> 2789 <attribute name="dev"> 2790 <ref name="absFilePath"/> 2791 </attribute> 2792 <empty/> 2793 </element> 2794 </interleave> 2795 </group> 2796 <group> 2797 <!-- type="mount" is default --> 2798 <optional> 2799 <attribute name="type"> 2800 <value>mount</value> 2801 </attribute> 2802 </optional> 2803 <interleave> 2804 <optional> 2805 <ref name="fsDriver"/> 2806 </optional> 2807 <optional> 2808 <ref name="fsBinary"/> 2809 </optional> 2810 <element name="source"> 2811 <choice> 2812 <group> 2813 <attribute name="dir"> 2814 <ref name="absDirPath"/> 2815 </attribute> 2816 </group> 2817 <group> 2818 <attribute name="socket"> 2819 <ref name="absFilePath"/> 2820 </attribute> 2821 </group> 2822 </choice> 2823 <empty/> 2824 </element> 2825 </interleave> 2826 </group> 2827 <group> 2828 <optional> 2829 <attribute name="type"> 2830 <value>bind</value> 2831 </attribute> 2832 </optional> 2833 <interleave> 2834 <optional> 2835 <ref name="fsDriver"/> 2836 </optional> 2837 <element name="source"> 2838 <attribute name="dir"> 2839 <ref name="absDirPath"/> 2840 </attribute> 2841 <empty/> 2842 </element> 2843 </interleave> 2844 </group> 2845 <group> 2846 <attribute name="type"> 2847 <value>template</value> 2848 </attribute> 2849 <interleave> 2850 <optional> 2851 <ref name="fsDriver"/> 2852 </optional> 2853 <element name="source"> 2854 <attribute name="name"> 2855 <ref name="genericName"/> 2856 </attribute> 2857 <empty/> 2858 </element> 2859 </interleave> 2860 </group> 2861 <group> 2862 <attribute name="type"> 2863 <value>ram</value> 2864 </attribute> 2865 <interleave> 2866 <optional> 2867 <ref name="fsDriver"/> 2868 </optional> 2869 <element name="source"> 2870 <attribute name="usage"> 2871 <ref name="unsignedLong"/> 2872 </attribute> 2873 <optional> 2874 <attribute name="units"> 2875 <ref name="unit"/> 2876 </attribute> 2877 </optional> 2878 <empty/> 2879 </element> 2880 </interleave> 2881 </group> 2882 </choice> 2883 <interleave> 2884 <element name="target"> 2885 <attribute name="dir"/> 2886 <empty/> 2887 </element> 2888 <optional> 2889 <attribute name="accessmode"> 2890 <choice> 2891 <value>passthrough</value> 2892 <value>mapped</value> 2893 <value>squash</value> 2894 </choice> 2895 </attribute> 2896 </optional> 2897 <optional> 2898 <attribute name="multidevs"> 2899 <choice> 2900 <value>default</value> 2901 <value>remap</value> 2902 <value>forbid</value> 2903 <value>warn</value> 2904 </choice> 2905 </attribute> 2906 </optional> 2907 <optional> 2908 <attribute name="fmode"> 2909 <ref name="createMode"/> 2910 </attribute> 2911 </optional> 2912 <optional> 2913 <attribute name="dmode"> 2914 <ref name="createMode"/> 2915 </attribute> 2916 </optional> 2917 <optional> 2918 <element name="readonly"> 2919 <empty/> 2920 </element> 2921 </optional> 2922 <optional> 2923 <ref name="deviceBoot"/> 2924 </optional> 2925 <optional> 2926 <ref name="alias"/> 2927 </optional> 2928 <optional> 2929 <ref name="acpi"/> 2930 </optional> 2931 <optional> 2932 <ref name="address"/> 2933 </optional> 2934 </interleave> 2935 <interleave> 2936 <optional> 2937 <element name="space_hard_limit"> 2938 <ref name="scaledInteger"/> 2939 </element> 2940 </optional> 2941 <optional> 2942 <element name="space_soft_limit"> 2943 <ref name="scaledInteger"/> 2944 </element> 2945 </optional> 2946 </interleave> 2947 <optional> 2948 <attribute name="model"> 2949 <choice> 2950 <value>virtio</value> 2951 <value>virtio-transitional</value> 2952 <value>virtio-non-transitional</value> 2953 </choice> 2954 </attribute> 2955 </optional> 2956 </interleave> 2957 </element> 2958 </define> 2959 <define name="fsDriver"> 2960 <element name="driver"> 2961 <!-- Annoying inconsistency. "disk" uses "name" 2962 for this kind of info, and "type" for the 2963 storage format. We need the latter too, so 2964 had to invent a new attribute name --> 2965 <choice> 2966 <group> 2967 <optional> 2968 <attribute name="type"> 2969 <choice> 2970 <value>path</value> 2971 <value>handle</value> 2972 <value>loop</value> 2973 <value>nbd</value> 2974 <value>ploop</value> 2975 </choice> 2976 </attribute> 2977 </optional> 2978 <optional> 2979 <attribute name="format"> 2980 <ref name="storageFormat"/> 2981 </attribute> 2982 </optional> 2983 <optional> 2984 <attribute name="wrpolicy"> 2985 <value>immediate</value> 2986 </attribute> 2987 </optional> 2988 <ref name="virtioOptions"/> 2989 </group> 2990 <group> 2991 <attribute name="type"> 2992 <value>virtiofs</value> 2993 </attribute> 2994 <optional> 2995 <attribute name="queue"> 2996 <ref name="unsignedInt"/> 2997 </attribute> 2998 </optional> 2999 <ref name="virtioOptions"/> 3000 </group> 3001 <empty/> 3002 </choice> 3003 </element> 3004 </define> 3005 <define name="fsBinary"> 3006 <element name="binary"> 3007 <optional> 3008 <attribute name="path"> 3009 <ref name="absFilePath"/> 3010 </attribute> 3011 </optional> 3012 <optional> 3013 <attribute name="xattr"> 3014 <ref name="virOnOff"/> 3015 </attribute> 3016 </optional> 3017 <interleave> 3018 <optional> 3019 <element name="cache"> 3020 <optional> 3021 <attribute name="mode"> 3022 <choice> 3023 <value>none</value> 3024 <value>always</value> 3025 </choice> 3026 </attribute> 3027 </optional> 3028 </element> 3029 </optional> 3030 <optional> 3031 <element name="sandbox"> 3032 <optional> 3033 <attribute name="mode"> 3034 <choice> 3035 <value>namespace</value> 3036 <value>chroot</value> 3037 </choice> 3038 </attribute> 3039 </optional> 3040 </element> 3041 </optional> 3042 <optional> 3043 <element name="lock"> 3044 <optional> 3045 <attribute name="posix"> 3046 <ref name="virOnOff"/> 3047 </attribute> 3048 </optional> 3049 <optional> 3050 <attribute name="flock"> 3051 <ref name="virOnOff"/> 3052 </attribute> 3053 </optional> 3054 </element> 3055 </optional> 3056 </interleave> 3057 </element> 3058 </define> 3059 3060 <define name="interface-network-attributes"> 3061 <attribute name="network"> 3062 <text/> 3063 </attribute> 3064 <optional> 3065 <attribute name="portgroup"> 3066 <ref name="deviceName"/> 3067 </attribute> 3068 </optional> 3069 <optional> 3070 <attribute name="portid"> 3071 <ref name="UUID"/> 3072 </attribute> 3073 </optional> 3074 </define> 3075 3076 <define name="interface-bridge-attributes"> 3077 <attribute name="bridge"> 3078 <data type="string"> 3079 <param name="pattern">[a-zA-Z0-9_\.\-\\:/ ]*</param> 3080 </data> 3081 </attribute> 3082 <optional> 3083 <attribute name="macTableManager"> 3084 <ref name="macTableManager"/> 3085 </attribute> 3086 </optional> 3087 </define> 3088 3089 <!-- 3090 An interface description can either be of type bridge in which case 3091 it will use a bridging source, or of type ethernet which uses a device 3092 source and a device target instead. They both share a set of interface 3093 options. FIXME 3094 --> 3095 <define name="interface"> 3096 <element name="interface"> 3097 <choice> 3098 <group> 3099 <attribute name="type"> 3100 <value>bridge</value> 3101 </attribute> 3102 <interleave> 3103 <optional> 3104 <element name="source"> 3105 <ref name="interface-bridge-attributes"/> 3106 <optional> 3107 <ref name="interface-network-attributes"/> 3108 </optional> 3109 <empty/> 3110 </element> 3111 </optional> 3112 <optional> 3113 <ref name="virtualPortProfile"/> 3114 </optional> 3115 <ref name="interface-options"/> 3116 </interleave> 3117 </group> 3118 <group> 3119 <attribute name="type"> 3120 <value>ethernet</value> 3121 </attribute> 3122 <interleave> 3123 <optional> 3124 <element name="source"> 3125 <ref name="interface-ip-info"/> 3126 </element> 3127 </optional> 3128 <ref name="interface-options"/> 3129 </interleave> 3130 </group> 3131 <group> 3132 <attribute name="type"> 3133 <value>vhostuser</value> 3134 </attribute> 3135 <interleave> 3136 <ref name="unixSocketSource"/> 3137 <ref name="interface-options"/> 3138 </interleave> 3139 </group> 3140 <group> 3141 <attribute name="type"> 3142 <value>network</value> 3143 </attribute> 3144 <interleave> 3145 <element name="source"> 3146 <ref name="interface-network-attributes"/> 3147 <optional> 3148 <ref name="interface-bridge-attributes"/> 3149 </optional> 3150 <empty/> 3151 </element> 3152 <optional> 3153 <ref name="virtualPortProfile"/> 3154 </optional> 3155 <ref name="interface-options"/> 3156 </interleave> 3157 </group> 3158 <group> 3159 <attribute name="type"> 3160 <value>direct</value> 3161 </attribute> 3162 <interleave> 3163 <element name="source"> 3164 <attribute name="dev"> 3165 <ref name="deviceName"/> 3166 </attribute> 3167 <optional> 3168 <attribute name="mode"> 3169 <ref name="bridgeMode"/> 3170 </attribute> 3171 </optional> 3172 <optional> 3173 <ref name="interface-network-attributes"/> 3174 </optional> 3175 <empty/> 3176 </element> 3177 <optional> 3178 <ref name="virtualPortProfile"/> 3179 </optional> 3180 <ref name="interface-options"/> 3181 </interleave> 3182 </group> 3183 <group> 3184 <attribute name="type"> 3185 <value>user</value> 3186 </attribute> 3187 <interleave> 3188 <ref name="interface-options"/> 3189 </interleave> 3190 </group> 3191 <group> 3192 <attribute name="type"> 3193 <value>internal</value> 3194 </attribute> 3195 <interleave> 3196 <element name="source"> 3197 <attribute name="name"> 3198 <ref name="deviceName"/> 3199 </attribute> 3200 <empty/> 3201 </element> 3202 <ref name="interface-options"/> 3203 </interleave> 3204 </group> 3205 <group> 3206 <attribute name="type"> 3207 <choice> 3208 <value>mcast</value> 3209 <value>client</value> 3210 </choice> 3211 </attribute> 3212 <interleave> 3213 <element name="source"> 3214 <attribute name="address"> 3215 <ref name="ipv4Addr"/> 3216 </attribute> 3217 <attribute name="port"> 3218 <ref name="PortNumber"/> 3219 </attribute> 3220 <empty/> 3221 </element> 3222 <ref name="interface-options"/> 3223 </interleave> 3224 </group> 3225 <group> 3226 <attribute name="type"> 3227 <value>udp</value> 3228 </attribute> 3229 <interleave> 3230 <element name="source"> 3231 <attribute name="address"> 3232 <ref name="ipv4Addr"/> 3233 </attribute> 3234 <attribute name="port"> 3235 <ref name="PortNumber"/> 3236 </attribute> 3237 <element name="local"> 3238 <attribute name="address"> 3239 <ref name="ipv4Addr"/> 3240 </attribute> 3241 <attribute name="port"> 3242 <ref name="PortNumber"/> 3243 </attribute> 3244 <empty/> 3245 </element> 3246 </element> 3247 <ref name="interface-options"/> 3248 </interleave> 3249 </group> 3250 <group> 3251 <attribute name="type"> 3252 <value>server</value> 3253 </attribute> 3254 <interleave> 3255 <element name="source"> 3256 <optional> 3257 <attribute name="address"> 3258 <ref name="ipv4Addr"/> 3259 </attribute> 3260 </optional> 3261 <attribute name="port"> 3262 <ref name="PortNumber"/> 3263 </attribute> 3264 <empty/> 3265 </element> 3266 <ref name="interface-options"/> 3267 </interleave> 3268 </group> 3269 <group> 3270 <attribute name="type"> 3271 <value>hostdev</value> 3272 </attribute> 3273 <optional> 3274 <attribute name="managed"> 3275 <ref name="virYesNo"/> 3276 </attribute> 3277 </optional> 3278 <interleave> 3279 <element name="source"> 3280 <optional> 3281 <attribute name="missing"> 3282 <ref name="virYesNo"/> 3283 </attribute> 3284 </optional> 3285 <choice> 3286 <group> 3287 <ref name="usbproduct"/> 3288 <optional> 3289 <ref name="usbaddress"/> 3290 </optional> 3291 </group> 3292 <element name="address"> 3293 <choice> 3294 <group> 3295 <attribute name="type"> 3296 <value>pci</value> 3297 </attribute> 3298 <ref name="pciaddress"/> 3299 </group> 3300 <group> 3301 <attribute name="type"> 3302 <value>usb</value> 3303 </attribute> 3304 <attribute name="bus"> 3305 <ref name="usbAddr"/> 3306 </attribute> 3307 <attribute name="device"> 3308 <ref name="usbAddr"/> 3309 </attribute> 3310 </group> 3311 </choice> 3312 </element> 3313 </choice> 3314 </element> 3315 <optional> 3316 <ref name="virtualPortProfile"/> 3317 </optional> 3318 <ref name="interface-options"/> 3319 </interleave> 3320 </group> 3321 3322 <group> 3323 <attribute name="type"> 3324 <value>vdpa</value> 3325 </attribute> 3326 <interleave> 3327 <element name="source"> 3328 <attribute name="dev"> 3329 <ref name="deviceName"/> 3330 </attribute> 3331 </element> 3332 <ref name="interface-options"/> 3333 </interleave> 3334 </group> 3335 3336 </choice> 3337 <optional> 3338 <attribute name="trustGuestRxFilters"> 3339 <ref name="virYesNo"/> 3340 </attribute> 3341 </optional> 3342 </element> 3343 </define> 3344 <!-- 3345 The interface options possible are: 3346 - the MAC address 3347 - the IP address bound to the interface 3348 - the name of the script used to set up the binding 3349 - the target device used 3350 - boot order 3351 - link state 3352 --> 3353 <define name="interface-options"> 3354 <interleave> 3355 <optional> 3356 <element name="link"> 3357 <attribute name="state"> 3358 <choice> 3359 <value>up</value> 3360 <value>down</value> 3361 </choice> 3362 </attribute> 3363 <empty/> 3364 </element> 3365 </optional> 3366 <optional> 3367 <ref name="mtu"/> 3368 </optional> 3369 <optional> 3370 <ref name="coalesce"/> 3371 </optional> 3372 <optional> 3373 <element name="target"> 3374 <attribute name="dev"> 3375 <ref name="deviceName"/> 3376 </attribute> 3377 <optional> 3378 <attribute name="managed"> 3379 <ref name="virYesNo"/> 3380 </attribute> 3381 </optional> 3382 <empty/> 3383 </element> 3384 </optional> 3385 <optional> 3386 <element name="guest"> 3387 <interleave> 3388 <optional> 3389 <attribute name="dev"> 3390 <ref name="deviceName"/> 3391 </attribute> 3392 </optional> 3393 <optional> 3394 <attribute name="actual"> 3395 <ref name="deviceName"/> 3396 </attribute> 3397 </optional> 3398 </interleave> 3399 <empty/> 3400 </element> 3401 </optional> 3402 <optional> 3403 <element name="mac"> 3404 <attribute name="address"> 3405 <ref name="uniMacAddr"/> 3406 </attribute> 3407 <optional> 3408 <attribute name="type"> 3409 <choice> 3410 <value>generated</value> 3411 <value>static</value> 3412 </choice> 3413 </attribute> 3414 </optional> 3415 <optional> 3416 <attribute name="check"> 3417 <ref name="virYesNo"/> 3418 </attribute> 3419 </optional> 3420 <empty/> 3421 </element> 3422 </optional> 3423 <ref name="interface-ip-info"/> 3424 <optional> 3425 <element name="script"> 3426 <attribute name="path"> 3427 <ref name="filePath"/> 3428 </attribute> 3429 <empty/> 3430 </element> 3431 </optional> 3432 <optional> 3433 <element name="downscript"> 3434 <attribute name="path"> 3435 <ref name="filePath"/> 3436 </attribute> 3437 <empty/> 3438 </element> 3439 </optional> 3440 <optional> 3441 <element name="backenddomain"> 3442 <attribute name="name"> 3443 <ref name="objectNameWithSlash"/> 3444 </attribute> 3445 <empty/> 3446 </element> 3447 </optional> 3448 <optional> 3449 <element name="model"> 3450 <attribute name="type"> 3451 <data type="string"> 3452 <param name="pattern">[a-zA-Z0-9\-_]+</param> 3453 </data> 3454 </attribute> 3455 <empty/> 3456 </element> 3457 </optional> 3458 <optional> 3459 <element name="backend"> 3460 <optional> 3461 <attribute name="tap"> 3462 <ref name="absFilePath"/> 3463 </attribute> 3464 </optional> 3465 <optional> 3466 <attribute name="vhost"> 3467 <ref name="absFilePath"/> 3468 </attribute> 3469 </optional> 3470 </element> 3471 </optional> 3472 <optional> 3473 <element name="driver"> 3474 <choice> 3475 <group> 3476 <attribute name="name"> 3477 <choice> 3478 <value>kvm</value> 3479 <value>vfio</value> 3480 <value>xen</value> 3481 </choice> 3482 </attribute> 3483 </group> 3484 <group> 3485 <optional> 3486 <attribute name="name"> 3487 <choice> 3488 <value>qemu</value> 3489 <value>vhost</value> 3490 </choice> 3491 </attribute> 3492 </optional> 3493 <optional> 3494 <attribute name="queues"> 3495 <ref name="positiveInteger"/> 3496 </attribute> 3497 </optional> 3498 <optional> 3499 <attribute name="rx_queue_size"> 3500 <ref name="positiveInteger"/> 3501 </attribute> 3502 </optional> 3503 <optional> 3504 <attribute name="tx_queue_size"> 3505 <ref name="positiveInteger"/> 3506 </attribute> 3507 </optional> 3508 <optional> 3509 <attribute name="txmode"> 3510 <choice> 3511 <value>iothread</value> 3512 <value>timer</value> 3513 </choice> 3514 </attribute> 3515 </optional> 3516 <optional> 3517 <ref name="ioeventfd"/> 3518 </optional> 3519 <optional> 3520 <ref name="event_idx"/> 3521 </optional> 3522 </group> 3523 </choice> 3524 <ref name="virtioOptions"/> 3525 <interleave> 3526 <optional> 3527 <element name="host"> 3528 <optional> 3529 <attribute name="csum"> 3530 <ref name="virOnOff"/> 3531 </attribute> 3532 </optional> 3533 <optional> 3534 <attribute name="gso"> 3535 <ref name="virOnOff"/> 3536 </attribute> 3537 </optional> 3538 <optional> 3539 <attribute name="tso4"> 3540 <ref name="virOnOff"/> 3541 </attribute> 3542 </optional> 3543 <optional> 3544 <attribute name="tso6"> 3545 <ref name="virOnOff"/> 3546 </attribute> 3547 </optional> 3548 <optional> 3549 <attribute name="ecn"> 3550 <ref name="virOnOff"/> 3551 </attribute> 3552 </optional> 3553 <optional> 3554 <attribute name="ufo"> 3555 <ref name="virOnOff"/> 3556 </attribute> 3557 </optional> 3558 <optional> 3559 <attribute name="mrg_rxbuf"> 3560 <ref name="virOnOff"/> 3561 </attribute> 3562 </optional> 3563 </element> 3564 </optional> 3565 <optional> 3566 <element name="guest"> 3567 <optional> 3568 <attribute name="csum"> 3569 <ref name="virOnOff"/> 3570 </attribute> 3571 </optional> 3572 <optional> 3573 <attribute name="tso4"> 3574 <ref name="virOnOff"/> 3575 </attribute> 3576 </optional> 3577 <optional> 3578 <attribute name="tso6"> 3579 <ref name="virOnOff"/> 3580 </attribute> 3581 </optional> 3582 <optional> 3583 <attribute name="ecn"> 3584 <ref name="virOnOff"/> 3585 </attribute> 3586 </optional> 3587 <optional> 3588 <attribute name="ufo"> 3589 <ref name="virOnOff"/> 3590 </attribute> 3591 </optional> 3592 </element> 3593 </optional> 3594 </interleave> 3595 </element> 3596 </optional> 3597 <optional> 3598 <ref name="alias"/> 3599 </optional> 3600 <optional> 3601 <ref name="acpi"/> 3602 </optional> 3603 <optional> 3604 <ref name="address"/> 3605 </optional> 3606 <optional> 3607 <element name="filterref"> 3608 <ref name="filterref-node-attributes"/> 3609 </element> 3610 </optional> 3611 <optional> 3612 <element name="tune"> 3613 <optional> 3614 <!-- size of send buffer for network tap devices --> 3615 <element name="sndbuf"> 3616 <ref name="unsignedInt"/> 3617 </element> 3618 </optional> 3619 </element> 3620 </optional> 3621 <optional> 3622 <ref name="deviceBoot"/> 3623 </optional> 3624 <optional> 3625 <ref name="rom"/> 3626 </optional> 3627 <optional> 3628 <ref name="bandwidth"/> 3629 </optional> 3630 <optional> 3631 <ref name="vlan"/> 3632 </optional> 3633 <optional> 3634 <ref name="portOptions"/> 3635 </optional> 3636 <optional> 3637 <ref name="teaming"/> 3638 </optional> 3639 </interleave> 3640 </define> 3641 3642 <!-- 3643 All ip-related info for either the host or guest side of an interface 3644 --> 3645 <define name="interface-ip-info"> 3646 <zeroOrMore> 3647 <element name="ip"> 3648 <attribute name="address"> 3649 <ref name="ipAddr"/> 3650 </attribute> 3651 <optional> 3652 <attribute name="family"> 3653 <ref name="addr-family"/> 3654 </attribute> 3655 </optional> 3656 <optional> 3657 <attribute name="prefix"> 3658 <ref name="ipPrefix"/> 3659 </attribute> 3660 </optional> 3661 <optional> 3662 <attribute name="peer"> 3663 <ref name="ipAddr"/> 3664 </attribute> 3665 </optional> 3666 <empty/> 3667 </element> 3668 </zeroOrMore> 3669 <zeroOrMore> 3670 <ref name="route"/> 3671 </zeroOrMore> 3672 </define> 3673 3674 <define name="teaming"> 3675 <element name="teaming"> 3676 <choice> 3677 <group> 3678 <attribute name="type"> 3679 <value>persistent</value> 3680 </attribute> 3681 </group> 3682 <group> 3683 <attribute name="type"> 3684 <value>transient</value> 3685 </attribute> 3686 <attribute name="persistent"> 3687 <ref name="aliasName"/> 3688 </attribute> 3689 </group> 3690 </choice> 3691 </element> 3692 </define> 3693 3694 <!-- 3695 An emulator description is just a path to the binary used for the task 3696 --> 3697 <define name="emulator"> 3698 <element name="emulator"> 3699 <ref name="absFilePath"/> 3700 </element> 3701 </define> 3702 <!-- 3703 A graphic description (SPICE, VNC, SDL, ...) 3704 --> 3705 <define name="graphic"> 3706 <element name="graphics"> 3707 <choice> 3708 <group> 3709 <attribute name="type"> 3710 <value>sdl</value> 3711 </attribute> 3712 <optional> 3713 <attribute name="display"> 3714 <text/> 3715 </attribute> 3716 </optional> 3717 <optional> 3718 <attribute name="xauth"> 3719 <text/> 3720 </attribute> 3721 </optional> 3722 <optional> 3723 <attribute name="fullscreen"> 3724 <ref name="virYesNo"/> 3725 </attribute> 3726 </optional> 3727 <optional> 3728 <element name="gl"> 3729 <attribute name="enable"> 3730 <ref name="virYesNo"/> 3731 </attribute> 3732 <empty/> 3733 </element> 3734 </optional> 3735 </group> 3736 <group> 3737 <attribute name="type"> 3738 <value>vnc</value> 3739 </attribute> 3740 <choice> 3741 <group> 3742 <optional> 3743 <attribute name="port"> 3744 <ref name="PortNumber"/> 3745 </attribute> 3746 </optional> 3747 <optional> 3748 <attribute name="autoport"> 3749 <ref name="virYesNo"/> 3750 </attribute> 3751 </optional> 3752 <optional> 3753 <attribute name="websocket"> 3754 <ref name="PortNumber"/> 3755 </attribute> 3756 </optional> 3757 <optional> 3758 <attribute name="listen"> 3759 <ref name="addrIPorName"/> 3760 </attribute> 3761 </optional> 3762 <optional> 3763 <attribute name="sharePolicy"> 3764 <choice> 3765 <value>allow-exclusive</value> 3766 <value>force-shared</value> 3767 <value>ignore</value> 3768 </choice> 3769 </attribute> 3770 </optional> 3771 <optional> 3772 <attribute name="powerControl"> 3773 <ref name="virYesNo"/> 3774 </attribute> 3775 </optional> 3776 </group> 3777 <group> 3778 <optional> 3779 <attribute name="socket"> 3780 <ref name="absFilePath"/> 3781 </attribute> 3782 </optional> 3783 </group> 3784 </choice> 3785 <optional> 3786 <attribute name="passwd"> 3787 <text/> 3788 </attribute> 3789 </optional> 3790 <optional> 3791 <attribute name="keymap"> 3792 <text/> 3793 </attribute> 3794 </optional> 3795 <optional> 3796 <attribute name="passwdValidTo"> 3797 <data type="dateTime"/> 3798 </attribute> 3799 </optional> 3800 <optional> 3801 <attribute name="connected"> 3802 <value>keep</value> 3803 </attribute> 3804 </optional> 3805 <interleave> 3806 <optional> 3807 <element name="audio"> 3808 <attribute name="id"> 3809 <ref name="uint8"/> 3810 </attribute> 3811 </element> 3812 </optional> 3813 <ref name="listenElements"/> 3814 </interleave> 3815 </group> 3816 <group> 3817 <attribute name="type"> 3818 <value>spice</value> 3819 </attribute> 3820 <optional> 3821 <attribute name="port"> 3822 <ref name="PortNumber"/> 3823 </attribute> 3824 </optional> 3825 <optional> 3826 <attribute name="tlsPort"> 3827 <ref name="PortNumber"/> 3828 </attribute> 3829 </optional> 3830 <optional> 3831 <attribute name="autoport"> 3832 <ref name="virYesNo"/> 3833 </attribute> 3834 </optional> 3835 <optional> 3836 <attribute name="listen"> 3837 <ref name="addrIPorName"/> 3838 </attribute> 3839 </optional> 3840 <optional> 3841 <attribute name="passwd"> 3842 <text/> 3843 </attribute> 3844 </optional> 3845 <optional> 3846 <attribute name="keymap"> 3847 <text/> 3848 </attribute> 3849 </optional> 3850 <optional> 3851 <attribute name="passwdValidTo"> 3852 <data type="dateTime"/> 3853 </attribute> 3854 </optional> 3855 <optional> 3856 <attribute name="connected"> 3857 <choice> 3858 <value>fail</value> 3859 <value>disconnect</value> 3860 <value>keep</value> 3861 </choice> 3862 </attribute> 3863 </optional> 3864 <optional> 3865 <attribute name="defaultMode"> 3866 <choice> 3867 <value>any</value> 3868 <value>secure</value> 3869 <value>insecure</value> 3870 </choice> 3871 </attribute> 3872 </optional> 3873 <interleave> 3874 <ref name="listenElements"/> 3875 <zeroOrMore> 3876 <element name="channel"> 3877 <attribute name="name"> 3878 <choice> 3879 <value>main</value> 3880 <value>display</value> 3881 <value>inputs</value> 3882 <value>cursor</value> 3883 <value>playback</value> 3884 <value>record</value> 3885 <value>smartcard</value> 3886 <value>usbredir</value> 3887 </choice> 3888 </attribute> 3889 <attribute name="mode"> 3890 <choice> 3891 <value>any</value> 3892 <value>secure</value> 3893 <value>insecure</value> 3894 </choice> 3895 </attribute> 3896 <empty/> 3897 </element> 3898 </zeroOrMore> 3899 <optional> 3900 <element name="image"> 3901 <attribute name="compression"> 3902 <choice> 3903 <value>auto_glz</value> 3904 <value>auto_lz</value> 3905 <value>quic</value> 3906 <value>glz</value> 3907 <value>lz</value> 3908 <value>off</value> 3909 </choice> 3910 </attribute> 3911 <empty/> 3912 </element> 3913 </optional> 3914 <optional> 3915 <element name="jpeg"> 3916 <attribute name="compression"> 3917 <choice> 3918 <value>auto</value> 3919 <value>never</value> 3920 <value>always</value> 3921 </choice> 3922 </attribute> 3923 <empty/> 3924 </element> 3925 </optional> 3926 <optional> 3927 <element name="zlib"> 3928 <attribute name="compression"> 3929 <choice> 3930 <value>auto</value> 3931 <value>never</value> 3932 <value>always</value> 3933 </choice> 3934 </attribute> 3935 <empty/> 3936 </element> 3937 </optional> 3938 <optional> 3939 <element name="playback"> 3940 <attribute name="compression"> 3941 <ref name="virOnOff"/> 3942 </attribute> 3943 <empty/> 3944 </element> 3945 </optional> 3946 <optional> 3947 <element name="streaming"> 3948 <attribute name="mode"> 3949 <choice> 3950 <value>filter</value> 3951 <value>all</value> 3952 <value>off</value> 3953 </choice> 3954 </attribute> 3955 <empty/> 3956 </element> 3957 </optional> 3958 <optional> 3959 <element name="clipboard"> 3960 <attribute name="copypaste"> 3961 <ref name="virYesNo"/> 3962 </attribute> 3963 <empty/> 3964 </element> 3965 </optional> 3966 <optional> 3967 <element name="mouse"> 3968 <attribute name="mode"> 3969 <choice> 3970 <value>server</value> 3971 <value>client</value> 3972 </choice> 3973 </attribute> 3974 <empty/> 3975 </element> 3976 </optional> 3977 <optional> 3978 <element name="filetransfer"> 3979 <attribute name="enable"> 3980 <ref name="virYesNo"/> 3981 </attribute> 3982 <empty/> 3983 </element> 3984 </optional> 3985 <optional> 3986 <element name="gl"> 3987 <attribute name="enable"> 3988 <ref name="virYesNo"/> 3989 </attribute> 3990 <optional> 3991 <attribute name="rendernode"> 3992 <ref name="absFilePath"/> 3993 </attribute> 3994 </optional> 3995 <empty/> 3996 </element> 3997 </optional> 3998 </interleave> 3999 </group> 4000 <group> 4001 <attribute name="type"> 4002 <value>rdp</value> 4003 </attribute> 4004 <optional> 4005 <attribute name="port"> 4006 <ref name="PortNumber"/> 4007 </attribute> 4008 </optional> 4009 <optional> 4010 <attribute name="autoport"> 4011 <ref name="virYesNo"/> 4012 </attribute> 4013 </optional> 4014 <optional> 4015 <attribute name="replaceUser"> 4016 <ref name="virYesNo"/> 4017 </attribute> 4018 </optional> 4019 <optional> 4020 <attribute name="multiUser"> 4021 <ref name="virYesNo"/> 4022 </attribute> 4023 </optional> 4024 <optional> 4025 <attribute name="listen"> 4026 <ref name="addrIPorName"/> 4027 </attribute> 4028 </optional> 4029 <ref name="listenElements"/> 4030 </group> 4031 <group> 4032 <attribute name="type"> 4033 <value>desktop</value> 4034 </attribute> 4035 <optional> 4036 <attribute name="display"> 4037 <text/> 4038 </attribute> 4039 </optional> 4040 <optional> 4041 <attribute name="fullscreen"> 4042 <ref name="virYesNo"/> 4043 </attribute> 4044 </optional> 4045 </group> 4046 <group> 4047 <attribute name="type"> 4048 <value>egl-headless</value> 4049 </attribute> 4050 <optional> 4051 <element name="gl"> 4052 <optional> 4053 <attribute name="rendernode"> 4054 <ref name="absFilePath"/> 4055 </attribute> 4056 </optional> 4057 </element> 4058 </optional> 4059 </group> 4060 </choice> 4061 </element> 4062 </define> 4063 4064 <define name="listenElements"> 4065 <zeroOrMore> 4066 <element name="listen"> 4067 <choice> 4068 <group> 4069 <attribute name="type"> 4070 <value>address</value> 4071 </attribute> 4072 <optional> 4073 <attribute name="address"> 4074 <ref name="addrIPorName"/> 4075 </attribute> 4076 </optional> 4077 </group> 4078 <group> 4079 <attribute name="type"> 4080 <value>network</value> 4081 </attribute> 4082 <attribute name="network"> 4083 <text/> 4084 </attribute> 4085 <optional> 4086 <attribute name="address"> 4087 <ref name="addrIPorName"/> 4088 </attribute> 4089 </optional> 4090 </group> 4091 <group> 4092 <attribute name="type"> 4093 <value>socket</value> 4094 </attribute> 4095 <optional> 4096 <attribute name="socket"> 4097 <ref name="absFilePath"/> 4098 </attribute> 4099 </optional> 4100 </group> 4101 <group> 4102 <attribute name="type"> 4103 <value>none</value> 4104 </attribute> 4105 </group> 4106 </choice> 4107 </element> 4108 </zeroOrMore> 4109 </define> 4110 <!-- 4111 A video adapter description, allowing configuration of device 4112 model, number of virtual heads, video ram size, and for qxl 4113 both ram bar sizes. 4114 --> 4115 <define name="video"> 4116 <element name="video"> 4117 <interleave> 4118 <optional> 4119 <element name="driver"> 4120 <optional> 4121 <ref name="virtioOptions"/> 4122 </optional> 4123 <optional> 4124 <attribute name="name"> 4125 <choice> 4126 <value>qemu</value> 4127 <value>vhostuser</value> 4128 </choice> 4129 </attribute> 4130 </optional> 4131 <optional> 4132 <attribute name="vgaconf"> 4133 <choice> 4134 <value>io</value> 4135 <value>on</value> 4136 <value>off</value> 4137 </choice> 4138 </attribute> 4139 </optional> 4140 </element> 4141 </optional> 4142 <optional> 4143 <element name="model"> 4144 <choice> 4145 <attribute name="type"> 4146 <choice> 4147 <value>vga</value> 4148 <value>cirrus</value> 4149 <value>vmvga</value> 4150 <value>xen</value> 4151 <value>vbox</value> 4152 <value>virtio</value> 4153 <value>gop</value> 4154 <value>none</value> 4155 <value>bochs</value> 4156 <value>ramfb</value> 4157 </choice> 4158 </attribute> 4159 <group> 4160 <attribute name="type"> 4161 <value>qxl</value> 4162 </attribute> 4163 <optional> 4164 <attribute name="ram"> 4165 <ref name="unsignedInt"/> 4166 </attribute> 4167 </optional> 4168 <optional> 4169 <attribute name="vgamem"> 4170 <ref name="unsignedInt"/> 4171 </attribute> 4172 </optional> 4173 <optional> 4174 <attribute name="vram64"> 4175 <ref name="unsignedInt"/> 4176 </attribute> 4177 </optional> 4178 </group> 4179 </choice> 4180 <optional> 4181 <attribute name="vram"> 4182 <ref name="unsignedInt"/> 4183 </attribute> 4184 </optional> 4185 <optional> 4186 <attribute name="heads"> 4187 <ref name="unsignedInt"/> 4188 </attribute> 4189 </optional> 4190 <optional> 4191 <attribute name="primary"> 4192 <ref name="virYesNo"/> 4193 </attribute> 4194 </optional> 4195 <optional> 4196 <element name="acceleration"> 4197 <optional> 4198 <attribute name="accel3d"> 4199 <ref name="virYesNo"/> 4200 </attribute> 4201 </optional> 4202 <optional> 4203 <attribute name="accel2d"> 4204 <ref name="virYesNo"/> 4205 </attribute> 4206 </optional> 4207 <optional> 4208 <attribute name="rendernode"> 4209 <ref name="absFilePath"/> 4210 </attribute> 4211 </optional> 4212 </element> 4213 </optional> 4214 <optional> 4215 <element name="resolution"> 4216 <attribute name="x"> 4217 <ref name="unsignedInt"/> 4218 </attribute> 4219 <attribute name="y"> 4220 <ref name="unsignedInt"/> 4221 </attribute> 4222 </element> 4223 </optional> 4224 </element> 4225 </optional> 4226 <optional> 4227 <ref name="alias"/> 4228 </optional> 4229 <optional> 4230 <ref name="acpi"/> 4231 </optional> 4232 <optional> 4233 <ref name="address"/> 4234 </optional> 4235 </interleave> 4236 </element> 4237 </define> 4238 <!-- 4239 When a certain event happens, multiple policies can be applied 4240 depends on what happened: 4241 --> 4242 <define name="events"> 4243 <interleave> 4244 <optional> 4245 <element name="on_reboot"> 4246 <ref name="offOptions"/> 4247 </element> 4248 </optional> 4249 <optional> 4250 <element name="on_poweroff"> 4251 <ref name="offOptions"/> 4252 </element> 4253 </optional> 4254 <optional> 4255 <element name="on_crash"> 4256 <ref name="crashOptions"/> 4257 </element> 4258 </optional> 4259 <optional> 4260 <element name="on_lockfailure"> 4261 <ref name="lockfailureOptions"/> 4262 </element> 4263 </optional> 4264 </interleave> 4265 </define> 4266 <!-- 4267 Options when a domain terminates: 4268 destroy: The domain is cleaned up 4269 restart: A new domain is started in place of the old one 4270 preserve: The domain will remain in memory until it is destroyed manually 4271 rename-restart: a variant of the previous one but where the old domain is 4272 renamed before being saved to allow a restart 4273 --> 4274 <define name="offOptions"> 4275 <choice> 4276 <value>destroy</value> 4277 <value>restart</value> 4278 <value>preserve</value> 4279 <value>rename-restart</value> 4280 </choice> 4281 </define> 4282 <!-- 4283 Options when a domain crashes: 4284 destroy: The domain is cleaned up 4285 restart: A new domain is started in place of the old one 4286 preserve: The domain will remain in memory until it is destroyed manually 4287 rename-restart: a variant of the previous one but where the old domain is 4288 renamed before being saved to allow a restart 4289 coredump-destroy: The crashed domain's core will be dumped, and then the 4290 domain will be terminated completely and all resources 4291 released 4292 coredump-restart: The crashed domain's core will be dumped, and then the 4293 domain will be restarted with the same configuration 4294 --> 4295 <define name="crashOptions"> 4296 <choice> 4297 <value>destroy</value> 4298 <value>restart</value> 4299 <value>preserve</value> 4300 <value>rename-restart</value> 4301 <value>coredump-destroy</value> 4302 <value>coredump-restart</value> 4303 </choice> 4304 </define> 4305 <!-- 4306 Options when resource locks are lost: 4307 poweroff: power off the domain 4308 restart: power off the domain and start it up again to reacquire the 4309 locks 4310 pause: pause the execution of the domain so that it can be manually 4311 resumed when lock issues are solved 4312 ignore: keep the domain running 4313 --> 4314 <define name="lockfailureOptions"> 4315 <choice> 4316 <value>poweroff</value> 4317 <value>restart</value> 4318 <value>pause</value> 4319 <value>ignore</value> 4320 </choice> 4321 </define> 4322 <!-- 4323 Control ACPI sleep states (dis)allowed for the domain 4324 For each of the states the following rules apply: 4325 on: the state will be forcefully enabled 4326 off: the state will be forcefully disabled 4327 not specified: hypervisor will be left to decide its defaults 4328 --> 4329 <define name="pm"> 4330 <element name="pm"> 4331 <interleave> 4332 <optional> 4333 <element name="suspend-to-mem"> 4334 <ref name="suspendChoices"/> 4335 </element> 4336 </optional> 4337 <optional> 4338 <element name="suspend-to-disk"> 4339 <ref name="suspendChoices"/> 4340 </element> 4341 </optional> 4342 </interleave> 4343 <empty/> 4344 </element> 4345 </define> 4346 <define name="suspendChoices"> 4347 <optional> 4348 <attribute name="enabled"> 4349 <ref name="virYesNo"/> 4350 </attribute> 4351 </optional> 4352 </define> 4353 <!-- 4354 Specific setup for a qemu emulated character device. Note: this 4355 definition doesn't fully specify the constraints on this node. 4356 --> 4357 <define name="qemucdev"> 4358 <ref name="qemucdevSrcType"/> 4359 <optional> 4360 <attribute name="tty"> 4361 <ref name="absFilePath"/> 4362 </attribute> 4363 </optional> 4364 <interleave> 4365 <ref name="qemucdevSrcDef"/> 4366 <optional> 4367 <ref name="qemucdevTgtDef"/> 4368 </optional> 4369 <optional> 4370 <ref name="alias"/> 4371 </optional> 4372 <optional> 4373 <ref name="acpi"/> 4374 </optional> 4375 <optional> 4376 <ref name="address"/> 4377 </optional> 4378 </interleave> 4379 </define> 4380 4381 <define name="qemucdevConsoleTgtType"> 4382 <attribute name="type"> 4383 <choice> 4384 <value>xen</value> 4385 <value>serial</value> 4386 <value>uml</value> <!-- NOT USED ANYMORE --> 4387 <value>virtio</value> 4388 <value>lxc</value> 4389 <value>openvz</value> 4390 <value>sclp</value> 4391 <value>sclplm</value> 4392 </choice> 4393 </attribute> 4394 </define> 4395 4396 <define name="qemucdevSerialTgtType"> 4397 <attribute name="type"> 4398 <choice> 4399 <value>isa-serial</value> 4400 <value>usb-serial</value> 4401 <value>pci-serial</value> 4402 <value>spapr-vio-serial</value> 4403 <value>system-serial</value> 4404 <value>sclp-serial</value> 4405 </choice> 4406 </attribute> 4407 </define> 4408 4409 <define name="qemucdevSerialTgtModel"> 4410 <element name="model"> 4411 <attribute name="name"> 4412 <choice> 4413 <value>isa-serial</value> 4414 <value>usb-serial</value> 4415 <value>pci-serial</value> 4416 <value>spapr-vty</value> 4417 <value>pl011</value> 4418 <value>16550a</value> 4419 <value>sclpconsole</value> 4420 <value>sclplmconsole</value> 4421 </choice> 4422 </attribute> 4423 </element> 4424 </define> 4425 4426 <define name="qemucdevTgtDef"> 4427 <element name="target"> 4428 <interleave> 4429 <choice> 4430 <optional> 4431 <ref name="qemucdevConsoleTgtType"/> 4432 </optional> 4433 <optional> 4434 <ref name="qemucdevSerialTgtType"/> 4435 </optional> 4436 </choice> 4437 <optional> 4438 <attribute name="port"/> 4439 </optional> 4440 <optional> 4441 <ref name="qemucdevSerialTgtModel"/> 4442 </optional> 4443 </interleave> 4444 </element> 4445 </define> 4446 4447 <define name="qemucdevSrcTypeChoice"> 4448 <choice> 4449 <value>dev</value> 4450 <value>file</value> 4451 <value>pipe</value> 4452 <value>unix</value> 4453 <value>tcp</value> 4454 <value>udp</value> 4455 <value>null</value> 4456 <value>stdio</value> 4457 <value>vc</value> 4458 <value>pty</value> 4459 <value>spicevmc</value> 4460 <value>spiceport</value> 4461 <value>nmdm</value> 4462 </choice> 4463 </define> 4464 4465 <define name="usbdevfilter"> 4466 <element name="usbdev"> 4467 <attribute name="allow"> 4468 <ref name="virYesNo"/> 4469 </attribute> 4470 <optional> 4471 <attribute name="class"> 4472 <choice> 4473 <ref name="usbClass"/> 4474 <ref name="usbIdDefault"/> 4475 </choice> 4476 </attribute> 4477 </optional> 4478 <optional> 4479 <attribute name="vendor"> 4480 <choice> 4481 <ref name="usbId"/> 4482 <ref name="usbIdDefault"/> 4483 </choice> 4484 </attribute> 4485 </optional> 4486 <optional> 4487 <attribute name="product"> 4488 <choice> 4489 <ref name="usbId"/> 4490 <ref name="usbIdDefault"/> 4491 </choice> 4492 </attribute> 4493 </optional> 4494 <optional> 4495 <attribute name="version"> 4496 <choice> 4497 <ref name="usbVersion"/> 4498 <ref name="usbIdDefault"/> 4499 </choice> 4500 </attribute> 4501 </optional> 4502 </element> 4503 </define> 4504 4505 <define name="qemucdevSrcType"> 4506 <attribute name="type"> 4507 <ref name="qemucdevSrcTypeChoice"/> 4508 </attribute> 4509 </define> 4510 <define name="qemucdevSrcDef"> 4511 <zeroOrMore> 4512 <element name="source"> 4513 <optional> 4514 <attribute name="mode"/> 4515 </optional> 4516 <optional> 4517 <attribute name="path"/> 4518 </optional> 4519 <optional> 4520 <attribute name="host"/> 4521 </optional> 4522 <optional> 4523 <attribute name="service"/> 4524 </optional> 4525 <optional> 4526 <attribute name="channel"/> 4527 </optional> 4528 <optional> 4529 <attribute name="master"/> 4530 </optional> 4531 <optional> 4532 <attribute name="slave"/> 4533 </optional> 4534 <optional> 4535 <attribute name="append"> 4536 <ref name="virOnOff"/> 4537 </attribute> 4538 </optional> 4539 <optional> 4540 <attribute name="tls"> 4541 <ref name="virYesNo"/> 4542 </attribute> 4543 </optional> 4544 <optional> 4545 <ref name="reconnect"/> 4546 </optional> 4547 <zeroOrMore> 4548 <ref name="devSeclabel"/> 4549 </zeroOrMore> 4550 </element> 4551 </zeroOrMore> 4552 <optional> 4553 <element name="protocol"> 4554 <optional> 4555 <attribute name="type"> 4556 <choice> 4557 <value>raw</value> 4558 <value>telnet</value> 4559 <value>telnets</value> 4560 <value>tls</value> 4561 </choice> 4562 </attribute> 4563 </optional> 4564 </element> 4565 </optional> 4566 <optional> 4567 <element name="log"> 4568 <attribute name="file"> 4569 <ref name="absFilePath"/> 4570 </attribute> 4571 <optional> 4572 <attribute name="append"> 4573 <ref name="virOnOff"/> 4574 </attribute> 4575 </optional> 4576 </element> 4577 </optional> 4578 </define> 4579 <!-- 4580 The description for a console 4581 just a tty device 4582 --> 4583 <define name="console"> 4584 <element name="console"> 4585 <choice> 4586 <group> 4587 <optional> 4588 <attribute name="tty"> 4589 <ref name="absFilePath"/> 4590 </attribute> 4591 </optional> 4592 <empty/> 4593 </group> 4594 <ref name="qemucdev"/> 4595 </choice> 4596 </element> 4597 </define> 4598 <define name="codec"> 4599 <element name="codec"> 4600 <attribute name="type"> 4601 <choice> 4602 <value>duplex</value> 4603 <value>micro</value> 4604 <value>output</value> 4605 </choice> 4606 </attribute> 4607 </element> 4608 </define> 4609 <define name="sound"> 4610 <element name="sound"> 4611 <attribute name="model"> 4612 <choice> 4613 <value>sb16</value> 4614 <value>es1370</value> 4615 <value>pcspk</value> 4616 <value>ac97</value> 4617 <value>ich6</value> 4618 <value>ich7</value> 4619 <value>ich9</value> 4620 <value>usb</value> 4621 </choice> 4622 </attribute> 4623 <interleave> 4624 <optional> 4625 <ref name="alias"/> 4626 </optional> 4627 <optional> 4628 <ref name="acpi"/> 4629 </optional> 4630 <optional> 4631 <ref name="address"/> 4632 </optional> 4633 <optional> 4634 <element name="audio"> 4635 <attribute name="id"> 4636 <ref name="uint8"/> 4637 </attribute> 4638 </element> 4639 </optional> 4640 <zeroOrMore> 4641 <ref name="codec"/> 4642 </zeroOrMore> 4643 </interleave> 4644 </element> 4645 </define> 4646 4647 <define name="audiocommonattr"> 4648 <optional> 4649 <attribute name="mixingEngine"> 4650 <ref name="virYesNo"/> 4651 </attribute> 4652 </optional> 4653 <optional> 4654 <attribute name="fixedSettings"> 4655 <ref name="virYesNo"/> 4656 </attribute> 4657 </optional> 4658 <optional> 4659 <attribute name="voices"> 4660 <ref name="uint32"/> 4661 </attribute> 4662 </optional> 4663 <optional> 4664 <attribute name="bufferLength"> 4665 <ref name="uint32"/> 4666 </attribute> 4667 </optional> 4668 </define> 4669 4670 <define name="audiocommonchild"> 4671 <optional> 4672 <element name="settings"> 4673 <optional> 4674 <attribute name="frequency"> 4675 <ref name="uint32"/> 4676 </attribute> 4677 </optional> 4678 <optional> 4679 <attribute name="channels"> 4680 <ref name="uint32"/> 4681 </attribute> 4682 </optional> 4683 <optional> 4684 <attribute name="format"> 4685 <choice> 4686 <value>s8</value> 4687 <value>u8</value> 4688 <value>s16</value> 4689 <value>u16</value> 4690 <value>s32</value> 4691 <value>u32</value> 4692 <value>f32</value> 4693 </choice> 4694 </attribute> 4695 </optional> 4696 </element> 4697 </optional> 4698 </define> 4699 4700 <define name="audionone"> 4701 <ref name="audiocommonattr"/> 4702 <ref name="audiocommonchild"/> 4703 </define> 4704 4705 <define name="audioalsa"> 4706 <ref name="audiocommonattr"/> 4707 <optional> 4708 <attribute name="dev"> 4709 <ref name="filePath"/> 4710 </attribute> 4711 </optional> 4712 <ref name="audiocommonchild"/> 4713 </define> 4714 4715 <define name="audiocoreaudio"> 4716 <ref name="audiocommonattr"/> 4717 <optional> 4718 <attribute name="bufferCount"> 4719 <ref name="uint32"/> 4720 </attribute> 4721 </optional> 4722 <ref name="audiocommonchild"/> 4723 </define> 4724 4725 <define name="audiojack"> 4726 <ref name="audiocommonattr"/> 4727 <optional> 4728 <attribute name="serverName"> 4729 <data type="string"/> 4730 </attribute> 4731 </optional> 4732 <optional> 4733 <attribute name="clientName"> 4734 <data type="string"/> 4735 </attribute> 4736 </optional> 4737 <optional> 4738 <attribute name="connectPorts"> 4739 <data type="string"/> 4740 </attribute> 4741 </optional> 4742 <optional> 4743 <attribute name="exactName"> 4744 <ref name="virYesNo"/> 4745 </attribute> 4746 </optional> 4747 <ref name="audiocommonchild"/> 4748 </define> 4749 4750 <define name="audiooss"> 4751 <ref name="audiocommonattr"/> 4752 <optional> 4753 <attribute name="dev"> 4754 <ref name="deviceName"/> 4755 </attribute> 4756 </optional> 4757 <optional> 4758 <attribute name="bufferCount"> 4759 <ref name="uint32"/> 4760 </attribute> 4761 </optional> 4762 <optional> 4763 <attribute name="tryPoll"> 4764 <ref name="virYesNo"/> 4765 </attribute> 4766 </optional> 4767 <ref name="audiocommonchild"/> 4768 </define> 4769 4770 <define name="audiopulseaudio"> 4771 <ref name="audiocommonattr"/> 4772 <optional> 4773 <attribute name="name"> 4774 <data type="string"/> 4775 </attribute> 4776 </optional> 4777 <optional> 4778 <attribute name="streamName"> 4779 <data type="string"/> 4780 </attribute> 4781 </optional> 4782 <optional> 4783 <attribute name="latency"> 4784 <ref name="uint32"/> 4785 </attribute> 4786 </optional> 4787 <ref name="audiocommonchild"/> 4788 </define> 4789 4790 <define name="audiosdl"> 4791 <ref name="audiocommonattr"/> 4792 <optional> 4793 <attribute name="bufferCount"> 4794 <ref name="uint32"/> 4795 </attribute> 4796 </optional> 4797 <ref name="audiocommonchild"/> 4798 </define> 4799 4800 <define name="audiospice"> 4801 <ref name="audiocommonattr"/> 4802 <ref name="audiocommonchild"/> 4803 </define> 4804 4805 <define name="audiofile"> 4806 <ref name="audiocommonattr"/> 4807 <ref name="audiocommonchild"/> 4808 </define> 4809 4810 <define name="audio"> 4811 <element name="audio"> 4812 <attribute name="id"> 4813 <ref name="uint8"/> 4814 </attribute> 4815 <optional> 4816 <attribute name="timerPeriod"> 4817 <ref name="uint32"/> 4818 </attribute> 4819 </optional> 4820 <choice> 4821 <group> 4822 <attribute name="type"> 4823 <value>none</value> 4824 </attribute> 4825 <interleave> 4826 <optional> 4827 <element name="input"> 4828 <ref name="audionone"/> 4829 </element> 4830 </optional> 4831 <optional> 4832 <element name="output"> 4833 <ref name="audionone"/> 4834 </element> 4835 </optional> 4836 </interleave> 4837 </group> 4838 <group> 4839 <attribute name="type"> 4840 <value>alsa</value> 4841 </attribute> 4842 <interleave> 4843 <optional> 4844 <element name="input"> 4845 <ref name="audioalsa"/> 4846 </element> 4847 </optional> 4848 <optional> 4849 <element name="output"> 4850 <ref name="audioalsa"/> 4851 </element> 4852 </optional> 4853 </interleave> 4854 </group> 4855 <group> 4856 <attribute name="type"> 4857 <value>coreaudio</value> 4858 </attribute> 4859 <interleave> 4860 <optional> 4861 <element name="input"> 4862 <ref name="audiocoreaudio"/> 4863 </element> 4864 </optional> 4865 <optional> 4866 <element name="output"> 4867 <ref name="audiocoreaudio"/> 4868 </element> 4869 </optional> 4870 </interleave> 4871 </group> 4872 <group> 4873 <attribute name="type"> 4874 <value>jack</value> 4875 </attribute> 4876 <interleave> 4877 <optional> 4878 <element name="input"> 4879 <ref name="audiojack"/> 4880 </element> 4881 </optional> 4882 <optional> 4883 <element name="output"> 4884 <ref name="audiojack"/> 4885 </element> 4886 </optional> 4887 </interleave> 4888 </group> 4889 <group> 4890 <attribute name="type"> 4891 <choice> 4892 <value>oss</value> 4893 </choice> 4894 </attribute> 4895 <optional> 4896 <attribute name="tryMMap"> 4897 <ref name="virYesNo"/> 4898 </attribute> 4899 </optional> 4900 <optional> 4901 <attribute name="exclusive"> 4902 <ref name="virYesNo"/> 4903 </attribute> 4904 </optional> 4905 <optional> 4906 <attribute name="dspPolicy"> 4907 <data type="int"/> 4908 </attribute> 4909 </optional> 4910 <interleave> 4911 <optional> 4912 <element name="input"> 4913 <ref name="audiooss"/> 4914 </element> 4915 </optional> 4916 <optional> 4917 <element name="output"> 4918 <ref name="audiooss"/> 4919 </element> 4920 </optional> 4921 </interleave> 4922 </group> 4923 <group> 4924 <attribute name="type"> 4925 <value>pulseaudio</value> 4926 </attribute> 4927 <optional> 4928 <attribute name="serverName"> 4929 <data type="string"/> 4930 </attribute> 4931 </optional> 4932 <interleave> 4933 <optional> 4934 <element name="input"> 4935 <ref name="audiopulseaudio"/> 4936 </element> 4937 </optional> 4938 <optional> 4939 <element name="output"> 4940 <ref name="audiopulseaudio"/> 4941 </element> 4942 </optional> 4943 </interleave> 4944 </group> 4945 <group> 4946 <attribute name="type"> 4947 <value>sdl</value> 4948 </attribute> 4949 <optional> 4950 <attribute name="driver"> 4951 <choice> 4952 <value>esd</value> 4953 <value>alsa</value> 4954 <value>arts</value> 4955 <value>pulseaudio</value> 4956 </choice> 4957 </attribute> 4958 </optional> 4959 <interleave> 4960 <optional> 4961 <element name="input"> 4962 <ref name="audiosdl"/> 4963 </element> 4964 </optional> 4965 <optional> 4966 <element name="output"> 4967 <ref name="audiosdl"/> 4968 </element> 4969 </optional> 4970 </interleave> 4971 </group> 4972 <group> 4973 <attribute name="type"> 4974 <value>spice</value> 4975 </attribute> 4976 <interleave> 4977 <optional> 4978 <element name="input"> 4979 <ref name="audiospice"/> 4980 </element> 4981 </optional> 4982 <optional> 4983 <element name="output"> 4984 <ref name="audiospice"/> 4985 </element> 4986 </optional> 4987 </interleave> 4988 </group> 4989 <group> 4990 <attribute name="type"> 4991 <value>file</value> 4992 </attribute> 4993 <optional> 4994 <attribute name="path"> 4995 <ref name="filePath"/> 4996 </attribute> 4997 </optional> 4998 <interleave> 4999 <optional> 5000 <element name="input"> 5001 <ref name="audiofile"/> 5002 </element> 5003 </optional> 5004 <optional> 5005 <element name="output"> 5006 <ref name="audiofile"/> 5007 </element> 5008 </optional> 5009 </interleave> 5010 </group> 5011 </choice> 5012 </element> 5013 </define> 5014 <define name="watchdog"> 5015 <element name="watchdog"> 5016 <attribute name="model"> 5017 <choice> 5018 <value>i6300esb</value> 5019 <value>ib700</value> 5020 <value>diag288</value> 5021 </choice> 5022 </attribute> 5023 <optional> 5024 <attribute name="action"> 5025 <choice> 5026 <value>reset</value> 5027 <value>shutdown</value> 5028 <value>poweroff</value> 5029 <value>pause</value> 5030 <value>none</value> 5031 <value>dump</value> 5032 <value>inject-nmi</value> 5033 </choice> 5034 </attribute> 5035 </optional> 5036 <optional> 5037 <ref name="alias"/> 5038 </optional> 5039 <optional> 5040 <ref name="acpi"/> 5041 </optional> 5042 <optional> 5043 <ref name="address"/> 5044 </optional> 5045 </element> 5046 </define> 5047 <define name="nvram"> 5048 <element name="nvram"> 5049 <optional> 5050 <ref name="address"/> 5051 </optional> 5052 </element> 5053 </define> 5054 5055 <define name="shmem"> 5056 <element name="shmem"> 5057 <attribute name="name"> 5058 <data type="string"> 5059 <param name="pattern">[^/]*</param> 5060 </data> 5061 </attribute> 5062 <optional> 5063 <attribute name="role"> 5064 <choice> 5065 <value>master</value> 5066 <value>peer</value> 5067 </choice> 5068 </attribute> 5069 </optional> 5070 <interleave> 5071 <optional> 5072 <element name="model"> 5073 <attribute name="type"> 5074 <choice> 5075 <value>ivshmem</value> 5076 <value>ivshmem-plain</value> 5077 <value>ivshmem-doorbell</value> 5078 </choice> 5079 </attribute> 5080 </element> 5081 </optional> 5082 <optional> 5083 <element name="size"> 5084 <ref name="scaledInteger"/> 5085 </element> 5086 </optional> 5087 <optional> 5088 <element name="server"> 5089 <optional> 5090 <attribute name="path"> 5091 <ref name="absFilePath"/> 5092 </attribute> 5093 </optional> 5094 </element> 5095 </optional> 5096 <optional> 5097 <element name="msi"> 5098 <optional> 5099 <ref name="ioeventfd"/> 5100 </optional> 5101 <optional> 5102 <attribute name="vectors"> 5103 <ref name="unsignedInt"/> 5104 </attribute> 5105 </optional> 5106 </element> 5107 </optional> 5108 <optional> 5109 <ref name="alias"/> 5110 </optional> 5111 <optional> 5112 <ref name="acpi"/> 5113 </optional> 5114 <optional> 5115 <ref name="address"/> 5116 </optional> 5117 </interleave> 5118 </element> 5119 </define> 5120 5121 <define name="memballoon"> 5122 <element name="memballoon"> 5123 <attribute name="model"> 5124 <choice> 5125 <value>virtio</value> 5126 <value>virtio-transitional</value> 5127 <value>virtio-non-transitional</value> 5128 <value>xen</value> 5129 <value>none</value> 5130 </choice> 5131 </attribute> 5132 <optional> 5133 <attribute name="autodeflate"> 5134 <ref name="virOnOff"/> 5135 </attribute> 5136 </optional> 5137 <optional> 5138 <attribute name="freePageReporting"> 5139 <ref name="virOnOff"/> 5140 </attribute> 5141 </optional> 5142 <interleave> 5143 <optional> 5144 <ref name="alias"/> 5145 </optional> 5146 <optional> 5147 <ref name="acpi"/> 5148 </optional> 5149 <optional> 5150 <ref name="address"/> 5151 </optional> 5152 <optional> 5153 <element name="stats"> 5154 <attribute name="period"> 5155 <ref name="positiveInteger"/> 5156 </attribute> 5157 </element> 5158 </optional> 5159 <optional> 5160 <element name="driver"> 5161 <ref name="virtioOptions"/> 5162 </element> 5163 </optional> 5164 </interleave> 5165 </element> 5166 </define> 5167 <define name="parallel"> 5168 <element name="parallel"> 5169 <ref name="qemucdev"/> 5170 </element> 5171 </define> 5172 <define name="serial"> 5173 <element name="serial"> 5174 <ref name="qemucdev"/> 5175 </element> 5176 </define> 5177 <define name="guestfwdTarget"> 5178 <element name="target"> 5179 <attribute name="type"> 5180 <value>guestfwd</value> 5181 </attribute> 5182 <attribute name="address"/> 5183 <attribute name="port"/> 5184 </element> 5185 </define> 5186 <define name="virtioTarget"> 5187 <element name="target"> 5188 <attribute name="type"> 5189 <value>virtio</value> 5190 </attribute> 5191 <optional> 5192 <attribute name="name"/> 5193 </optional> 5194 <optional> 5195 <attribute name="state"> 5196 <choice> 5197 <value>connected</value> 5198 <value>disconnected</value> 5199 </choice> 5200 </attribute> 5201 </optional> 5202 </element> 5203 </define> 5204 <define name="xenTarget"> 5205 <element name="target"> 5206 <attribute name="type"> 5207 <value>xen</value> 5208 </attribute> 5209 <optional> 5210 <attribute name="name"/> 5211 </optional> 5212 </element> 5213 </define> 5214 <define name="channel"> 5215 <element name="channel"> 5216 <ref name="qemucdevSrcType"/> 5217 <interleave> 5218 <ref name="qemucdevSrcDef"/> 5219 <choice> 5220 <ref name="guestfwdTarget"/> 5221 <ref name="virtioTarget"/> 5222 <ref name="xenTarget"/> 5223 </choice> 5224 <optional> 5225 <ref name="alias"/> 5226 </optional> 5227 <optional> 5228 <ref name="acpi"/> 5229 </optional> 5230 <optional> 5231 <ref name="address"/> 5232 </optional> 5233 </interleave> 5234 </element> 5235 </define> 5236 <define name="smartcard"> 5237 <element name="smartcard"> 5238 <choice> 5239 <group> 5240 <attribute name="mode"> 5241 <value>host</value> 5242 </attribute> 5243 <!-- might need to add optional database element here later --> 5244 </group> 5245 <group> 5246 <attribute name="mode"> 5247 <value>host-certificates</value> 5248 </attribute> 5249 <ref name="certificate"/> 5250 <ref name="certificate"/> 5251 <ref name="certificate"/> 5252 <optional> 5253 <element name="database"> 5254 <ref name="absDirPath"/> 5255 </element> 5256 </optional> 5257 </group> 5258 <group> 5259 <attribute name="mode"> 5260 <value>passthrough</value> 5261 </attribute> 5262 <ref name="qemucdevSrcType"/> 5263 <interleave> 5264 <ref name="qemucdevSrcDef"/> 5265 <optional> 5266 <ref name="qemucdevTgtDef"/> 5267 </optional> 5268 </interleave> 5269 </group> 5270 </choice> 5271 <optional> 5272 <ref name="alias"/> 5273 </optional> 5274 <optional> 5275 <ref name="acpi"/> 5276 </optional> 5277 <optional> 5278 <ref name="address"/> 5279 </optional> 5280 </element> 5281 </define> 5282 <define name="certificate"> 5283 <element name="certificate"> 5284 <text/> 5285 </element> 5286 </define> 5287 5288 <define name="tpm"> 5289 <element name="tpm"> 5290 <optional> 5291 <attribute name="model"> 5292 <choice> 5293 <value>tpm-tis</value> 5294 <value>tpm-crb</value> 5295 <value>tpm-spapr</value> 5296 <value>spapr-tpm-proxy</value> 5297 </choice> 5298 </attribute> 5299 </optional> 5300 <ref name="tpm-backend"/> 5301 <optional> 5302 <ref name="alias"/> 5303 </optional> 5304 <optional> 5305 <ref name="acpi"/> 5306 </optional> 5307 <optional> 5308 <ref name="address"/> 5309 </optional> 5310 </element> 5311 </define> 5312 5313 <define name="tpm-backend"> 5314 <element name="backend"> 5315 <choice> 5316 <group> 5317 <attribute name="type"> 5318 <value>passthrough</value> 5319 </attribute> 5320 <ref name="tpm-passthrough-device"/> 5321 </group> 5322 <group> 5323 <attribute name="type"> 5324 <value>emulator</value> 5325 </attribute> 5326 <ref name="tpm-backend-emulator-encryption"/> 5327 <ref name="tpm-backend-emulator-active-pcr-banks"/> 5328 <optional> 5329 <attribute name="persistent_state"> 5330 <choice> 5331 <value>yes</value> 5332 <value>no</value> 5333 </choice> 5334 </attribute> 5335 </optional> 5336 </group> 5337 </choice> 5338 <optional> 5339 <attribute name="version"> 5340 <choice> 5341 <value>1.2</value> 5342 <value>2.0</value> 5343 </choice> 5344 </attribute> 5345 </optional> 5346 </element> 5347 </define> 5348 5349 <define name="tpm-passthrough-device"> 5350 <optional> 5351 <element name="device"> 5352 <optional> 5353 <attribute name="path"> 5354 <ref name="filePath"/> 5355 </attribute> 5356 </optional> 5357 </element> 5358 </optional> 5359 </define> 5360 5361 <define name="tpm-backend-emulator-encryption"> 5362 <optional> 5363 <element name="encryption"> 5364 <attribute name="secret"> 5365 <ref name="UUID"/> 5366 </attribute> 5367 </element> 5368 </optional> 5369 </define> 5370 5371 <define name="tpm-backend-emulator-active-pcr-banks"> 5372 <optional> 5373 <element name="active_pcr_banks"> 5374 <interleave> 5375 <optional> 5376 <element name="sha1"> 5377 <empty/> 5378 </element> 5379 </optional> 5380 <optional> 5381 <element name="sha256"> 5382 <empty/> 5383 </element> 5384 </optional> 5385 <optional> 5386 <element name="sha384"> 5387 <empty/> 5388 </element> 5389 </optional> 5390 <optional> 5391 <element name="sha512"> 5392 <empty/> 5393 </element> 5394 </optional> 5395 </interleave> 5396 </element> 5397 </optional> 5398 </define> 5399 5400 <define name="vsock"> 5401 <element name="vsock"> 5402 <optional> 5403 <attribute name="model"> 5404 <choice> 5405 <value>virtio</value> 5406 <value>virtio-transitional</value> 5407 <value>virtio-non-transitional</value> 5408 </choice> 5409 </attribute> 5410 </optional> 5411 <interleave> 5412 <optional> 5413 <element name="cid"> 5414 <optional> 5415 <attribute name="auto"> 5416 <ref name="virYesNo"/> 5417 </attribute> 5418 </optional> 5419 <optional> 5420 <attribute name="address"> 5421 <ref name="unsignedInt"/> 5422 </attribute> 5423 </optional> 5424 </element> 5425 </optional> 5426 <optional> 5427 <ref name="address"/> 5428 </optional> 5429 <optional> 5430 <ref name="alias"/> 5431 </optional> 5432 <optional> 5433 <ref name="acpi"/> 5434 </optional> 5435 <optional> 5436 <element name="driver"> 5437 <ref name="virtioOptions"/> 5438 </element> 5439 </optional> 5440 </interleave> 5441 </element> 5442 </define> 5443 <define name="iommu"> 5444 <element name="iommu"> 5445 <attribute name="model"> 5446 <choice> 5447 <value>intel</value> 5448 <value>smmuv3</value> 5449 </choice> 5450 </attribute> 5451 <optional> 5452 <element name="driver"> 5453 <optional> 5454 <attribute name="intremap"> 5455 <ref name="virOnOff"/> 5456 </attribute> 5457 </optional> 5458 <optional> 5459 <attribute name="caching_mode"> 5460 <ref name="virOnOff"/> 5461 </attribute> 5462 </optional> 5463 <optional> 5464 <attribute name="eim"> 5465 <ref name="virOnOff"/> 5466 </attribute> 5467 </optional> 5468 <optional> 5469 <attribute name="iotlb"> 5470 <ref name="virOnOff"/> 5471 </attribute> 5472 </optional> 5473 <optional> 5474 <attribute name="aw_bits"> 5475 <ref name="uint8"/> 5476 </attribute> 5477 </optional> 5478 </element> 5479 </optional> 5480 </element> 5481 </define> 5482 5483 <define name="input"> 5484 <element name="input"> 5485 <interleave> 5486 <optional> 5487 <element name="driver"> 5488 <ref name="virtioOptions"/> 5489 </element> 5490 </optional> 5491 <choice> 5492 <group> 5493 <attribute name="type"> 5494 <choice> 5495 <value>tablet</value> 5496 <value>mouse</value> 5497 <value>keyboard</value> 5498 </choice> 5499 </attribute> 5500 <optional> 5501 <attribute name="bus"> 5502 <choice> 5503 <value>ps2</value> 5504 <value>usb</value> 5505 <value>xen</value> 5506 <value>virtio</value> 5507 </choice> 5508 </attribute> 5509 </optional> 5510 </group> 5511 <group> 5512 <attribute name="type"> 5513 <value>passthrough</value> 5514 </attribute> 5515 <attribute name="bus"> 5516 <value>virtio</value> 5517 </attribute> 5518 <element name="source"> 5519 <attribute name="evdev"> 5520 <ref name="absFilePath"/> 5521 </attribute> 5522 </element> 5523 </group> 5524 <group> 5525 <attribute name="type"> 5526 <value>evdev</value> 5527 </attribute> 5528 <element name="source"> 5529 <attribute name="dev"> 5530 <ref name="absFilePath"/> 5531 </attribute> 5532 <optional> 5533 <attribute name="grab"> 5534 <value>all</value> 5535 </attribute> 5536 </optional> 5537 <optional> 5538 <attribute name="grabToggle"> 5539 <choice> 5540 <value>ctrl-ctrl</value> 5541 <value>alt-alt</value> 5542 <value>shift-shift</value> 5543 <value>meta-meta</value> 5544 <value>scrolllock</value> 5545 <value>ctrl-scrolllock</value> 5546 </choice> 5547 </attribute> 5548 </optional> 5549 <optional> 5550 <attribute name="repeat"> 5551 <ref name="virOnOff"/> 5552 </attribute> 5553 </optional> 5554 </element> 5555 </group> 5556 </choice> 5557 <optional> 5558 <attribute name="model"> 5559 <choice> 5560 <value>virtio</value> 5561 <value>virtio-transitional</value> 5562 <value>virtio-non-transitional</value> 5563 </choice> 5564 </attribute> 5565 </optional> 5566 <optional> 5567 <ref name="alias"/> 5568 </optional> 5569 <optional> 5570 <ref name="acpi"/> 5571 </optional> 5572 <optional> 5573 <ref name="address"/> 5574 </optional> 5575 </interleave> 5576 </element> 5577 </define> 5578 <define name="hub"> 5579 <element name="hub"> 5580 <attribute name="type"> 5581 <value>usb</value> 5582 </attribute> 5583 <interleave> 5584 <optional> 5585 <ref name="alias"/> 5586 </optional> 5587 <optional> 5588 <ref name="acpi"/> 5589 </optional> 5590 <optional> 5591 <ref name="address"/> 5592 </optional> 5593 </interleave> 5594 </element> 5595 </define> 5596 <define name="redirdev"> 5597 <element name="redirdev"> 5598 <attribute name="bus"> 5599 <value>usb</value> 5600 </attribute> 5601 <attribute name="type"> 5602 <ref name="qemucdevSrcTypeChoice"/> 5603 </attribute> 5604 <interleave> 5605 <ref name="qemucdevSrcDef"/> 5606 <optional> 5607 <ref name="alias"/> 5608 </optional> 5609 <optional> 5610 <ref name="acpi"/> 5611 </optional> 5612 <optional> 5613 <ref name="address"/> 5614 </optional> 5615 <optional> 5616 <ref name="deviceBoot"/> 5617 </optional> 5618 </interleave> 5619 </element> 5620 </define> 5621 <define name="redirfilter"> 5622 <element name="redirfilter"> 5623 <zeroOrMore> 5624 <ref name="usbdevfilter"/> 5625 </zeroOrMore> 5626 </element> 5627 </define> 5628 5629 <define name="hostdev"> 5630 <element name="hostdev"> 5631 <interleave> 5632 <choice> 5633 <group> 5634 <ref name="hostdevsubsys"/> 5635 </group> 5636 <group> 5637 <ref name="hostdevcaps"/> 5638 </group> 5639 </choice> 5640 <optional> 5641 <ref name="alias"/> 5642 </optional> 5643 <optional> 5644 <ref name="acpi"/> 5645 </optional> 5646 <optional> 5647 <ref name="deviceBoot"/> 5648 </optional> 5649 <optional> 5650 <ref name="rom"/> 5651 </optional> 5652 <optional> 5653 <ref name="address"/> 5654 </optional> 5655 <optional> 5656 <element name="readonly"> 5657 <empty/> 5658 </element> 5659 </optional> 5660 <optional> 5661 <element name="shareable"> 5662 <empty/> 5663 </element> 5664 </optional> 5665 </interleave> 5666 </element> 5667 </define> 5668 5669 <define name="hostdevsubsys"> 5670 <optional> 5671 <attribute name="mode"> 5672 <value>subsystem</value> 5673 </attribute> 5674 </optional> 5675 <optional> 5676 <attribute name="managed"> 5677 <ref name="virYesNo"/> 5678 </attribute> 5679 </optional> 5680 <choice> 5681 <ref name="hostdevsubsyspci"/> 5682 <ref name="hostdevsubsysusb"/> 5683 <ref name="hostdevsubsysscsi"/> 5684 <ref name="hostdevsubsyshost"/> 5685 <ref name="hostdevsubsysmdev"/> 5686 </choice> 5687 </define> 5688 5689 <define name="hostdevcaps"> 5690 <attribute name="mode"> 5691 <value>capabilities</value> 5692 </attribute> 5693 <choice> 5694 <group> 5695 <ref name="hostdevcapsstorage"/> 5696 </group> 5697 <group> 5698 <ref name="hostdevcapsmisc"/> 5699 </group> 5700 <group> 5701 <ref name="hostdevcapsnet"/> 5702 </group> 5703 </choice> 5704 </define> 5705 5706 5707 <define name="hostdevsubsyspci"> 5708 <attribute name="type"> 5709 <value>pci</value> 5710 </attribute> 5711 <interleave> 5712 <optional> 5713 <element name="driver"> 5714 <attribute name="name"> 5715 <choice> 5716 <value>kvm</value> 5717 <value>vfio</value> 5718 <value>xen</value> 5719 </choice> 5720 </attribute> 5721 <empty/> 5722 </element> 5723 </optional> 5724 <optional> 5725 <ref name="teaming"/> 5726 </optional> 5727 <element name="source"> 5728 <optional> 5729 <ref name="startupPolicy"/> 5730 </optional> 5731 <optional> 5732 <attribute name="writeFiltering"> 5733 <ref name="virYesNo"/> 5734 </attribute> 5735 </optional> 5736 <element name="address"> 5737 <ref name="pciaddress"/> 5738 </element> 5739 </element> 5740 </interleave> 5741 </define> 5742 5743 <define name="hostdevsubsysusb"> 5744 <attribute name="type"> 5745 <value>usb</value> 5746 </attribute> 5747 <element name="source"> 5748 <optional> 5749 <ref name="startupPolicy"/> 5750 </optional> 5751 <choice> 5752 <group> 5753 <ref name="usbproduct"/> 5754 <optional> 5755 <ref name="usbaddress"/> 5756 </optional> 5757 </group> 5758 <ref name="usbaddress"/> 5759 </choice> 5760 </element> 5761 </define> 5762 5763 <define name="hostdevsubsysscsi"> 5764 <attribute name="type"> 5765 <value>scsi</value> 5766 </attribute> 5767 <optional> 5768 <ref name="sgIO"/> 5769 </optional> 5770 <optional> 5771 <ref name="rawIO"/> 5772 </optional> 5773 <element name="source"> 5774 <choice> 5775 <group> <!-- scsi_host adapter --> 5776 <optional> 5777 <attribute name="protocol"> 5778 <value>adapter</value> <!-- scsi_host, default, optional --> 5779 </attribute> 5780 </optional> 5781 <interleave> 5782 <ref name="sourceinfoadapter"/> 5783 <element name="address"> 5784 <ref name="scsiaddress"/> 5785 </element> 5786 </interleave> 5787 </group> 5788 <group> <!-- iscsi adapter --> 5789 <attribute name="protocol"> 5790 <value>iscsi</value> <!-- iscsi, required --> 5791 </attribute> 5792 <attribute name="name"> 5793 <text/> 5794 </attribute> 5795 <interleave> 5796 <oneOrMore> 5797 <element name="host"> 5798 <attribute name="name"> 5799 <text/> 5800 </attribute> 5801 <optional> 5802 <attribute name="port"> 5803 <ref name="PortNumber"/> 5804 </attribute> 5805 </optional> 5806 <empty/> 5807 </element> 5808 </oneOrMore> 5809 <optional> 5810 <ref name="diskAuth"/> 5811 </optional> 5812 <optional> 5813 <ref name="initiatorinfo"/> 5814 </optional> 5815 </interleave> 5816 </group> 5817 </choice> 5818 </element> 5819 </define> 5820 5821 <define name="hostdevsubsyshost"> 5822 <attribute name="type"> 5823 <value>scsi_host</value> 5824 </attribute> 5825 <optional> 5826 <attribute name="model"> 5827 <choice> 5828 <value>virtio</value> 5829 <value>virtio-transitional</value> 5830 <value>virtio-non-transitional</value> 5831 </choice> 5832 </attribute> 5833 </optional> 5834 <element name="source"> 5835 <choice> 5836 <group> 5837 <attribute name="protocol"> 5838 <value>vhost</value> <!-- vhost, required --> 5839 </attribute> 5840 <attribute name="wwpn"> 5841 <data type="string"> 5842 <param name="pattern">(naa\.)[0-9a-fA-F]{16}</param> 5843 </data> 5844 </attribute> 5845 </group> 5846 </choice> 5847 </element> 5848 </define> 5849 5850 <define name="hostdevsubsysmdev"> 5851 <attribute name="type"> 5852 <value>mdev</value> 5853 </attribute> 5854 <attribute name="model"> 5855 <choice> 5856 <value>vfio-pci</value> 5857 <value>vfio-ccw</value> 5858 <value>vfio-ap</value> 5859 </choice> 5860 </attribute> 5861 <optional> 5862 <attribute name="ramfb"> 5863 <ref name="virOnOff"/> 5864 </attribute> 5865 </optional> 5866 <optional> 5867 <attribute name="display"> 5868 <ref name="virOnOff"/> 5869 </attribute> 5870 </optional> 5871 <element name="source"> 5872 <ref name="mdevaddress"/> 5873 </element> 5874 </define> 5875 5876 <define name="hostdevcapsstorage"> 5877 <attribute name="type"> 5878 <value>storage</value> 5879 </attribute> 5880 <element name="source"> 5881 <element name="block"> 5882 <ref name="absFilePath"/> 5883 </element> 5884 </element> 5885 </define> 5886 5887 <define name="hostdevcapsmisc"> 5888 <attribute name="type"> 5889 <value>misc</value> 5890 </attribute> 5891 <element name="source"> 5892 <element name="char"> 5893 <ref name="absFilePath"/> 5894 </element> 5895 </element> 5896 </define> 5897 5898 <define name="hostdevcapsnet"> 5899 <attribute name="type"> 5900 <value>net</value> 5901 </attribute> 5902 <interleave> 5903 <element name="source"> 5904 <element name="interface"> 5905 <ref name="deviceName"/> 5906 </element> 5907 </element> 5908 <ref name="interface-ip-info"/> 5909 </interleave> 5910 </define> 5911 5912 <define name="usbproduct"> 5913 <element name="vendor"> 5914 <attribute name="id"> 5915 <ref name="usbId"/> 5916 </attribute> 5917 </element> 5918 <element name="product"> 5919 <attribute name="id"> 5920 <ref name="usbId"/> 5921 </attribute> 5922 </element> 5923 </define> 5924 <define name="usbaddress"> 5925 <element name="address"> 5926 <attribute name="bus"> 5927 <ref name="usbAddr"/> 5928 </attribute> 5929 <attribute name="device"> 5930 <ref name="usbAddr"/> 5931 </attribute> 5932 </element> 5933 </define> 5934 <define name="scsiaddress"> 5935 <attribute name="bus"> 5936 <ref name="driveBus"/> 5937 </attribute> 5938 <attribute name="target"> 5939 <ref name="driveSCSITarget"/> 5940 </attribute> 5941 <attribute name="unit"> 5942 <ref name="driveSCSIUnit"/> 5943 </attribute> 5944 </define> 5945 <define name="usbportaddress"> 5946 <attribute name="bus"> 5947 <ref name="usbAddr"/> 5948 </attribute> 5949 <optional> 5950 <attribute name="port"> 5951 <ref name="usbPort"/> 5952 </attribute> 5953 </optional> 5954 </define> 5955 <define name="spaprvioaddress"> 5956 <optional> 5957 <attribute name="reg"> 5958 <ref name="spaprvioReg"/> 5959 </attribute> 5960 </optional> 5961 </define> 5962 <define name="ccwaddress"> 5963 <optional> 5964 <attribute name="cssid"> 5965 <ref name="ccwCssidRange"/> 5966 </attribute> 5967 <attribute name="ssid"> 5968 <ref name="ccwSsidRange"/> 5969 </attribute> 5970 <attribute name="devno"> 5971 <ref name="ccwDevnoRange"/> 5972 </attribute> 5973 </optional> 5974 </define> 5975 <define name="driveaddress"> 5976 <optional> 5977 <attribute name="controller"> 5978 <ref name="driveController"/> 5979 </attribute> 5980 </optional> 5981 <optional> 5982 <attribute name="bus"> 5983 <ref name="driveBus"/> 5984 </attribute> 5985 </optional> 5986 <optional> 5987 <attribute name="target"> 5988 <ref name="driveTarget"/> 5989 </attribute> 5990 </optional> 5991 <optional> 5992 <attribute name="unit"> 5993 <ref name="driveUnit"/> 5994 </attribute> 5995 </optional> 5996 </define> 5997 <define name="virtioserialaddress"> 5998 <attribute name="controller"> 5999 <ref name="driveController"/> 6000 </attribute> 6001 <optional> 6002 <attribute name="bus"> 6003 <ref name="driveBus"/> 6004 </attribute> 6005 </optional> 6006 <optional> 6007 <attribute name="port"> 6008 <ref name="virtioserialPort"/> 6009 </attribute> 6010 </optional> 6011 </define> 6012 <define name="ccidaddress"> 6013 <attribute name="controller"> 6014 <ref name="driveController"/> 6015 </attribute> 6016 <optional> 6017 <attribute name="slot"> 6018 <ref name="ccidSlot"/> 6019 </attribute> 6020 </optional> 6021 </define> 6022 <define name="dimmaddress"> 6023 <optional> 6024 <attribute name="slot"> 6025 <ref name="unsignedInt"/> 6026 </attribute> 6027 </optional> 6028 <optional> 6029 <attribute name="base"> 6030 <ref name="hexuint"/> 6031 </attribute> 6032 </optional> 6033 </define> 6034 <define name="mdevaddress"> 6035 <element name="address"> 6036 <attribute name="uuid"> 6037 <ref name="UUID"/> 6038 </attribute> 6039 </element> 6040 </define> 6041 <define name="devices"> 6042 <element name="devices"> 6043 <interleave> 6044 <optional> 6045 <ref name="emulator"/> 6046 </optional> 6047 <zeroOrMore> 6048 <choice> 6049 <ref name="disk"/> 6050 <ref name="controller"/> 6051 <ref name="lease"/> 6052 <ref name="filesystem"/> 6053 <ref name="interface"/> 6054 <ref name="input"/> 6055 <ref name="sound"/> 6056 <ref name="audio"/> 6057 <ref name="hostdev"/> 6058 <ref name="graphic"/> 6059 <ref name="video"/> 6060 <ref name="console"/> 6061 <ref name="parallel"/> 6062 <ref name="serial"/> 6063 <ref name="channel"/> 6064 <ref name="smartcard"/> 6065 <ref name="hub"/> 6066 <ref name="redirdev"/> 6067 <ref name="redirfilter"/> 6068 <ref name="rng"/> 6069 <ref name="tpm"/> 6070 <ref name="shmem"/> 6071 <ref name="memorydev"/> 6072 </choice> 6073 </zeroOrMore> 6074 <optional> 6075 <ref name="watchdog"/> 6076 </optional> 6077 <optional> 6078 <ref name="memballoon"/> 6079 </optional> 6080 <optional> 6081 <ref name="nvram"/> 6082 </optional> 6083 <zeroOrMore> 6084 <ref name="panic"/> 6085 </zeroOrMore> 6086 <optional> 6087 <ref name="iommu"/> 6088 </optional> 6089 <optional> 6090 <ref name="vsock"/> 6091 </optional> 6092 </interleave> 6093 </element> 6094 </define> 6095 <!-- 6096 A set of optional features: PAE, APIC, ACPI, GIC, 6097 HyperV Enlightenment, KVM features, paravirtual spinlocks and HAP support 6098 --> 6099 <define name="features"> 6100 <optional> 6101 <element name="features"> 6102 <interleave> 6103 <optional> 6104 <element name="pae"> 6105 <empty/> 6106 </element> 6107 </optional> 6108 <optional> 6109 <element name="apic"> 6110 <optional> 6111 <attribute name="eoi"> 6112 <ref name="virOnOff"/> 6113 </attribute> 6114 </optional> 6115 </element> 6116 </optional> 6117 <optional> 6118 <element name="acpi"> 6119 <empty/> 6120 </element> 6121 </optional> 6122 <optional> 6123 <element name="hap"> 6124 <optional> 6125 <attribute name="state"> 6126 <ref name="virOnOff"/> 6127 </attribute> 6128 </optional> 6129 </element> 6130 </optional> 6131 <optional> 6132 <ref name="hyperv"/> 6133 </optional> 6134 <optional> 6135 <element name="viridian"> 6136 <empty/> 6137 </element> 6138 </optional> 6139 <optional> 6140 <ref name="kvm"/> 6141 </optional> 6142 <optional> 6143 <ref name="xen"/> 6144 </optional> 6145 <optional> 6146 <element name="privnet"> 6147 <empty/> 6148 </element> 6149 </optional> 6150 <optional> 6151 <element name="pvspinlock"> 6152 <optional> 6153 <ref name="featurestate"/> 6154 </optional> 6155 <empty/> 6156 </element> 6157 </optional> 6158 <optional> 6159 <ref name="capabilities"/> 6160 </optional> 6161 <optional> 6162 <ref name="pmu"/> 6163 </optional> 6164 <optional> 6165 <element name="vmport"> 6166 <optional> 6167 <attribute name="state"> 6168 <ref name="virOnOff"/> 6169 </attribute> 6170 </optional> 6171 </element> 6172 </optional> 6173 <optional> 6174 <element name="gic"> 6175 <optional> 6176 <attribute name="version"> 6177 <choice> 6178 <value>host</value> 6179 <value>2</value> 6180 <value>3</value> 6181 </choice> 6182 </attribute> 6183 </optional> 6184 </element> 6185 </optional> 6186 <optional> 6187 <element name="smm"> 6188 <optional> 6189 <attribute name="state"> 6190 <ref name="virOnOff"/> 6191 </attribute> 6192 <optional> 6193 <element name="tseg"> 6194 <ref name="scaledInteger"/> 6195 </element> 6196 </optional> 6197 </optional> 6198 </element> 6199 </optional> 6200 <optional> 6201 <ref name="ioapic"/> 6202 </optional> 6203 <optional> 6204 <ref name="hpt"/> 6205 </optional> 6206 <optional> 6207 <ref name="vmcoreinfo"/> 6208 </optional> 6209 <optional> 6210 <element name="htm"> 6211 <ref name="featurestate"/> 6212 </element> 6213 </optional> 6214 <optional> 6215 <element name="nested-hv"> 6216 <ref name="featurestate"/> 6217 </element> 6218 </optional> 6219 <optional> 6220 <ref name="msrs"/> 6221 </optional> 6222 <optional> 6223 <element name="ccf-assist"> 6224 <ref name="featurestate"/> 6225 </element> 6226 </optional> 6227 <optional> 6228 <ref name="cfpc"/> 6229 </optional> 6230 <optional> 6231 <ref name="sbbc"/> 6232 </optional> 6233 <optional> 6234 <ref name="ibs"/> 6235 </optional> 6236 </interleave> 6237 </element> 6238 </optional> 6239 </define> 6240 6241 <!-- 6242 System information specification: 6243 Placeholder for system specific information likes the ones 6244 contained in the SMBIOS area. 6245 Only a limited subset of entries can be modified there, so we 6246 fully enumerate each case here. 6247 The DMTF spec doesn't specify any string subset, just 0 terminated 6248 byte strings, but better be safe and restrict at least the names 6249 to avoid problems with space normalization in attribute values, 6250 the value is kept as the element body for maximum flexibility. 6251 A priori we allow only type 0 and type 1 string updates 6252 --> 6253 <define name="sysinfo"> 6254 <element name="sysinfo"> 6255 <choice> 6256 <group> 6257 <attribute name="type"> 6258 <value>smbios</value> 6259 </attribute> 6260 <interleave> 6261 <optional> 6262 <element name="bios"> 6263 <oneOrMore> 6264 <element name="entry"> 6265 <attribute name="name"> 6266 <ref name="sysinfo-bios-name"/> 6267 </attribute> 6268 <ref name="sysinfo-value"/> 6269 </element> 6270 </oneOrMore> 6271 </element> 6272 </optional> 6273 <optional> 6274 <element name="system"> 6275 <oneOrMore> 6276 <element name="entry"> 6277 <attribute name="name"> 6278 <ref name="sysinfo-system-name"/> 6279 </attribute> 6280 <ref name="sysinfo-value"/> 6281 </element> 6282 </oneOrMore> 6283 </element> 6284 </optional> 6285 <zeroOrMore> 6286 <element name="baseBoard"> 6287 <oneOrMore> 6288 <element name="entry"> 6289 <attribute name="name"> 6290 <ref name="sysinfo-baseBoard-name"/> 6291 </attribute> 6292 <ref name="sysinfo-value"/> 6293 </element> 6294 </oneOrMore> 6295 </element> 6296 </zeroOrMore> 6297 <optional> 6298 <element name="chassis"> 6299 <oneOrMore> 6300 <element name="entry"> 6301 <attribute name="name"> 6302 <ref name="sysinfo-chassis-name"/> 6303 </attribute> 6304 <ref name="sysinfo-value"/> 6305 </element> 6306 </oneOrMore> 6307 </element> 6308 </optional> 6309 <optional> 6310 <element name="oemStrings"> 6311 <oneOrMore> 6312 <element name="entry"> 6313 <ref name="sysinfo-value"/> 6314 </element> 6315 </oneOrMore> 6316 </element> 6317 </optional> 6318 </interleave> 6319 </group> 6320 <group> 6321 <attribute name="type"> 6322 <value>fwcfg</value> 6323 </attribute> 6324 <zeroOrMore> 6325 <element name="entry"> 6326 <attribute name="name"> 6327 <data type="string"/> 6328 </attribute> 6329 <choice> 6330 <group> 6331 <attribute name="file"> 6332 <data type="string"/> 6333 </attribute> 6334 <empty/> 6335 </group> 6336 <group> 6337 <ref name="sysinfo-value"/> 6338 </group> 6339 </choice> 6340 </element> 6341 </zeroOrMore> 6342 </group> 6343 </choice> 6344 </element> 6345 </define> 6346 6347 <define name="sysinfo-bios-name"> 6348 <choice> 6349 <value>vendor</value> 6350 <value>version</value> 6351 <value>date</value> 6352 <value>release</value> 6353 </choice> 6354 </define> 6355 6356 <define name="sysinfo-system-name"> 6357 <choice> 6358 <value>manufacturer</value> 6359 <value>product</value> 6360 <value>version</value> 6361 <value>serial</value> 6362 <value>uuid</value> 6363 <value>sku</value> 6364 <value>family</value> 6365 </choice> 6366 </define> 6367 6368 <define name="sysinfo-baseBoard-name"> 6369 <choice> 6370 <value>manufacturer</value> 6371 <value>product</value> 6372 <value>version</value> 6373 <value>serial</value> 6374 <value>asset</value> 6375 <value>location</value> 6376 </choice> 6377 </define> 6378 6379 <define name="sysinfo-chassis-name"> 6380 <choice> 6381 <value>manufacturer</value> 6382 <value>version</value> 6383 <value>serial</value> 6384 <value>asset</value> 6385 <value>sku</value> 6386 </choice> 6387 </define> 6388 6389 <define name="sysinfo-value"> 6390 <data type="string"/> 6391 </define> 6392 6393 <define name="acpiTable"> 6394 <element name="acpi"> 6395 <zeroOrMore> 6396 <element name="table"> 6397 <attribute name="type"> 6398 <value>slic</value> 6399 </attribute> 6400 <ref name="absFilePath"/> 6401 </element> 6402 </zeroOrMore> 6403 </element> 6404 </define> 6405 6406 <define name="smbios"> 6407 <element name="smbios"> 6408 <attribute name="mode"> 6409 <choice> 6410 <value>emulate</value> 6411 <value>host</value> 6412 <value>sysinfo</value> 6413 </choice> 6414 </attribute> 6415 <empty/> 6416 </element> 6417 </define> 6418 6419 <define name="bios"> 6420 <element name="bios"> 6421 <optional> 6422 <attribute name="useserial"> 6423 <ref name="virYesNo"/> 6424 </attribute> 6425 </optional> 6426 <optional> 6427 <attribute name="rebootTimeout"> 6428 <ref name="rebootTimeoutDelay"/> 6429 </attribute> 6430 </optional> 6431 </element> 6432 </define> 6433 6434 <define name="ioapic"> 6435 <element name="ioapic"> 6436 <attribute name="driver"> 6437 <choice> 6438 <value>qemu</value> 6439 <value>kvm</value> 6440 </choice> 6441 </attribute> 6442 <empty/> 6443 </element> 6444 </define> 6445 6446 <define name="hpt"> 6447 <element name="hpt"> 6448 <optional> 6449 <attribute name="resizing"> 6450 <choice> 6451 <value>enabled</value> 6452 <value>disabled</value> 6453 <value>required</value> 6454 </choice> 6455 </attribute> 6456 </optional> 6457 <optional> 6458 <element name="maxpagesize"> 6459 <ref name="scaledInteger"/> 6460 </element> 6461 </optional> 6462 </element> 6463 </define> 6464 6465 <define name="vmcoreinfo"> 6466 <element name="vmcoreinfo"> 6467 <optional> 6468 <attribute name="state"> 6469 <ref name="virOnOff"/> 6470 </attribute> 6471 </optional> 6472 </element> 6473 </define> 6474 6475 <define name="msrs"> 6476 <element name="msrs"> 6477 <attribute name="unknown"> 6478 <choice> 6479 <value>ignore</value> 6480 <value>fault</value> 6481 </choice> 6482 </attribute> 6483 </element> 6484 </define> 6485 6486 <define name="cfpc"> 6487 <element name="cfpc"> 6488 <attribute name="value"> 6489 <choice> 6490 <value>broken</value> 6491 <value>workaround</value> 6492 <value>fixed</value> 6493 </choice> 6494 </attribute> 6495 </element> 6496 </define> 6497 6498 <define name="sbbc"> 6499 <element name="sbbc"> 6500 <attribute name="value"> 6501 <choice> 6502 <value>broken</value> 6503 <value>workaround</value> 6504 <value>fixed</value> 6505 </choice> 6506 </attribute> 6507 </element> 6508 </define> 6509 6510 <define name="ibs"> 6511 <element name="ibs"> 6512 <attribute name="value"> 6513 <choice> 6514 <value>broken</value> 6515 <value>workaround</value> 6516 <value>fixed-ibs</value> 6517 <value>fixed-ccd</value> 6518 <value>fixed-na</value> 6519 </choice> 6520 </attribute> 6521 </element> 6522 </define> 6523 6524 <define name="address"> 6525 <element name="address"> 6526 <choice> 6527 <group> 6528 <attribute name="type"> 6529 <value>pci</value> 6530 </attribute> 6531 <ref name="pciaddress"/> 6532 <ref name="zpciaddress"/> 6533 </group> 6534 <group> 6535 <attribute name="type"> 6536 <value>drive</value> 6537 </attribute> 6538 <ref name="driveaddress"/> 6539 </group> 6540 <group> 6541 <attribute name="type"> 6542 <value>virtio-serial</value> 6543 </attribute> 6544 <ref name="virtioserialaddress"/> 6545 </group> 6546 <group> 6547 <attribute name="type"> 6548 <value>ccid</value> 6549 </attribute> 6550 <ref name="ccidaddress"/> 6551 </group> 6552 <group> 6553 <attribute name="type"> 6554 <value>usb</value> 6555 </attribute> 6556 <ref name="usbportaddress"/> 6557 </group> 6558 <group> 6559 <attribute name="type"> 6560 <value>spapr-vio</value> 6561 </attribute> 6562 <ref name="spaprvioaddress"/> 6563 </group> 6564 <group> 6565 <attribute name="type"> 6566 <value>ccw</value> 6567 </attribute> 6568 <ref name="ccwaddress"/> 6569 </group> 6570 <group> 6571 <attribute name="type"> 6572 <value>isa</value> 6573 </attribute> 6574 <ref name="isaaddress"/> 6575 </group> 6576 <group> 6577 <attribute name="type"> 6578 <value>virtio-mmio</value> 6579 </attribute> 6580 </group> 6581 <group> 6582 <attribute name="type"> 6583 <value>dimm</value> 6584 </attribute> 6585 <ref name="dimmaddress"/> 6586 </group> 6587 <group> 6588 <attribute name="type"> 6589 <value>unassigned</value> 6590 </attribute> 6591 </group> 6592 </choice> 6593 </element> 6594 </define> 6595 6596 <define name="rom"> 6597 <element name="rom"> 6598 <optional> 6599 <attribute name="enabled"> 6600 <ref name="virYesNo"/> 6601 </attribute> 6602 </optional> 6603 <optional> 6604 <attribute name="bar"> 6605 <ref name="virOnOff"/> 6606 </attribute> 6607 </optional> 6608 <optional> 6609 <attribute name="file"> 6610 <ref name="absFilePath"/> 6611 </attribute> 6612 </optional> 6613 <empty/> 6614 </element> 6615 </define> 6616 6617 <define name="acpi"> 6618 <element name="acpi"> 6619 <optional> 6620 <attribute name="index"> 6621 <ref name="unsignedInt"/> 6622 </attribute> 6623 </optional> 6624 </element> 6625 </define> 6626 6627 <define name="memorydev"> 6628 <element name="memory"> 6629 <attribute name="model"> 6630 <choice> 6631 <value>dimm</value> 6632 <value>nvdimm</value> 6633 <value>virtio-pmem</value> 6634 <value>virtio-mem</value> 6635 </choice> 6636 </attribute> 6637 <optional> 6638 <attribute name="access"> 6639 <choice> 6640 <value>shared</value> 6641 <value>private</value> 6642 </choice> 6643 </attribute> 6644 </optional> 6645 <optional> 6646 <attribute name="discard"> 6647 <ref name="virYesNo"/> 6648 </attribute> 6649 </optional> 6650 <interleave> 6651 <optional> 6652 <element name="uuid"> 6653 <ref name="UUID"/> 6654 </element> 6655 </optional> 6656 <optional> 6657 <ref name="memorydev-source"/> 6658 </optional> 6659 <ref name="memorydev-target"/> 6660 <optional> 6661 <ref name="address"/> 6662 </optional> 6663 <optional> 6664 <ref name="alias"/> 6665 </optional> 6666 <optional> 6667 <ref name="acpi"/> 6668 </optional> 6669 </interleave> 6670 </element> 6671 </define> 6672 6673 <define name="memorydev-source"> 6674 <element name="source"> 6675 <choice> 6676 <group> 6677 <interleave> 6678 <optional> 6679 <element name="pagesize"> 6680 <ref name="scaledInteger"/> 6681 </element> 6682 </optional> 6683 <optional> 6684 <element name="nodemask"> 6685 <ref name="cpuset"/> 6686 </element> 6687 </optional> 6688 </interleave> 6689 </group> 6690 <group> 6691 <interleave> 6692 <element name="path"> 6693 <ref name="absFilePath"/> 6694 </element> 6695 <optional> 6696 <element name="alignsize"> 6697 <ref name="scaledInteger"/> 6698 </element> 6699 </optional> 6700 <optional> 6701 <element name="pmem"> 6702 <empty/> 6703 </element> 6704 </optional> 6705 </interleave> 6706 </group> 6707 </choice> 6708 </element> 6709 </define> 6710 6711 <define name="memorydev-target"> 6712 <element name="target"> 6713 <interleave> 6714 <element name="size"> 6715 <ref name="scaledInteger"/> 6716 </element> 6717 <optional> 6718 <element name="node"> 6719 <ref name="unsignedInt"/> 6720 </element> 6721 </optional> 6722 <optional> 6723 <element name="block"> 6724 <ref name="scaledInteger"/> 6725 </element> 6726 </optional> 6727 <optional> 6728 <element name="requested"> 6729 <ref name="scaledInteger"/> 6730 </element> 6731 </optional> 6732 <optional> 6733 <element name="current"> 6734 <ref name="scaledInteger"/> 6735 </element> 6736 </optional> 6737 <optional> 6738 <element name="label"> 6739 <element name="size"> 6740 <ref name="scaledInteger"/> 6741 </element> 6742 </element> 6743 </optional> 6744 <optional> 6745 <element name="readonly"> 6746 <empty/> 6747 </element> 6748 </optional> 6749 </interleave> 6750 </element> 6751 </define> 6752 6753 <define name="rng"> 6754 <element name="rng"> 6755 <attribute name="model"> 6756 <choice> 6757 <value>virtio</value> 6758 <value>virtio-transitional</value> 6759 <value>virtio-non-transitional</value> 6760 </choice> 6761 </attribute> 6762 <interleave> 6763 <ref name="rng-backend"/> 6764 <optional> 6765 <element name="driver"> 6766 <ref name="virtioOptions"/> 6767 </element> 6768 </optional> 6769 <optional> 6770 <ref name="rng-rate"/> 6771 </optional> 6772 <optional> 6773 <ref name="alias"/> 6774 </optional> 6775 <optional> 6776 <ref name="acpi"/> 6777 </optional> 6778 <optional> 6779 <ref name="address"/> 6780 </optional> 6781 </interleave> 6782 </element> 6783 </define> 6784 6785 <define name="rng-backend"> 6786 <element name="backend"> 6787 <choice> 6788 <group> 6789 <attribute name="model"> 6790 <value>random</value> 6791 </attribute> 6792 <choice> 6793 <ref name="absFilePath"/> 6794 <empty/> 6795 </choice> 6796 </group> 6797 <group> 6798 <attribute name="model"> 6799 <value>egd</value> 6800 </attribute> 6801 <ref name="qemucdevSrcType"/> 6802 <ref name="qemucdevSrcDef"/> 6803 </group> 6804 <group> 6805 <attribute name="model"> 6806 <value>builtin</value> 6807 </attribute> 6808 <empty/> 6809 </group> 6810 </choice> 6811 </element> 6812 </define> 6813 6814 <define name="rng-rate"> 6815 <element name="rate"> 6816 <attribute name="bytes"> 6817 <ref name="positiveInteger"/> 6818 </attribute> 6819 <optional> 6820 <attribute name="period"> 6821 <ref name="positiveInteger"/> 6822 </attribute> 6823 </optional> 6824 <empty/> 6825 </element> 6826 </define> 6827 6828 <define name="virtioOptions"> 6829 <optional> 6830 <attribute name="iommu"> 6831 <ref name="virOnOff"/> 6832 </attribute> 6833 </optional> 6834 <optional> 6835 <attribute name="ats"> 6836 <ref name="virOnOff"/> 6837 </attribute> 6838 </optional> 6839 <optional> 6840 <attribute name="packed"> 6841 <ref name="virOnOff"/> 6842 </attribute> 6843 </optional> 6844 <optional> 6845 <attribute name="page_per_vq"> 6846 <ref name="virOnOff"/> 6847 </attribute> 6848 </optional> 6849 </define> 6850 6851 <define name="usbmaster"> 6852 <element name="master"> 6853 <attribute name="startport"> 6854 <ref name="usbPort"/> 6855 </attribute> 6856 <empty/> 6857 </element> 6858 </define> 6859 6860 <define name="deviceBoot"> 6861 <element name="boot"> 6862 <attribute name="order"> 6863 <ref name="positiveInteger"/> 6864 </attribute> 6865 <optional> 6866 <attribute name="loadparm"> 6867 <data type="string"> 6868 <param name="pattern">[a-zA-Z0-9.\s]{1,8}</param> 6869 </data> 6870 </attribute> 6871 </optional> 6872 <empty/> 6873 </element> 6874 </define> 6875 6876 <define name="diskMirror"> 6877 <element name="mirror"> 6878 <choice> 6879 <group> <!-- old format, for block copy back-compat --> 6880 <attribute name="file"> 6881 <ref name="absFilePath"/> 6882 </attribute> 6883 <optional> 6884 <attribute name="format"> 6885 <ref name="storageFormat"/> 6886 </attribute> 6887 </optional> 6888 <optional> 6889 <attribute name="job"> 6890 <value>copy</value> 6891 </attribute> 6892 </optional> 6893 <optional> 6894 <interleave> 6895 <ref name="diskSourceFile"/> 6896 <optional> 6897 <ref name="diskFormat"/> 6898 </optional> 6899 </interleave> 6900 </optional> 6901 </group> 6902 <group> <!-- preferred format --> 6903 <attribute name="job"> 6904 <choice> 6905 <value>copy</value> 6906 <value>active-commit</value> 6907 </choice> 6908 </attribute> 6909 <interleave> 6910 <ref name="diskSource"/> 6911 <optional> 6912 <ref name="diskFormat"/> 6913 </optional> 6914 </interleave> 6915 </group> 6916 </choice> 6917 <optional> 6918 <attribute name="ready"> 6919 <choice> 6920 <value>yes</value> 6921 <value>abort</value> 6922 <value>pivot</value> 6923 </choice> 6924 </attribute> 6925 </optional> 6926 <ref name="diskBackingChain"/> 6927 </element> 6928 </define> 6929 <define name="diskAuth"> 6930 <element name="auth"> 6931 <attribute name="username"> 6932 <ref name="genericName"/> 6933 </attribute> 6934 <ref name="diskAuthSecret"/> 6935 </element> 6936 </define> 6937 6938 <define name="diskAuthSecret"> 6939 <element name="secret"> 6940 <attribute name="type"> 6941 <choice> 6942 <value>ceph</value> 6943 <value>iscsi</value> 6944 </choice> 6945 </attribute> 6946 <choice> 6947 <attribute name="uuid"> 6948 <ref name="UUID"/> 6949 </attribute> 6950 <attribute name="usage"> 6951 <ref name="objectName"/> 6952 </attribute> 6953 </choice> 6954 </element> 6955 </define> 6956 6957 <define name="diskIoTune"> 6958 <element name="iotune"> 6959 <interleave> 6960 <choice> 6961 <element name="total_bytes_sec"> 6962 <data type="unsignedLong"/> 6963 </element> 6964 <group> 6965 <interleave> 6966 <optional> 6967 <element name="read_bytes_sec"> 6968 <data type="unsignedLong"/> 6969 </element> 6970 </optional> 6971 <optional> 6972 <element name="write_bytes_sec"> 6973 <data type="unsignedLong"/> 6974 </element> 6975 </optional> 6976 </interleave> 6977 </group> 6978 </choice> 6979 <choice> 6980 <element name="total_iops_sec"> 6981 <data type="unsignedLong"/> 6982 </element> 6983 <group> 6984 <interleave> 6985 <optional> 6986 <element name="read_iops_sec"> 6987 <data type="unsignedLong"/> 6988 </element> 6989 </optional> 6990 <optional> 6991 <element name="write_iops_sec"> 6992 <data type="unsignedLong"/> 6993 </element> 6994 </optional> 6995 </interleave> 6996 </group> 6997 </choice> 6998 <choice> 6999 <element name="total_bytes_sec_max"> 7000 <data type="unsignedLong"/> 7001 </element> 7002 <group> 7003 <interleave> 7004 <optional> 7005 <element name="read_bytes_sec_max"> 7006 <data type="unsignedLong"/> 7007 </element> 7008 </optional> 7009 <optional> 7010 <element name="write_bytes_sec_max"> 7011 <data type="unsignedLong"/> 7012 </element> 7013 </optional> 7014 </interleave> 7015 </group> 7016 </choice> 7017 <choice> 7018 <element name="total_iops_sec_max"> 7019 <data type="unsignedLong"/> 7020 </element> 7021 <group> 7022 <interleave> 7023 <optional> 7024 <element name="read_iops_sec_max"> 7025 <data type="unsignedLong"/> 7026 </element> 7027 </optional> 7028 <optional> 7029 <element name="write_iops_sec_max"> 7030 <data type="unsignedLong"/> 7031 </element> 7032 </optional> 7033 </interleave> 7034 </group> 7035 </choice> 7036 <optional> 7037 <element name="size_iops_sec"> 7038 <data type="unsignedLong"/> 7039 </element> 7040 </optional> 7041 <optional> 7042 <element name="group_name"> 7043 <text/> 7044 </element> 7045 </optional> 7046 <choice> 7047 <element name="total_bytes_sec_max_length"> 7048 <data type="unsignedLong"/> 7049 </element> 7050 <group> 7051 <interleave> 7052 <optional> 7053 <element name="read_bytes_sec_max_length"> 7054 <data type="unsignedLong"/> 7055 </element> 7056 </optional> 7057 <optional> 7058 <element name="write_bytes_sec_max_length"> 7059 <data type="unsignedLong"/> 7060 </element> 7061 </optional> 7062 </interleave> 7063 </group> 7064 </choice> 7065 <choice> 7066 <element name="total_iops_sec_max_length"> 7067 <data type="unsignedLong"/> 7068 </element> 7069 <group> 7070 <interleave> 7071 <optional> 7072 <element name="read_iops_sec_max_length"> 7073 <data type="unsignedLong"/> 7074 </element> 7075 </optional> 7076 <optional> 7077 <element name="write_iops_sec_max_length"> 7078 <data type="unsignedLong"/> 7079 </element> 7080 </optional> 7081 </interleave> 7082 </group> 7083 </choice> 7084 </interleave> 7085 </element> 7086 </define> 7087 7088 <!-- Optional HyperV Enlightenment features --> 7089 <define name="hyperv"> 7090 <element name="hyperv"> 7091 <interleave> 7092 <optional> 7093 <element name="relaxed"> 7094 <ref name="featurestate"/> 7095 </element> 7096 </optional> 7097 <optional> 7098 <element name="vapic"> 7099 <ref name="featurestate"/> 7100 </element> 7101 </optional> 7102 <optional> 7103 <element name="spinlocks"> 7104 <ref name="featurestate"/> 7105 <optional> 7106 <attribute name="retries"> 7107 <data type="unsignedInt"/> 7108 </attribute> 7109 </optional> 7110 </element> 7111 </optional> 7112 <optional> 7113 <element name="vpindex"> 7114 <ref name="featurestate"/> 7115 </element> 7116 </optional> 7117 <optional> 7118 <element name="runtime"> 7119 <ref name="featurestate"/> 7120 </element> 7121 </optional> 7122 <optional> 7123 <element name="synic"> 7124 <ref name="featurestate"/> 7125 </element> 7126 </optional> 7127 <optional> 7128 <element name="stimer"> 7129 <ref name="stimer"/> 7130 </element> 7131 </optional> 7132 <optional> 7133 <element name="reset"> 7134 <ref name="featurestate"/> 7135 </element> 7136 </optional> 7137 <optional> 7138 <element name="vendor_id"> 7139 <ref name="featurestate"/> 7140 <optional> 7141 <attribute name="value"> 7142 <data type="string"> 7143 <param name="pattern">[^,]{0,12}</param> 7144 </data> 7145 </attribute> 7146 </optional> 7147 </element> 7148 </optional> 7149 <optional> 7150 <element name="frequencies"> 7151 <ref name="featurestate"/> 7152 </element> 7153 </optional> 7154 <optional> 7155 <element name="reenlightenment"> 7156 <ref name="featurestate"/> 7157 </element> 7158 </optional> 7159 <optional> 7160 <element name="tlbflush"> 7161 <ref name="featurestate"/> 7162 </element> 7163 </optional> 7164 <optional> 7165 <element name="ipi"> 7166 <ref name="featurestate"/> 7167 </element> 7168 </optional> 7169 <optional> 7170 <element name="evmcs"> 7171 <ref name="featurestate"/> 7172 </element> 7173 </optional> 7174 </interleave> 7175 </element> 7176 </define> 7177 7178 <!-- Hyper-V stimer features --> 7179 <define name="stimer"> 7180 <interleave> 7181 <optional> 7182 <ref name="featurestate"/> 7183 </optional> 7184 <optional> 7185 <element name="direct"> 7186 <ref name="featurestate"/> 7187 </element> 7188 </optional> 7189 </interleave> 7190 </define> 7191 7192 <!-- Optional KVM features --> 7193 <define name="kvm"> 7194 <element name="kvm"> 7195 <interleave> 7196 <optional> 7197 <element name="hidden"> 7198 <ref name="featurestate"/> 7199 </element> 7200 </optional> 7201 <optional> 7202 <element name="hint-dedicated"> 7203 <ref name="featurestate"/> 7204 </element> 7205 </optional> 7206 <optional> 7207 <element name="poll-control"> 7208 <ref name="featurestate"/> 7209 </element> 7210 </optional> 7211 <optional> 7212 <element name="pv-ipi"> 7213 <ref name="featurestate"/> 7214 </element> 7215 </optional> 7216 </interleave> 7217 </element> 7218 </define> 7219 7220 <!-- Optional Xen features --> 7221 <define name="xen"> 7222 <element name="xen"> 7223 <interleave> 7224 <optional> 7225 <element name="e820_host"> 7226 <ref name="featurestate"/> 7227 </element> 7228 </optional> 7229 <optional> 7230 <element name="passthrough"> 7231 <ref name="featurestate"/> 7232 <optional> 7233 <attribute name="mode"> 7234 <data type="string"> 7235 <param name="pattern">(sync_pt|share_pt)</param> 7236 </data> 7237 </attribute> 7238 </optional> 7239 </element> 7240 </optional> 7241 </interleave> 7242 </element> 7243 </define> 7244 7245 <!-- Optional capabilities features --> 7246 <define name="capabilities"> 7247 <element name="capabilities"> 7248 <ref name="capabilitiespolicy"/> 7249 <interleave> 7250 <optional> 7251 <element name="audit_control"> 7252 <ref name="featurestate"/> 7253 </element> 7254 </optional> 7255 <optional> 7256 <element name="audit_write"> 7257 <ref name="featurestate"/> 7258 </element> 7259 </optional> 7260 <optional> 7261 <element name="block_suspend"> 7262 <ref name="featurestate"/> 7263 </element> 7264 </optional> 7265 <optional> 7266 <element name="chown"> 7267 <ref name="featurestate"/> 7268 </element> 7269 </optional> 7270 <optional> 7271 <element name="dac_override"> 7272 <ref name="featurestate"/> 7273 </element> 7274 </optional> 7275 <optional> 7276 <element name="dac_read_search"> 7277 <ref name="featurestate"/> 7278 </element> 7279 </optional> 7280 <optional> 7281 <element name="fowner"> 7282 <ref name="featurestate"/> 7283 </element> 7284 </optional> 7285 <optional> 7286 <element name="fsetid"> 7287 <ref name="featurestate"/> 7288 </element> 7289 </optional> 7290 <optional> 7291 <element name="ipc_lock"> 7292 <ref name="featurestate"/> 7293 </element> 7294 </optional> 7295 <optional> 7296 <element name="ipc_owner"> 7297 <ref name="featurestate"/> 7298 </element> 7299 </optional> 7300 <optional> 7301 <element name="kill"> 7302 <ref name="featurestate"/> 7303 </element> 7304 </optional> 7305 <optional> 7306 <element name="lease"> 7307 <ref name="featurestate"/> 7308 </element> 7309 </optional> 7310 <optional> 7311 <element name="linux_immutable"> 7312 <ref name="featurestate"/> 7313 </element> 7314 </optional> 7315 <optional> 7316 <element name="mac_admin"> 7317 <ref name="featurestate"/> 7318 </element> 7319 </optional> 7320 <optional> 7321 <element name="mac_override"> 7322 <ref name="featurestate"/> 7323 </element> 7324 </optional> 7325 <optional> 7326 <element name="mknod"> 7327 <ref name="featurestate"/> 7328 </element> 7329 </optional> 7330 <optional> 7331 <element name="net_admin"> 7332 <ref name="featurestate"/> 7333 </element> 7334 </optional> 7335 <optional> 7336 <element name="net_bind_service"> 7337 <ref name="featurestate"/> 7338 </element> 7339 </optional> 7340 <optional> 7341 <element name="net_broadcast"> 7342 <ref name="featurestate"/> 7343 </element> 7344 </optional> 7345 <optional> 7346 <element name="net_raw"> 7347 <ref name="featurestate"/> 7348 </element> 7349 </optional> 7350 <optional> 7351 <element name="setgid"> 7352 <ref name="featurestate"/> 7353 </element> 7354 </optional> 7355 <optional> 7356 <element name="setfcap"> 7357 <ref name="featurestate"/> 7358 </element> 7359 </optional> 7360 <optional> 7361 <element name="setpcap"> 7362 <ref name="featurestate"/> 7363 </element> 7364 </optional> 7365 <optional> 7366 <element name="setuid"> 7367 <ref name="featurestate"/> 7368 </element> 7369 </optional> 7370 <optional> 7371 <element name="sys_admin"> 7372 <ref name="featurestate"/> 7373 </element> 7374 </optional> 7375 <optional> 7376 <element name="sys_boot"> 7377 <ref name="featurestate"/> 7378 </element> 7379 </optional> 7380 <optional> 7381 <element name="sys_chroot"> 7382 <ref name="featurestate"/> 7383 </element> 7384 </optional> 7385 <optional> 7386 <element name="sys_module"> 7387 <ref name="featurestate"/> 7388 </element> 7389 </optional> 7390 <optional> 7391 <element name="sys_nice"> 7392 <ref name="featurestate"/> 7393 </element> 7394 </optional> 7395 <optional> 7396 <element name="sys_pacct"> 7397 <ref name="featurestate"/> 7398 </element> 7399 </optional> 7400 <optional> 7401 <element name="sys_ptrace"> 7402 <ref name="featurestate"/> 7403 </element> 7404 </optional> 7405 <optional> 7406 <element name="sys_rawio"> 7407 <ref name="featurestate"/> 7408 </element> 7409 </optional> 7410 <optional> 7411 <element name="sys_resource"> 7412 <ref name="featurestate"/> 7413 </element> 7414 </optional> 7415 <optional> 7416 <element name="sys_time"> 7417 <ref name="featurestate"/> 7418 </element> 7419 </optional> 7420 <optional> 7421 <element name="sys_tty_config"> 7422 <ref name="featurestate"/> 7423 </element> 7424 </optional> 7425 <optional> 7426 <element name="syslog"> 7427 <ref name="featurestate"/> 7428 </element> 7429 </optional> 7430 <optional> 7431 <element name="wake_alarm"> 7432 <ref name="featurestate"/> 7433 </element> 7434 </optional> 7435 </interleave> 7436 </element> 7437 </define> 7438 7439 <define name="pmu"> 7440 <element name="pmu"> 7441 <optional> 7442 <ref name="featurestate"/> 7443 </optional> 7444 </element> 7445 </define> 7446 7447 <define name="featurestate"> 7448 <attribute name="state"> 7449 <ref name="virOnOff"/> 7450 </attribute> 7451 </define> 7452 7453 <define name="capabilitiespolicy"> 7454 <attribute name="policy"> 7455 <choice> 7456 <value>default</value> 7457 <value>allow</value> 7458 <value>deny</value> 7459 </choice> 7460 </attribute> 7461 </define> 7462 7463 <!-- 7464 Optional hypervisor extensions in their own namespace: 7465 QEMU 7466 --> 7467 <define name="qemucmdline"> 7468 <element name="commandline" ns="http://libvirt.org/schemas/domain/qemu/1.0"> 7469 <interleave> 7470 <zeroOrMore> 7471 <element name="arg"> 7472 <attribute name="value"/> 7473 </element> 7474 </zeroOrMore> 7475 <zeroOrMore> 7476 <element name="env"> 7477 <attribute name="name"> 7478 <ref name="filter-param-name"/> 7479 </attribute> 7480 <optional> 7481 <attribute name="value"/> 7482 </optional> 7483 <empty/> 7484 </element> 7485 </zeroOrMore> 7486 </interleave> 7487 </element> 7488 </define> 7489 7490 <define name="qemucapabilities"> 7491 <element name="capabilities" ns="http://libvirt.org/schemas/domain/qemu/1.0"> 7492 <interleave> 7493 <zeroOrMore> 7494 <element name="add"> 7495 <attribute name="capability"/> 7496 </element> 7497 </zeroOrMore> 7498 <zeroOrMore> 7499 <element name="del"> 7500 <attribute name="capability"/> 7501 </element> 7502 </zeroOrMore> 7503 </interleave> 7504 </element> 7505 </define> 7506 7507 <define name="qemudeprecation"> 7508 <element name="deprecation" ns="http://libvirt.org/schemas/domain/qemu/1.0"> 7509 <attribute name="behavior"> 7510 <choice> 7511 <value>none</value> 7512 <value>omit</value> 7513 <value>reject</value> 7514 <value>crash</value> 7515 </choice> 7516 </attribute> 7517 </element> 7518 </define> 7519 7520 7521 <!-- 7522 Optional hypervisor extensions in their own namespace: 7523 LXC 7524 --> 7525 <define name="lxcsharens"> 7526 <element name="namespace" ns="http://libvirt.org/schemas/domain/lxc/1.0"> 7527 <interleave> 7528 <optional> 7529 <element name="sharenet"> 7530 <attribute name="type"> 7531 <choice> 7532 <value>netns</value> 7533 <value>name</value> 7534 <value>pid</value> 7535 </choice> 7536 </attribute> 7537 <attribute name="value"/> 7538 </element> 7539 </optional> 7540 <optional> 7541 <element name="shareipc"> 7542 <attribute name="type"> 7543 <choice> 7544 <value>name</value> 7545 <value>pid</value> 7546 </choice> 7547 </attribute> 7548 <attribute name="value"/> 7549 </element> 7550 </optional> 7551 <optional> 7552 <element name="shareuts"> 7553 <attribute name="type"> 7554 <choice> 7555 <value>name</value> 7556 <value>pid</value> 7557 </choice> 7558 </attribute> 7559 <attribute name="value"/> 7560 </element> 7561 </optional> 7562 </interleave> 7563 </element> 7564 </define> 7565 7566 <!-- 7567 Optional hypervisor extensions in their own namespace: 7568 Bhyve 7569 --> 7570 <define name="bhyvecmdline"> 7571 <element name="commandline" ns="http://libvirt.org/schemas/domain/bhyve/1.0"> 7572 <zeroOrMore> 7573 <element name="arg"> 7574 <attribute name="value"/> 7575 </element> 7576 </zeroOrMore> 7577 </element> 7578 </define> 7579 7580 <!-- 7581 Optional hypervisor extensions in their own namespace: 7582 Xen 7583 --> 7584 <define name="xencmdline"> 7585 <element name="commandline" ns="http://libvirt.org/schemas/domain/xen/1.0"> 7586 <zeroOrMore> 7587 <element name="arg"> 7588 <attribute name="value"/> 7589 </element> 7590 </zeroOrMore> 7591 </element> 7592 </define> 7593 7594 <!-- 7595 Optional hypervisor extensions in their own namespace: 7596 vmware 7597 --> 7598 <define name="vmwaredatacenterpath"> 7599 <element name="datacenterpath" ns="http://libvirt.org/schemas/domain/vmware/1.0"> 7600 <text/> 7601 </element> 7602 </define> 7603 7604 <!-- 7605 Type library 7606 --> 7607 <define name="countCPU"> 7608 <data type="unsignedShort"> 7609 <param name="pattern">[0-9]+</param> 7610 <param name="minInclusive">1</param> 7611 </data> 7612 </define> 7613 <define name="vcpuid"> 7614 <data type="unsignedShort"> 7615 <param name="pattern">[0-9]+</param> 7616 </data> 7617 </define> 7618 <define name="cpushares"> 7619 <data type="unsignedInt"> 7620 <param name="pattern">[0-9]+</param> 7621 </data> 7622 </define> 7623 <define name="cpuperiod"> 7624 <data type="unsignedLong"> 7625 <param name="pattern">[0-9]+</param> 7626 <param name="minInclusive">1000</param> 7627 <param name="maxInclusive">1000000</param> 7628 </data> 7629 </define> 7630 <define name="cpuquota"> 7631 <data type="long"> 7632 <param name="pattern">-?[0-9]+</param> 7633 <param name="maxInclusive">17592186044415</param> 7634 <param name="minInclusive">-1</param> 7635 </data> 7636 </define> 7637 <define name="rebootTimeoutDelay"> 7638 <data type="short"> 7639 <param name="minInclusive">-1</param> 7640 </data> 7641 </define> 7642 <!-- weight currently is in range [100, 1000] --> 7643 <define name="weight"> 7644 <data type="unsignedInt"> 7645 <param name="pattern">[0-9]+</param> 7646 <param name="minInclusive">100</param> 7647 <param name="maxInclusive">1000</param> 7648 </data> 7649 </define> 7650 <define name="diskSerial"> 7651 <data type="string"> 7652 <param name="pattern">[A-Za-z0-9_\.\+\- ]+</param> 7653 </data> 7654 </define> 7655 <define name="bridgeMode"> 7656 <data type="string"> 7657 <param name="pattern">(vepa|bridge|private|passthrough)</param> 7658 </data> 7659 </define> 7660 <define name="addrIPorName"> 7661 <choice> 7662 <ref name="ipAddr"/> 7663 <ref name="dnsName"/> 7664 </choice> 7665 </define> 7666 <define name="usbIdDefault"> 7667 <data type="string"> 7668 <param name="pattern">-1</param> 7669 </data> 7670 </define> 7671 <define name="usbId"> 7672 <data type="string"> 7673 <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param> 7674 </data> 7675 </define> 7676 <define name="usbVersion"> 7677 <data type="string"> 7678 <param name="pattern">[0-9]{1,2}.[0-9]{1,2}</param> 7679 </data> 7680 </define> 7681 <define name="usbAddr"> 7682 <data type="string"> 7683 <param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param> 7684 </data> 7685 </define> 7686 <define name="usbClass"> 7687 <data type="string"> 7688 <param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param> 7689 </data> 7690 </define> 7691 <define name="usbPort"> 7692 <data type="string"> 7693 <param name="pattern">((0x)?[0-9a-fA-F]{1,3}\.){0,3}(0x)?[0-9a-fA-F]{1,3}</param> 7694 </data> 7695 </define> 7696 <define name="driveController"> 7697 <data type="string"> 7698 <param name="pattern">[0-9]{1,2}</param> 7699 </data> 7700 </define> 7701 <define name="driveBus"> 7702 <data type="string"> 7703 <param name="pattern">[0-9]{1,2}</param> 7704 </data> 7705 </define> 7706 <define name="driveTarget"> 7707 <data type="string"> 7708 <param name="pattern">[0-9]{1,2}</param> 7709 </data> 7710 </define> 7711 <define name="driveSCSITarget"> 7712 <data type="string"> 7713 <param name="pattern">[0-9]{1,10}</param> 7714 </data> 7715 </define> 7716 <define name="driveUnit"> 7717 <data type="string"> 7718 <param name="pattern">[0-9]{1,5}</param> 7719 </data> 7720 </define> 7721 <define name="driveSCSIUnit"> 7722 <data type="string"> 7723 <param name="pattern">[0-9]{1,20}</param> 7724 </data> 7725 </define> 7726 <define name="timeDelta"> 7727 <data type="string"> 7728 <param name="pattern">(-|\+)?[0-9]+</param> 7729 </data> 7730 </define> 7731 <define name="timeZone"> 7732 <data type="string"> 7733 <param name="pattern">[a-zA-Z0-9_\.\+\-/]+</param> 7734 </data> 7735 </define> 7736 <define name="spaprvioReg"> 7737 <data type="string"> 7738 <param name="pattern">(0x)?[0-9a-fA-F]{1,8}</param> 7739 </data> 7740 </define> 7741 <define name="aliasName"> 7742 <data type="string"> 7743 <param name="pattern">[a-zA-Z0-9_\-.]+</param> 7744 </data> 7745 </define> 7746 <define name="virtioserialPort"> 7747 <data type="string"> 7748 <param name="pattern">[0-9]{1,2}</param> 7749 </data> 7750 </define> 7751 <define name="ccidSlot"> 7752 <data type="string"> 7753 <param name="pattern">[0-9]{1,2}</param> 7754 </data> 7755 </define> 7756 <define name="alias"> 7757 <element name="alias"> 7758 <attribute name="name"> 7759 <ref name="aliasName"/> 7760 </attribute> 7761 </element> 7762 <empty/> 7763 </define> 7764 <define name="panic"> 7765 <element name="panic"> 7766 <optional> 7767 <attribute name="model"> 7768 <choice> 7769 <value>isa</value> 7770 <value>pseries</value> 7771 <value>hyperv</value> 7772 <value>s390</value> 7773 </choice> 7774 </attribute> 7775 </optional> 7776 <interleave> 7777 <optional> 7778 <ref name="alias"/> 7779 </optional> 7780 <optional> 7781 <ref name="acpi"/> 7782 </optional> 7783 <optional> 7784 <ref name="address"/> 7785 </optional> 7786 </interleave> 7787 </element> 7788 </define> 7789 <define name="rawIO"> 7790 <attribute name="rawio"> 7791 <ref name="virYesNo"/> 7792 </attribute> 7793 </define> 7794 <define name="sgIO"> 7795 <attribute name="sgio"> 7796 <choice> 7797 <value>filtered</value> 7798 <value>unfiltered</value> 7799 </choice> 7800 </attribute> 7801 </define> 7802 7803 <define name="coalesce"> 7804 <element name="coalesce"> 7805 <interleave> 7806 <optional> 7807 <element name="rx"> 7808 <optional> 7809 <element name="frames"> 7810 <optional> 7811 <attribute name="max"> 7812 <ref name="unsignedInt"/> 7813 </attribute> 7814 </optional> 7815 <!-- 7816 This is how we'd add more Rx-related settings for 7817 frames, like irq, high, and low 7818 7819 <optional> 7820 <attribute name="irq"> 7821 <ref name="unsignedInt"/> 7822 </attribute> 7823 </optional> 7824 <optional> 7825 <attribute name="high"> 7826 <ref name="unsignedInt"/> 7827 </attribute> 7828 </optional> 7829 <optional> 7830 <attribute name="low"> 7831 <ref name="unsignedInt"/> 7832 </attribute> 7833 </optional> 7834 7835 --> 7836 </element> 7837 </optional> 7838 <!-- 7839 This is how we'd add more Rx-related settings, like 7840 usecs 7841 7842 <optional> 7843 <element name="usecs"> 7844 <optional> 7845 <attribute name="max"> 7846 <ref name="unsignedInt"/> 7847 </attribute> 7848 </optional> 7849 <optional> 7850 <attribute name="irq"> 7851 <ref name="unsignedInt"/> 7852 </attribute> 7853 </optional> 7854 <optional> 7855 <attribute name="high"> 7856 <ref name="unsignedInt"/> 7857 </attribute> 7858 </optional> 7859 <optional> 7860 <attribute name="low"> 7861 <ref name="unsignedInt"/> 7862 </attribute> 7863 </optional> 7864 </element> 7865 </optional> 7866 --> 7867 </element> 7868 </optional> 7869 <!-- 7870 This is how you would add more coalesce settings, like 7871 Tx-related ones 7872 7873 <optional> 7874 <element name="tx"> 7875 <optional> 7876 <element name="frames"> 7877 <optional> 7878 <attribute name="max"> 7879 <ref name="unsignedInt"/> 7880 </attribute> 7881 </optional> 7882 <optional> 7883 <attribute name="irq"> 7884 <ref name="unsignedInt"/> 7885 </attribute> 7886 </optional> 7887 <optional> 7888 <attribute name="high"> 7889 <ref name="unsignedInt"/> 7890 </attribute> 7891 </optional> 7892 <optional> 7893 <attribute name="low"> 7894 <ref name="unsignedInt"/> 7895 </attribute> 7896 </optional> 7897 </element> 7898 </optional> 7899 <optional> 7900 <element name="usecs"> 7901 <optional> 7902 <attribute name="max"> 7903 <ref name="unsignedInt"/> 7904 </attribute> 7905 </optional> 7906 <optional> 7907 <attribute name="irq"> 7908 <ref name="unsignedInt"/> 7909 </attribute> 7910 </optional> 7911 <optional> 7912 <attribute name="high"> 7913 <ref name="unsignedInt"/> 7914 </attribute> 7915 </optional> 7916 <optional> 7917 <attribute name="low"> 7918 <ref name="unsignedInt"/> 7919 </attribute> 7920 </optional> 7921 </element> 7922 </optional> 7923 </element> 7924 </optional> 7925 --> 7926 </interleave> 7927 </element> 7928 </define> 7929 7930</grammar> 7931