1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893
|
<pre>Network Working Group T. Dreibholz
Request for Comments: 5356 University of Duisburg-Essen
Category: Experimental M. Tuexen
Muenster Univ. of Applied Sciences
September 2008
<span class="h1">Reliable Server Pooling Policies</span>
Status of This Memo
This memo defines an Experimental Protocol for the Internet
community. It does not specify an Internet standard of any kind.
Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited.
Abstract
This document describes server pool policies for Reliable Server
Pooling (RSerPool) including considerations for implementing them at
Endpoint Handlespace Redundancy Protocol (ENRP) servers and pool
users.
Table of Contents
<a href="#section-1">1</a>. Introduction ....................................................<a href="#page-3">3</a>
<a href="#section-2">2</a>. Conventions .....................................................<a href="#page-3">3</a>
<a href="#section-3">3</a>. Terminology and Definitions .....................................<a href="#page-3">3</a>
<a href="#section-3.1">3.1</a>. Load .......................................................<a href="#page-3">3</a>
<a href="#section-3.2">3.2</a>. Weight .....................................................<a href="#page-3">3</a>
<a href="#section-4">4</a>. Non-Adaptive Policies ...........................................<a href="#page-4">4</a>
<a href="#section-4.1">4.1</a>. Round Robin Policy .........................................<a href="#page-4">4</a>
<a href="#section-4.1.1">4.1.1</a>. Description .........................................<a href="#page-4">4</a>
<a href="#section-4.1.2">4.1.2</a>. ENRP Server Considerations ..........................<a href="#page-4">4</a>
<a href="#section-4.1.3">4.1.3</a>. Pool User Considerations ............................<a href="#page-4">4</a>
<a href="#section-4.1.4">4.1.4</a>. Pool Member Selection Policy Parameter ..............<a href="#page-4">4</a>
<a href="#section-4.2">4.2</a>. Weighted Round Robin Policy ................................<a href="#page-5">5</a>
<a href="#section-4.2.1">4.2.1</a>. Description .........................................<a href="#page-5">5</a>
<a href="#section-4.2.2">4.2.2</a>. ENRP Server Considerations ..........................<a href="#page-5">5</a>
<a href="#section-4.2.3">4.2.3</a>. Pool User Considerations ............................<a href="#page-5">5</a>
<a href="#section-4.2.4">4.2.4</a>. Pool Member Selection Policy Parameter ..............<a href="#page-5">5</a>
<a href="#section-4.3">4.3</a>. Random Policy ..............................................<a href="#page-5">5</a>
<a href="#section-4.3.1">4.3.1</a>. Description .........................................<a href="#page-5">5</a>
<a href="#section-4.3.2">4.3.2</a>. ENRP Server Considerations ..........................<a href="#page-6">6</a>
<a href="#section-4.3.3">4.3.3</a>. Pool User Considerations ............................<a href="#page-6">6</a>
<a href="#section-4.3.4">4.3.4</a>. Pool Member Selection Policy Parameter ..............<a href="#page-6">6</a>
<a href="#section-4.4">4.4</a>. Weighted Random Policy .....................................<a href="#page-6">6</a>
<a href="#section-4.4.1">4.4.1</a>. Description .........................................<a href="#page-6">6</a>
<span class="grey">Dreibholz & Tuexen Experimental [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<a href="#section-4.4.2">4.4.2</a>. ENRP Server Considerations ..........................<a href="#page-6">6</a>
<a href="#section-4.4.3">4.4.3</a>. Pool User Considerations ............................<a href="#page-6">6</a>
<a href="#section-4.4.4">4.4.4</a>. Pool Member Selection Policy Parameter ..............<a href="#page-7">7</a>
<a href="#section-4.5">4.5</a>. Priority Policy ............................................<a href="#page-7">7</a>
<a href="#section-4.5.1">4.5.1</a>. Description .........................................<a href="#page-7">7</a>
<a href="#section-4.5.2">4.5.2</a>. ENRP Server Considerations ..........................<a href="#page-7">7</a>
<a href="#section-4.5.3">4.5.3</a>. Pool Element Considerations .........................<a href="#page-7">7</a>
<a href="#section-4.5.4">4.5.4</a>. Pool Member Selection Policy Parameter ..............<a href="#page-7">7</a>
<a href="#section-5">5</a>. Adaptive Policies ...............................................<a href="#page-8">8</a>
<a href="#section-5.1">5.1</a>. Least Used Policy ..........................................<a href="#page-8">8</a>
<a href="#section-5.1.1">5.1.1</a>. Description .........................................<a href="#page-8">8</a>
<a href="#section-5.1.2">5.1.2</a>. ENRP Server Considerations ..........................<a href="#page-8">8</a>
<a href="#section-5.1.3">5.1.3</a>. Pool User Considerations ............................<a href="#page-8">8</a>
<a href="#section-5.1.4">5.1.4</a>. Pool Member Selection Policy Parameter ..............<a href="#page-8">8</a>
<a href="#section-5.2">5.2</a>. Least Used with Degradation Policy .........................<a href="#page-9">9</a>
<a href="#section-5.2.1">5.2.1</a>. Description .........................................<a href="#page-9">9</a>
<a href="#section-5.2.2">5.2.2</a>. ENRP Server Considerations ..........................<a href="#page-9">9</a>
<a href="#section-5.2.3">5.2.3</a>. Pool User Considerations ............................<a href="#page-9">9</a>
<a href="#section-5.2.4">5.2.4</a>. Pool Member Selection Policy Parameter ..............<a href="#page-9">9</a>
<a href="#section-5.3">5.3</a>. Priority Least Used Policy ................................<a href="#page-10">10</a>
<a href="#section-5.3.1">5.3.1</a>. Description ........................................<a href="#page-10">10</a>
<a href="#section-5.3.2">5.3.2</a>. ENRP Server Considerations .........................<a href="#page-10">10</a>
<a href="#section-5.3.3">5.3.3</a>. Pool User Considerations ...........................<a href="#page-10">10</a>
<a href="#section-5.3.4">5.3.4</a>. Pool Member Selection Policy Parameter .............<a href="#page-10">10</a>
<a href="#section-5.4">5.4</a>. Randomized Least Used Policy ..............................<a href="#page-11">11</a>
<a href="#section-5.4.1">5.4.1</a>. Description ........................................<a href="#page-11">11</a>
<a href="#section-5.4.2">5.4.2</a>. ENRP Server Considerations .........................<a href="#page-11">11</a>
<a href="#section-5.4.3">5.4.3</a>. Pool User Considerations ...........................<a href="#page-11">11</a>
<a href="#section-5.4.4">5.4.4</a>. Pool Member Selection Policy Parameter .............<a href="#page-11">11</a>
<a href="#section-6">6</a>. Security Considerations ........................................<a href="#page-11">11</a>
<a href="#section-7">7</a>. IANA Considerations ............................................<a href="#page-12">12</a>
<a href="#section-7.1">7.1</a>. A New Table for RSerPool Policy Types .....................<a href="#page-12">12</a>
<a href="#section-8">8</a>. Reference Implementation .......................................<a href="#page-13">13</a>
<a href="#section-9">9</a>. References .....................................................<a href="#page-13">13</a>
<a href="#section-9.1">9.1</a>. Normative References ......................................<a href="#page-13">13</a>
<a href="#section-9.2">9.2</a>. Informative References ....................................<a href="#page-14">14</a>
<span class="grey">Dreibholz & Tuexen Experimental [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
The protocols defined in [<a href="./rfc5353" title=""Endpoint Handlespace Redundancy Protocol (ENRP)"">RFC5353</a>], [<a href="./rfc5352" title=""Aggregate Server Access Protocol (ASAP)"">RFC5352</a>], and [<a href="./rfc5354" title=""Aggregate Server Access Protocol (ASAP) and Endpoint Handlespace Redundancy Protocol (ENRP) Parameters"">RFC5354</a>] support
a variety of server policies. Some of the policies use dynamic load
information of the pool elements and others do not. Therefore, we
classify them as adaptive and non-adaptive. The selection of the
pool element is performed by two different entities, the ENRP server
and the pool user. Some of the consequences for policies that are
not stateless are described in [<a href="#ref-ICN2005" title=""Load Distribution Performance of the Reliable Server Pooling Framework"">ICN2005</a>] and [<a href="#ref-LCN2005" title=""On the Performance of Reliable Server Pooling Systems"">LCN2005</a>].
Therefore, this document describes not only packet formats but also
gives a detailed description of the procedures to be followed at the
ENRP servers and the pool users to implement each server policy.
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Conventions</span>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [<a href="./rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. Terminology and Definitions</span>
<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a>. Load</span>
The term load is a value specifying how much a pool element's
resources are currently utilized. 0x00000000 states that the pool
element is not utilized (0%); 0xffffffff states that it is fully
utilized (100%). Defining what utilization means is application-
dependent and out of the scope of RSerPool. However, it is required
that all pool elements of the same pool using load information have
the same definition of load.
For example, load may define the current amount of users out of a
maximum on an FTP server, the CPU usage of a database server, or the
memory utilization of a compute service.
<span class="h3"><a class="selflink" id="section-3.2" href="#section-3.2">3.2</a>. Weight</span>
Weight defines a pool element's service capacity relative to other
pool elements of the same pool. Theoretically, there is no upper
limit for weight values (although limited by datatype size).
Defining what value weights compare is application-dependent and out
of the scope of RSerPool. However, it is required that all pool
elements of the same pool using weight information have the same
definition of weight.
<span class="grey">Dreibholz & Tuexen Experimental [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
A weight of 0 denotes that the pool element is not capable of
providing any service; a higher weight denotes that the pool element
is capable of providing better service than a pool element having a
lower weight.
For example, weight may define a compute service's computation
capacity. That is, a pool element of weight 100 will complete a work
package in half the time compared to a pool element of weight 50.
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. Non-Adaptive Policies</span>
<span class="h3"><a class="selflink" id="section-4.1" href="#section-4.1">4.1</a>. Round Robin Policy</span>
<span class="h4"><a class="selflink" id="section-4.1.1" href="#section-4.1.1">4.1.1</a>. Description</span>
The Round Robin (RR) policy is a very simple and efficient policy
that requires state. This policy is denoted as the default policy
and MUST be supported by all RSerPool components.
<span class="h4"><a class="selflink" id="section-4.1.2" href="#section-4.1.2">4.1.2</a>. ENRP Server Considerations</span>
The ENRP server SHOULD hold the pool elements of each server pool in
a circular list and SHOULD store a pointer to one of the elements,
called the head. On reception of a handle resolution request, the
ENRP server SHOULD return the pool elements from the circular list,
starting with head. Then the head SHOULD be advanced by one element.
Using this algorithm ensures that not all lists presented to the pool
users start with the same element.
<span class="h4"><a class="selflink" id="section-4.1.3" href="#section-4.1.3">4.1.3</a>. Pool User Considerations</span>
A pool user SHOULD use the list of pool elements returned by the ENRP
server in a round robin fashion, starting with the first. If all
elements of the list have been used, it should start from the
beginning again until the information is out of date.
<span class="h4"><a class="selflink" id="section-4.1.4" href="#section-4.1.4">4.1.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0x8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x00000001 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<span class="grey">Dreibholz & Tuexen Experimental [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<span class="h3"><a class="selflink" id="section-4.2" href="#section-4.2">4.2</a>. Weighted Round Robin Policy</span>
<span class="h4"><a class="selflink" id="section-4.2.1" href="#section-4.2.1">4.2.1</a>. Description</span>
The Weighted Round Robin (WRR) policy is a generalization of the RR
policy. If all weights are 1, then WRR is just RR.
<span class="h4"><a class="selflink" id="section-4.2.2" href="#section-4.2.2">4.2.2</a>. ENRP Server Considerations</span>
The ENRP server SHOULD follow the same rules as RR but initialize and
modify the circular list differently. The ENRP server puts each pool
element, possibly, multiple times into the list such that:
o The ratio of the number of occurrences of a pool element to the
list length is the same as the ratio of the weight of that pool
element to the sum of weights.
o The multiple entries of each pool element should be as evenly
distributed as possible in the circular list.
<span class="h4"><a class="selflink" id="section-4.2.3" href="#section-4.2.3">4.2.3</a>. Pool User Considerations</span>
The pool user SHOULD follow the same rules as RR.
<span class="h4"><a class="selflink" id="section-4.2.4" href="#section-4.2.4">4.2.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0xc |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x00000002 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Weight |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Weight (32 bits, unsigned integer): Weight constant for the WRR
process.
<span class="h3"><a class="selflink" id="section-4.3" href="#section-4.3">4.3</a>. Random Policy</span>
<span class="h4"><a class="selflink" id="section-4.3.1" href="#section-4.3.1">4.3.1</a>. Description</span>
The Random (RAND) policy is a very simple stateless policy.
<span class="grey">Dreibholz & Tuexen Experimental [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<span class="h4"><a class="selflink" id="section-4.3.2" href="#section-4.3.2">4.3.2</a>. ENRP Server Considerations</span>
The ENRP server selects, at most, the requested number of pool
elements from the list of pool elements. Each element MUST NOT be
reported more than once to the pool user.
<span class="h4"><a class="selflink" id="section-4.3.3" href="#section-4.3.3">4.3.3</a>. Pool User Considerations</span>
Each time the pool user must select one pool element, it does this by
randomly selecting one element from the list of pool elements
received from the ENRP server.
<span class="h4"><a class="selflink" id="section-4.3.4" href="#section-4.3.4">4.3.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0x8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x00000003 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<span class="h3"><a class="selflink" id="section-4.4" href="#section-4.4">4.4</a>. Weighted Random Policy</span>
<span class="h4"><a class="selflink" id="section-4.4.1" href="#section-4.4.1">4.4.1</a>. Description</span>
The Weighted Random (WRAND) policy is a generalization of the RAND
policy, adding a weight for each pool element entry. RAND is equal
to WRAND having all weights set to 1.
<span class="h4"><a class="selflink" id="section-4.4.2" href="#section-4.4.2">4.4.2</a>. ENRP Server Considerations</span>
The ENRP server SHOULD select, at most, the requested number of pool
elements randomly from the list of pool elements. Each element MUST
NOT be reported more than once to the pool user. The probability of
selecting a pool element should be the ratio of the weight of that
pool element to the sum of weights.
<span class="h4"><a class="selflink" id="section-4.4.3" href="#section-4.4.3">4.4.3</a>. Pool User Considerations</span>
Each time the pool user must select one pool element, it does this by
randomly selecting one element from the list of pool elements
received from the ENRP server.
<span class="grey">Dreibholz & Tuexen Experimental [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<span class="h4"><a class="selflink" id="section-4.4.4" href="#section-4.4.4">4.4.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0xc |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x00000004 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Weight |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Weight (32 bits, unsigned integer): Weight constant for the WRAND
process.
<span class="h3"><a class="selflink" id="section-4.5" href="#section-4.5">4.5</a>. Priority Policy</span>
<span class="h4"><a class="selflink" id="section-4.5.1" href="#section-4.5.1">4.5.1</a>. Description</span>
The Priority (PRIO) policy can be used to select always a pool
element with the highest priority.
<span class="h4"><a class="selflink" id="section-4.5.2" href="#section-4.5.2">4.5.2</a>. ENRP Server Considerations</span>
The ENRP server MUST select the pool elements with the highest
priorities. They MUST be reported in decreasing order. If multiple
pool elements have the same priority, they may be listed in any
order.
<span class="h4"><a class="selflink" id="section-4.5.3" href="#section-4.5.3">4.5.3</a>. Pool Element Considerations</span>
The pool user MUST select the active pool element with the highest
priority.
<span class="h4"><a class="selflink" id="section-4.5.4" href="#section-4.5.4">4.5.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0xc |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x00000005 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Priority |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<span class="grey">Dreibholz & Tuexen Experimental [Page 7]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-8" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
o Priority (32 bits, unsigned integer): Larger numbers mean higher
priorities.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Adaptive Policies</span>
<span class="h3"><a class="selflink" id="section-5.1" href="#section-5.1">5.1</a>. Least Used Policy</span>
<span class="h4"><a class="selflink" id="section-5.1.1" href="#section-5.1.1">5.1.1</a>. Description</span>
The Least Used (LU) policy uses load information provided by the pool
elements to select the lowest-loaded pool elements within the pool.
<span class="h4"><a class="selflink" id="section-5.1.2" href="#section-5.1.2">5.1.2</a>. ENRP Server Considerations</span>
The ENRP server SHOULD select, at most, the requested number of pool
elements. Their load values SHOULD be the lowest possible ones
within the pool. Each element MUST NOT be reported more than once to
the pool user. If there is a choice of equal-loaded pool elements,
round robin selection SHOULD be made among these elements. The
returned list of pool elements MUST be sorted in ascending order by
load value.
<span class="h4"><a class="selflink" id="section-5.1.3" href="#section-5.1.3">5.1.3</a>. Pool User Considerations</span>
The pool user should try to use the pool elements returned from the
list in the order returned by the ENRP server. A subsequent call for
handle resolution may result in the same list. Therefore, it is
RECOMMENDED for a pool user to request multiple entries in order to
have a sufficient amount of feasible backup entries available.
<span class="h4"><a class="selflink" id="section-5.1.4" href="#section-5.1.4">5.1.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0xc |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x40000001 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Load |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Load (32 bits, unsigned integer): Current load of the pool
element.
<span class="grey">Dreibholz & Tuexen Experimental [Page 8]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-9" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<span class="h3"><a class="selflink" id="section-5.2" href="#section-5.2">5.2</a>. Least Used with Degradation Policy</span>
<span class="h4"><a class="selflink" id="section-5.2.1" href="#section-5.2.1">5.2.1</a>. Description</span>
The Least Used with Degradation (LUD) policy extends the LU policy by
a load degradation value describing the pool element's load increment
when a new service association is accepted.
<span class="h4"><a class="selflink" id="section-5.2.2" href="#section-5.2.2">5.2.2</a>. ENRP Server Considerations</span>
For every pool element entry, a degradation counter MUST be stored.
When a pool element entry is added or updated by registration or re-
registration, this counter MUST be set to 0. When an entry is
selected for being returned to a pool user, the internal degradation
counter MUST be incremented by 1. The selection of pool element
entries is handled like for LU, except that the selected pool element
entries SHOULD have the lowest possible sum of load value +
degradation counter * load degradation value.
<span class="h4"><a class="selflink" id="section-5.2.3" href="#section-5.2.3">5.2.3</a>. Pool User Considerations</span>
See LU policy.
<span class="h4"><a class="selflink" id="section-5.2.4" href="#section-5.2.4">5.2.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0x10 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x40000002 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Load |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Load Degradation |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Load (32 bits, unsigned integer): Current load of the pool
element.
o Load Degradation (32 bits, unsigned integer): Load Degradation
constant of the pool element.
<span class="grey">Dreibholz & Tuexen Experimental [Page 9]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-10" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<span class="h3"><a class="selflink" id="section-5.3" href="#section-5.3">5.3</a>. Priority Least Used Policy</span>
<span class="h4"><a class="selflink" id="section-5.3.1" href="#section-5.3.1">5.3.1</a>. Description</span>
The Priority Least Used (PLU) policy uses load information provided
by the pool elements to select the lowest-loaded pool elements within
the pool under the assumption that a new application request is
accepted by the pool elements. Therefore, the pool elements also
have to specify load degradation information.
Example: Pool elements A and B are loaded by 50%, but the load of A
will increase due to a new application request only by 10% while B
will be fully loaded. PLU allows the specification of this load
degradation in the policy information; the selection is made on the
lowest sum of load and degradation value. That is, A will be
selected (50+10=60) instead of B (50+50=100).
<span class="h4"><a class="selflink" id="section-5.3.2" href="#section-5.3.2">5.3.2</a>. ENRP Server Considerations</span>
The ENRP server SHOULD select, at most, the requested number of pool
elements. Their sums of load + degradation SHOULD be the lowest
possible ones within the pool. Each element MUST NOT be reported
more than once to the pool user. If there is a choice of equal-
valued pool element entries, round robin SHOULD be made among these
elements. The returned list of pool elements MUST be sorted
ascending by the sum of load and degradation value.
<span class="h4"><a class="selflink" id="section-5.3.3" href="#section-5.3.3">5.3.3</a>. Pool User Considerations</span>
The pool user should try to use the pool elements returned from the
list in the order returned by the ENRP server. A subsequent call for
handle resolution may result in the same list. Therefore, it is
RECOMMENDED for a pool user to request multiple entries in order to
have a sufficient amount of feasible backup entries available.
<span class="h4"><a class="selflink" id="section-5.3.4" href="#section-5.3.4">5.3.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0x10 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x40000003 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Load |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Load Degradation |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<span class="grey">Dreibholz & Tuexen Experimental [Page 10]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-11" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
o Load (32 bits, unsigned integer): Current load of the pool
element.
o Load Degradation (32 bits, unsigned integer): Load Degradation
constant of the pool element.
<span class="h3"><a class="selflink" id="section-5.4" href="#section-5.4">5.4</a>. Randomized Least Used Policy</span>
<span class="h4"><a class="selflink" id="section-5.4.1" href="#section-5.4.1">5.4.1</a>. Description</span>
The Randomized Least Used (RLU) policy combines LU and WRAND. That
is, the pool element entries are selected randomly. The probability
for a pool element entry A, utilized with load_A, to be selected is
(0xFFFFFFFF - load_A) / (sum(0xFFFFFFFF-load_x)), i.e., this PE's
unload part related to the whole pool unload rate.
<span class="h4"><a class="selflink" id="section-5.4.2" href="#section-5.4.2">5.4.2</a>. ENRP Server Considerations</span>
The ENRP server SHOULD behave like WRAND, having every PE's weight
set to (0xffffffff -- load value provided by the pool element).
<span class="h4"><a class="selflink" id="section-5.4.3" href="#section-5.4.3">5.4.3</a>. Pool User Considerations</span>
See WRAND policy.
<span class="h4"><a class="selflink" id="section-5.4.4" href="#section-5.4.4">5.4.4</a>. Pool Member Selection Policy Parameter</span>
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Param Type = 0x8 | Length = 0xc |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Policy Type = 0x40000004 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Load |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Load (32 bits, unsigned integer): Current load of the pool
element.
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. Security Considerations</span>
The security threats regarding RSerPool have been analyzed in
RSerPool threats [<a href="./rfc5355" title=""Threats Introduced by Reliable Server Pooling (RSerPool) and Requirements for Security in Response to Threats"">RFC5355</a>]. The server policy descriptions in this
document do not add any other threats.
<span class="grey">Dreibholz & Tuexen Experimental [Page 11]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-12" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>. IANA Considerations</span>
This document (<a href="./rfc5356">RFC 5356</a>) is the reference for all registrations
described in this section. All registrations have been listed on the
RSerPool Parameters page.
<span class="h3"><a class="selflink" id="section-7.1" href="#section-7.1">7.1</a>. A New Table for RSerPool Policy Types</span>
RSerPool policy types that are 4-byte values are maintained by IANA.
The format of the policy type value is defined as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|X|A| Policy Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o X: If set to 1, the policy is user defined and not standardized.
All standards policies reserved by the IETF use X=0.
o A: If set to 1, the policy is adaptive. Otherwise, it is non-
adaptive.
o Policy Number: The actual number of the policy.
Nine initial policy types have been assigned and are maintained in a
new table, "RSerPool Policy Types":
<span class="grey">Dreibholz & Tuexen Experimental [Page 12]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-13" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
Value Policy Reference
----- --------- ---------
0x00000000 (reserved, invalid value) <a href="./rfc5356">RFC 5356</a>
0x00000001 Round Robin <a href="./rfc5356">RFC 5356</a>
0x00000002 Weighted Round Robin <a href="./rfc5356">RFC 5356</a>
0x00000003 Random <a href="./rfc5356">RFC 5356</a>
0x00000004 Weighted Random <a href="./rfc5356">RFC 5356</a>
0x00000005 Priority <a href="./rfc5356">RFC 5356</a>
0x00000006 (reserved by IETF) <a href="./rfc5356">RFC 5356</a>
...
0x3fffffff (reserved by IETF) <a href="./rfc5356">RFC 5356</a>
0x40000000 (reserved, invalid value) <a href="./rfc5356">RFC 5356</a>
0x40000001 Least Used <a href="./rfc5356">RFC 5356</a>
0x40000002 Least Used with Degradation <a href="./rfc5356">RFC 5356</a>
0x40000003 Priority Least Used <a href="./rfc5356">RFC 5356</a>
0x40000004 Randomized Least Used <a href="./rfc5356">RFC 5356</a>
0x40000005 (reserved by IETF) <a href="./rfc5356">RFC 5356</a>
...
0x7fffffff (reserved by IETF) <a href="./rfc5356">RFC 5356</a>
0x80000000 (private use, non-standard policy) <a href="./rfc5356">RFC 5356</a>
...
0xffffffff (private use, non-standard policy) <a href="./rfc5356">RFC 5356</a>
Requests to register an RSerPool policy type in this table should be
sent to IANA. The number must be unique and use the appropriate
upper bits. The "Specification Required" policy of [<a href="./rfc5226" title="">RFC5226</a>] MUST be
applied.
The policy type space from 0x80000000 to 0xffffffff is designated for
private use.
<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>. Reference Implementation</span>
A reference implementation of RSerPool and the policies described in
this document is available at [<a href="#ref-RSerPoolPage" title=""Thomas Dreibholz's RSerPool Page"">RSerPoolPage</a>] and described in
[<a href="#ref-Dre2006" title=""Reliable Server Pooling -- Evaluation, Optimization and Extension of a Novel IETF Architecture"">Dre2006</a>].
<span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a>. References</span>
<span class="h3"><a class="selflink" id="section-9.1" href="#section-9.1">9.1</a>. Normative References</span>
[<a id="ref-RFC2119">RFC2119</a>] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
<span class="grey">Dreibholz & Tuexen Experimental [Page 13]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-14" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
[<a id="ref-RFC5226">RFC5226</a>] Narten, T. and H. Alvestrand, "Guidelines for Writing
an IANA Considerations Section in RFCs", <a href="https://www.rfc-editor.org/bcp/bcp26">BCP 26</a>,
<a href="./rfc5226">RFC 5226</a>, May 2008.
[<a id="ref-RFC5354">RFC5354</a>] Stewart, R., Xie, Q., Stillman, M., and M. Tuexen,
"Aggregate Server Access Protocol (ASAP) and Endpoint
Handlespace Redundancy Protocol (ENRP) Parameters",
<a href="./rfc5354">RFC 5354</a>, September 2008.
[<a id="ref-RFC5352">RFC5352</a>] Stewart, R., Xie, Q., Stillman, M., and M. Tuexen,
"Aggregate Server Access Protocol (ASAP)", <a href="./rfc5352">RFC 5352</a>,
September 2008.
[<a id="ref-RFC5353">RFC5353</a>] Xie, Q., Stewart, R., Stillman, M., Tuexen, M., and
A. Silverton, "Endpoint Handlespace Redundancy
Protocol (ENRP)", <a href="./rfc5353">RFC 5353</a>, September 2008.
[<a id="ref-RFC5355">RFC5355</a>] Stillman, M., Ed., Gopal, R., Guttman, E., Holdrege,
M., and S. Sengodan, "Threats Introduced by Reliable
Server Pooling (RSerPool) and Requirements for
Security in Response to Threats", <a href="./rfc5355">RFC 5355</a>,
September 2008.
<span class="h3"><a class="selflink" id="section-9.2" href="#section-9.2">9.2</a>. Informative References</span>
[<a id="ref-RSerPoolPage">RSerPoolPage</a>] Dreibholz, T., "Thomas Dreibholz's RSerPool Page",
<<a href="http://tdrwww.iem.uni-due.de/dreibholz/rserpool/">http://tdrwww.iem.uni-due.de/dreibholz/rserpool/</a>>.
[<a id="ref-Dre2006">Dre2006</a>] Dreibholz, T., "Reliable Server Pooling --
Evaluation, Optimization and Extension of a Novel
IETF Architecture", Ph.D. Thesis University of
Duisburg-Essen, Faculty of Economics, Institute for
Computer Science and Business Information Systems,
March 2007, <<a href="http://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-16326/Dre2006-final.pdf">http://duepublico.uni-duisburg-essen.de/</a>
<a href="http://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-16326/Dre2006-final.pdf">servlets/DerivateServlet/Derivate-16326/</a>
<a href="http://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-16326/Dre2006-final.pdf">Dre2006-final.pdf</a>>.
[<a id="ref-LCN2005">LCN2005</a>] Dreibholz, T. and E. Rathgeb, "On the Performance of
Reliable Server Pooling Systems", Proceedings of the
30th IEEE Local Computer Networks Conference,
November 2005.
[<a id="ref-ICN2005">ICN2005</a>] Dreibholz, T., Rathgeb, E., and M. Tuexen, "Load
Distribution Performance of the Reliable Server
Pooling Framework", Proceedings of the 4th IEEE
International Conference on Networking, April 2005.
<span class="grey">Dreibholz & Tuexen Experimental [Page 14]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-15" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
Authors' Addresses
Thomas Dreibholz
University of Duisburg-Essen, Institute for Experimental Mathematics
Ellernstrasse 29
45326 Essen, Nordrhein-Westfalen
Germany
Phone: +49-201-1837637
Fax: +49-201-1837673
EMail: dreibh@iem.uni-due.de
URI: <a href="http://www.iem.uni-due.de/~dreibh/">http://www.iem.uni-due.de/~dreibh/</a>
Michael Tuexen
Muenster University of Applied Sciences
Stegerwaldstrasse 39
48565 Steinfurt
Germany
Phone: +49-2551-962550
Fax: +49-2551-962563
EMail: tuexen@fh-muenster.de
<span class="grey">Dreibholz & Tuexen Experimental [Page 15]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-16" ></span>
<span class="grey"><a href="./rfc5356">RFC 5356</a> RSerPool Policies September 2008</span>
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a>, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and <a href="https://www.rfc-editor.org/bcp/bcp79">BCP 79</a>.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
<a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Dreibholz & Tuexen Experimental [Page 16]
</pre>
|