idnits 2.17.1 draft-ietf-rserpool-policies-10.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 16. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 688. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 699. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 706. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 712. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (July 14, 2008) is 5727 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) == Outdated reference: A later version (-18) exists of draft-ietf-rserpool-common-param-17 Summary: 2 errors (**), 0 flaws (~~), 2 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group T. Dreibholz 3 Internet-Draft University of Duisburg-Essen 4 Intended status: Experimental M. Tuexen 5 Expires: January 15, 2009 Muenster Univ. of Applied Sciences 6 July 14, 2008 8 Reliable Server Pooling Policies 9 draft-ietf-rserpool-policies-10.txt 11 Status of this Memo 13 By submitting this Internet-Draft, each author represents that any 14 applicable patent or other IPR claims of which he or she is aware 15 have been or will be disclosed, and any of which he or she becomes 16 aware will be disclosed, in accordance with Section 6 of BCP 79. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that 20 other groups may also distribute working documents as Internet- 21 Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt. 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft will expire on January 15, 2009. 36 Abstract 38 This document describes server pool policies for Reliable Server 39 Pooling including considerations for implementing them at ENRP 40 servers and pool users. 42 Table of Contents 44 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 45 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4 46 3. Terminology and Definitions . . . . . . . . . . . . . . . . . 4 47 3.1. Load . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 48 3.2. Weight . . . . . . . . . . . . . . . . . . . . . . . . . . 4 49 4. Non-Adaptive Policies . . . . . . . . . . . . . . . . . . . . 5 50 4.1. Round Robin Policy . . . . . . . . . . . . . . . . . . . . 5 51 4.1.1. Description . . . . . . . . . . . . . . . . . . . . . 5 52 4.1.2. ENRP Server Considerations . . . . . . . . . . . . . . 5 53 4.1.3. Pool User Considerations . . . . . . . . . . . . . . . 5 54 4.1.4. Pool Member Selection Policy Parameter . . . . . . . . 5 55 4.2. Weighted Round Robin Policy . . . . . . . . . . . . . . . 6 56 4.2.1. Description . . . . . . . . . . . . . . . . . . . . . 6 57 4.2.2. ENRP Server Considerations . . . . . . . . . . . . . . 6 58 4.2.3. Pool User Considerations . . . . . . . . . . . . . . . 6 59 4.2.4. Pool Member Selection Policy Parameter . . . . . . . . 6 60 4.3. Random Policy . . . . . . . . . . . . . . . . . . . . . . 6 61 4.3.1. Description . . . . . . . . . . . . . . . . . . . . . 6 62 4.3.2. ENRP Server Considerations . . . . . . . . . . . . . . 7 63 4.3.3. Pool User Considerations . . . . . . . . . . . . . . . 7 64 4.3.4. Pool Member Selection Policy Parameter . . . . . . . . 7 65 4.4. Weighted Random Policy . . . . . . . . . . . . . . . . . . 7 66 4.4.1. Description . . . . . . . . . . . . . . . . . . . . . 7 67 4.4.2. ENRP Server Considerations . . . . . . . . . . . . . . 7 68 4.4.3. Pool User Considerations . . . . . . . . . . . . . . . 7 69 4.4.4. Pool Member Selection Policy Parameter . . . . . . . . 8 70 4.5. Priority Policy . . . . . . . . . . . . . . . . . . . . . 8 71 4.5.1. Description . . . . . . . . . . . . . . . . . . . . . 8 72 4.5.2. ENRP Server Considerations . . . . . . . . . . . . . . 8 73 4.5.3. Pool Element Considerations . . . . . . . . . . . . . 8 74 4.5.4. Pool Member Selection Policy Parameter . . . . . . . . 8 75 5. Adaptive Policies . . . . . . . . . . . . . . . . . . . . . . 9 76 5.1. Least Used Policy . . . . . . . . . . . . . . . . . . . . 9 77 5.1.1. Description . . . . . . . . . . . . . . . . . . . . . 9 78 5.1.2. ENRP Server Considerations . . . . . . . . . . . . . . 9 79 5.1.3. Pool User Considerations . . . . . . . . . . . . . . . 9 80 5.1.4. Pool Member Selection Policy Parameter . . . . . . . . 9 81 5.2. Least Used with Degradation Policy . . . . . . . . . . . . 10 82 5.2.1. Description . . . . . . . . . . . . . . . . . . . . . 10 83 5.2.2. ENRP Server Considerations . . . . . . . . . . . . . . 10 84 5.2.3. Pool User Considerations . . . . . . . . . . . . . . . 10 85 5.2.4. Pool Member Selection Policy Parameter . . . . . . . . 10 86 5.3. Priority Least Used Policy . . . . . . . . . . . . . . . . 11 87 5.3.1. Description . . . . . . . . . . . . . . . . . . . . . 11 88 5.3.2. ENRP Server Considerations . . . . . . . . . . . . . . 11 89 5.3.3. Pool User Considerations . . . . . . . . . . . . . . . 11 90 5.3.4. Pool Member Selection Policy Parameter . . . . . . . . 11 91 5.4. Randomized Least Used Policy . . . . . . . . . . . . . . . 12 92 5.4.1. Description . . . . . . . . . . . . . . . . . . . . . 12 93 5.4.2. ENRP Server Considerations . . . . . . . . . . . . . . 12 94 5.4.3. Pool User Considerations . . . . . . . . . . . . . . . 12 95 5.4.4. Pool Member Selection Policy Parameter . . . . . . . . 12 96 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 97 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 98 7.1. A New Table for RSerPool Policy Types . . . . . . . . . . 13 99 8. Reference Implementation . . . . . . . . . . . . . . . . . . . 14 100 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 101 9.1. Normative References . . . . . . . . . . . . . . . . . . . 14 102 9.2. Informative References . . . . . . . . . . . . . . . . . . 15 103 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16 104 Intellectual Property and Copyright Statements . . . . . . . . . . 17 106 1. Introduction 108 The protocols defined in [I-D.ietf-rserpool-enrp], 109 [I-D.ietf-rserpool-asap] and [I-D.ietf-rserpool-common-param] support 110 a variety of server policies. Some of the policies use dynamic load 111 information of the pool elements and others do not. Therefore, we 112 classify them as adaptive and non-adaptive. The selection of the 113 pool element is performed by two different entities, the ENRP server 114 and the pool user. Some of the consequences for policies which are 115 not stateless are described in [ICN2005] and [LCN2005]. 117 Therefore this document describes not only packet formats but also 118 gives a detailed description of the procedures to be followed at the 119 ENRP servers and the pool users to implement each server policy. 121 2. Conventions 123 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 124 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 125 document are to be interpreted as described in [RFC2119]. 127 3. Terminology and Definitions 129 3.1. Load 131 The term load is a value specifying how much a pool element's 132 resources are currently utilized. 0x00000000 states, that the pool 133 element is not utilized (0%), 0xffffffff states that it is fully 134 utilized (100%). Defining what utilization means is application- 135 dependent and out of the scope of RSerPool. However, it is required 136 that all pool elements of the same pool using load information have 137 the same definition of load. 139 For example, load may define the current amount of users out of a 140 maximum on a FTP server, the CPU usage of a database server or the 141 memory utilization of a compute service. 143 3.2. Weight 145 Weight defines a pool element's service capacity relatively to other 146 pool elements of the same pool. Theoretically, there is no upper 147 limit for weight values (although limited by datatype size). 148 Defining what value weights compare is application-dependent and out 149 of the scope of RSerPool. However, it is required that all pool 150 elements of the same pool using weight information have the same 151 definition of weight. 153 A weight of 0 denotes that the pool element is not capable of 154 providing any service, a higher weight of denotes that the pool 155 element is capable of providing better service than a pool element 156 having a lower weight. 158 For example, weight may define a compute service's computation 159 capacity. That is, a pool element of weight 100 will complete a work 160 package in half of the time compared to a pool element of weight 50. 162 4. Non-Adaptive Policies 164 4.1. Round Robin Policy 166 4.1.1. Description 168 The Round Robin (RR) policy is a very simple and efficient policy 169 which requires state. This policy is denoted as the default policy 170 and MUST be supported by all RSerPool components. 172 4.1.2. ENRP Server Considerations 174 The ENRP server SHOULD hold the pool elements of each server pool in 175 a circular list and SHOULD store a pointer to one of the elements, 176 called the head. On reception of a handle resolution request the 177 ENRP server SHOULD return the pool elements from the circular list 178 starting with head. Then head SHOULD be advanced by one element. 180 Using this algorithm it is made sure that not all lists presented to 181 the pool users start with the same element. 183 4.1.3. Pool User Considerations 185 A pool user SHOULD use the list of pool elements returned by the ENRP 186 server in a round robin fashion, starting with the first. If all 187 elements of the list have been used it should start from the 188 beginning again until the information is out of date. 190 4.1.4. Pool Member Selection Policy Parameter 192 0 1 2 3 193 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 194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 195 | Param Type = 0x8 | Length = 0x8 | 196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 197 | Policy Type = 0x00000001 | 198 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 200 4.2. Weighted Round Robin Policy 202 4.2.1. Description 204 The Weighted Round Robin (WRR) policy is a generalization of the RR 205 policy. If all weights are 1 then WRR is just RR. 207 4.2.2. ENRP Server Considerations 209 The ENRP server SHOULD follow the same rules as for RR but initialize 210 and modify the circular list differently. The ENRP server puts each 211 pool element possibly multiple times into the list such that: 213 o The ratio of the number of occurrences of a pool element to the 214 list length is the same as the ratio of the weight of that pool 215 element to the sum of weights. 217 o Each pool element is inserted as distributed as possible in the 218 circular list. 220 4.2.3. Pool User Considerations 222 The pool user SHOULD follow the same rules as for RR. 224 4.2.4. Pool Member Selection Policy Parameter 226 0 1 2 3 227 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 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 229 | Param Type = 0x8 | Length = 0xc | 230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 231 | Policy Type = 0x00000002 | 232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 233 | Weight | 234 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 236 o Weight (32 bits, unsigned integer): Weight constant for the WRR 237 process. 239 4.3. Random Policy 241 4.3.1. Description 243 The Random (RAND) policy is a very simple stateless policy. 245 4.3.2. ENRP Server Considerations 247 The ENRP server selects at most the requested number of pool elements 248 from the list of pool elements. Each element MUST NOT be reported 249 more than once to the pool user. 251 4.3.3. Pool User Considerations 253 Each time the pool user must select one pool element it does this by 254 randomly selecting one element from the list of pool elements 255 received from the ENRP server. 257 4.3.4. Pool Member Selection Policy Parameter 259 0 1 2 3 260 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 261 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 262 | Param Type = 0x8 | Length = 0x8 | 263 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 264 | Policy Type = 0x00000003 | 265 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 267 4.4. Weighted Random Policy 269 4.4.1. Description 271 The Weighted Random (WRAND) policy is a generalization of the RAND 272 policy, adding a weight for each pool element entry. RAND is equal 273 to WRAND having all weights set to 1. 275 4.4.2. ENRP Server Considerations 277 The ENRP server SHOULD select at most the requested number of pool 278 elements randomly from the list of pool elements. Each element MUST 279 NOT be reported more than once to the pool user. The probability of 280 selecting a pool element should be the ratio of the weight of that 281 pool element to the sum of weights. 283 4.4.3. Pool User Considerations 285 Each time the pool user must select one pool element it does this by 286 randomly selecting one element from the list of pool elements 287 received from the ENRP server. 289 4.4.4. Pool Member Selection Policy Parameter 291 0 1 2 3 292 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 293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 294 | Param Type = 0x8 | Length = 0xc | 295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 296 | Policy Type = 0x00000004 | 297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 298 | Weight | 299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 301 o Weight (32 bits, unsigned integer): Weight constant for the WRAND 302 process. 304 4.5. Priority Policy 306 4.5.1. Description 308 The Priority (PRIO) policy can be used to select always a pool 309 element with the highest priority. 311 4.5.2. ENRP Server Considerations 313 The ENRP server MUST select the pool elements with the highest 314 priorities. They MUST be reported in decreasing order. If multiple 315 pool elements have the same priority, they may be listed in any 316 order. 318 4.5.3. Pool Element Considerations 320 The pool user MUST select the active pool element with the highest 321 priority. 323 4.5.4. Pool Member Selection Policy Parameter 325 0 1 2 3 326 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 327 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 328 | Param Type = 0x8 | Length = 0xc | 329 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 330 | Policy Type = 0x00000005 | 331 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 332 | Priority | 333 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 335 o Priority (32 bits, unsigned integer): Larger numbers mean higher 336 priorities. 338 5. Adaptive Policies 340 5.1. Least Used Policy 342 5.1.1. Description 344 The Least Used (LU) policy uses load information provided by the pool 345 elements to select the lowest-loaded pool elements within the pool. 347 5.1.2. ENRP Server Considerations 349 The ENRP server SHOULD select at most the requested number of pool 350 elements. Their load values SHOULD be the lowest possible ones 351 within the pool. Each element MUST NOT be reported more than once to 352 the pool user. If there is a choice of equal-loaded pool elements, 353 round robin selection SHOULD be made among these elements. The 354 returned list of pool elements MUST be sorted ascending by load 355 value. 357 5.1.3. Pool User Considerations 359 The pool user should try to use the pool elements returned from the 360 list in the order returned by the ENRP server. A subsequent call for 361 handle resolution may result in the same list. Thereofore, it is 362 RECOMMENDED for a pool user to request multiple entries in order to 363 have a sufficient amount of feasible backup entries available. 365 5.1.4. Pool Member Selection Policy Parameter 367 0 1 2 3 368 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 369 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 370 | Param Type = 0x8 | Length = 0xc | 371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 372 | Policy Type = 0x40000001 | 373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 374 | Load | 375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 377 o Load (32 bits, unsigned integer): Current load of the pool 378 element. 380 5.2. Least Used with Degradation Policy 382 5.2.1. Description 384 The Least Used with Degradation (LUD) policy extends the LU policy by 385 a load degradation value describing the pool element's load increment 386 when a new service association is accepted. 388 5.2.2. ENRP Server Considerations 390 For every pool element entry, a degradation counter MUST be stored. 391 When a pool element entry is added or updated by registration or 392 reregistration, this counter MUST be set to 0. When an entry is 393 selected for being returned to a pool user, the internal degradation 394 counter MUST be incremented by 1. The selection of pool element 395 entries is handled like for LU, except that the selected pool element 396 entries SHOULD have the lowest possible sum of load value + 397 degradation counter * load degradation value. 399 5.2.3. Pool User Considerations 401 See LU policy. 403 5.2.4. Pool Member Selection Policy Parameter 405 0 1 2 3 406 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 407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 408 | Param Type = 0x8 | Length = 0x10 | 409 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 410 | Policy Type = 0x40000002 | 411 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 412 | Load | 413 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 414 | Load Degradation | 415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 417 o Load (32 bits, unsigned integer): Current load of the pool 418 element. 420 o Load Degradation (32 bits, unsigned integer): Load Degradation 421 constant of the pool element. 423 5.3. Priority Least Used Policy 425 5.3.1. Description 427 The Priority Least Used (PLU) policy uses load information provided 428 by the pool elements to select the lowest-loaded pool elements within 429 the pool under the assumption that a new application request is 430 accepted by the pool elements. Therefore, the pool elements also 431 have to specify load degradation information. 433 Example: Pool elements A and B are loaded by 50%, but the load of A 434 will increase due to a new application request only by 10% while B 435 will be fully loaded. PLU allows to specify this load degradation in 436 the policy information, the selection is made on the lowest sum of 437 load and degradation value. That is, A will be selected (50+10=60) 438 instead of B (50+50=100). 440 5.3.2. ENRP Server Considerations 442 The ENRP server SHOULD select at most the requested number of pool 443 elements. Their sums of load + degradation SHOULD be the lowest 444 possible ones within the pool. Each element MUST NOT be reported 445 more than once to the pool user. If there is a choice of equal- 446 valued pool element entries, round robin SHOULD be made among these 447 elements. The returned list of pool elements MUST be sorted 448 ascending by the sum of load and degradation value. 450 5.3.3. Pool User Considerations 452 The pool user should try to use the pool elements returned from the 453 list in the order returned by the ENRP server. A subsequent call for 454 handle resolution may result in the same list. Therefore, it is 455 RECOMMENDED for a pool user to request multiple entries in order to 456 have a sufficient amount of feasible backup entries available. 458 5.3.4. Pool Member Selection Policy Parameter 460 0 1 2 3 461 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 462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 463 | Param Type = 0x8 | Length = 0x10 | 464 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 465 | Policy Type = 0x40000003 | 466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 467 | Load | 468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 469 | Load Degradation | 470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 472 o Load (32 bits, unsigned integer): Current load of the pool 473 element. 475 o Load Degradation (32 bits, unsigned integer): Load Degradation 476 constant of the pool element. 478 5.4. Randomized Least Used Policy 480 5.4.1. Description 482 The Randomized Least Used (RLU) policy combines LU and WRAND. That 483 is, the pool element entries are selected randomly. The probability 484 for a pool element entry A, utilized with load_A, to be selected is 485 (0xFFFFFFFF - load_A) / (sum(0xFFFFFFFF-load_x)), i.e. this PE's 486 unload part related to the whole pool unload rate. 488 5.4.2. ENRP Server Considerations 490 The ENRP server SHOULD behave like WRAND, having every PE's weight 491 set to (0xffffffff - Load value provided by the pool element). 493 5.4.3. Pool User Considerations 495 See WRAND policy. 497 5.4.4. Pool Member Selection Policy Parameter 499 0 1 2 3 500 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 501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 502 | Param Type = 0x8 | Length = 0xc | 503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 504 | Policy Type = 0x40000004 | 505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 506 | Load | 507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 509 o Load (32 bits, unsigned integer): Current load of the pool 510 element. 512 6. Security Considerations 514 The security threats regarding RSerPool have been analyzed in 515 RSerPool threats [I-D.ietf-rserpool-threats]. The server policy 516 descriptions in this document do not add any other threats. 518 7. IANA Considerations 520 [NOTE to RFC-Editor: 522 "RFCXXXX" is to be replaced by the RFC number you assign this 523 document. 525 ] 527 This document (RFCXXX) is the reference for all registrations 528 described in this section. All registrations need to be listed on an 529 RSerPool specific page. 531 7.1. A New Table for RSerPool Policy Types 533 RSerPool Policy Types which are 4 byte values have to be maintained 534 by IANA. The format of the policy type value is defined as follows: 536 0 1 2 3 537 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 538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 539 |X|A| Policy Number | 540 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 542 o X: If set to 1, the policy is user-defined and not standardized. 543 All standards policies reserved by the IETF use X=0. 545 o A: If set to 1, the policy is adaptive. Otherwise, it is non- 546 adaptive. 548 o Policy Number: The actual number of the policy. 550 Nine initial Policy Types should be assigned and maintained in a new 551 table "RSerPool Policy Types": 553 Value Policy Reference 554 ----- --------- --------- 555 0x00000000 (reserved, invalid value) RFCXXXX 556 0x00000001 Round Robin RFCXXXX 557 0x00000002 Weighted Round Robin RFCXXXX 558 0x00000003 Random RFCXXXX 559 0x00000004 Weighted Random RFCXXXX 560 0x00000005 Priority RFCXXXX 561 0x00000006 (reserved by IETF) RFCXXXX 562 ... 563 0x3fffffff (reserved by IETF) RFCXXXX 565 0x40000000 (reserved, invalid value) RFCXXXX 566 0x40000001 Least Used RFCXXXX 567 0x40000002 Least Used with Degradation RFCXXXX 568 0x40000003 Priority Least Used RFCXXXX 569 0x40000004 Randomized Least Used RFCXXXX 570 0x40000005 (reserved by IETF) RFCXXXX 571 ... 572 0x7fffffff (reserved by IETF) RFCXXXX 574 0x80000000 (private use, non-standard policy) RFCXXXX 575 ... 576 0xffffffff (private use, non-standard policy) RFCXXXX 578 For registering at IANA an RSerPool Policy Type in this table a 579 request has to be made to assign such a number. This number must be 580 unique and use the appropiate upper bits. The "Specification 581 Required" policy of [RFC5226] MUST be applied. 583 The Policy Type space from 0x80000000 to 0xffffffff is designated for 584 private use. 586 8. Reference Implementation 588 The reference implementation of RSerPool and the policies described 589 in this document is available at [RSerPoolPage] and described in 590 [Dre2006]. 592 9. References 594 9.1. Normative References 596 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 597 Requirement Levels", BCP 14, RFC 2119, March 1997. 599 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 600 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 601 May 2008. 603 [I-D.ietf-rserpool-common-param] 604 Stewart, R., Xie, Q., Stillman, M., and M. Tuexen, 605 "Aggregate Server Access Protocol (ASAP) and Endpoint 606 Handlespace Redundancy Protocol (ENRP) Parameters", 607 draft-ietf-rserpool-common-param-17 (work in progress), 608 May 2008. 610 [I-D.ietf-rserpool-asap] 611 Stewart, R., Xie, Q., Stillman, M., and M. Tuexen, 612 "Aggregate Server Access Protocol (ASAP)", 613 draft-ietf-rserpool-asap-21 (work in progress), July 2008. 615 [I-D.ietf-rserpool-enrp] 616 Xie, Q., Stewart, R., Stillman, M., Tuexen, M., and A. 617 Silverton, "Endpoint Handlespace Redundancy Protocol 618 (ENRP)", draft-ietf-rserpool-enrp-21 (work in progress), 619 July 2008. 621 [I-D.ietf-rserpool-threats] 622 Stillman, M., Gopal, R., Guttman, E., Holdrege, M., and S. 623 Sengodan, "Threats Introduced by RSerPool and Requirements 624 for Security in Response to Threats", 625 draft-ietf-rserpool-threats-15 (work in progress), 626 July 2008. 628 9.2. Informative References 630 [RSerPoolPage] 631 Dreibholz, T., "Thomas Dreibholz's RSerPool Page", 632 URL: http://tdrwww.iem.uni-due.de/dreibholz/rserpool/. 634 [Dre2006] Dreibholz, T., "Reliable Server Pooling -- Evaluation, 635 Optimization and Extension of a Novel IETF Architecture", 636 Ph.D. Thesis University of Duisburg-Essen, Faculty of 637 Economics, Institute for Computer Science and Business 638 Information Systems, URL: http:// 639 duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/ 640 Derivate-16326/Dre2006-final.pdf, March 2007. 642 [LCN2005] Dreibholz, T. and E. Rathgeb, "On the Performance of 643 Reliable Server Pooling Systems", Proceedings of the 30th 644 IEEE Local Computer Networks Conference, November 2005. 646 [ICN2005] Dreibholz, T., Rathgeb, E., and M. Tuexen, "Load 647 Distribution Performance of the Reliable Server Pooling 648 Framework", Proceedings of the 4th IEEE International 649 Conference on Networking, April 2005. 651 Authors' Addresses 653 Thomas Dreibholz 654 University of Duisburg-Essen, Institute for Experimental Mathematics 655 Ellernstrasse 29 656 45326 Essen, Nordrhein-Westfalen 657 Germany 659 Phone: +49-201-1837637 660 Fax: +49-201-1837673 661 Email: dreibh@iem.uni-due.de 662 URI: http://www.iem.uni-due.de/~dreibh/ 664 Michael Tuexen 665 Muenster University of Applied Sciences 666 Stegerwaldstrasse 39 667 48565 Steinfurt, Nordrhein-Westfalen 668 Germany 670 Phone: +49-2551-962550 671 Fax: +49-2551-962563 672 Email: tuexen@fh-muenster.de 674 Full Copyright Statement 676 Copyright (C) The IETF Trust (2008). 678 This document is subject to the rights, licenses and restrictions 679 contained in BCP 78, and except as set forth therein, the authors 680 retain all their rights. 682 This document and the information contained herein are provided on an 683 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 684 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 685 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 686 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 687 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 688 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 690 Intellectual Property 692 The IETF takes no position regarding the validity or scope of any 693 Intellectual Property Rights or other rights that might be claimed to 694 pertain to the implementation or use of the technology described in 695 this document or the extent to which any license under such rights 696 might or might not be available; nor does it represent that it has 697 made any independent effort to identify any such rights. Information 698 on the procedures with respect to rights in RFC documents can be 699 found in BCP 78 and BCP 79. 701 Copies of IPR disclosures made to the IETF Secretariat and any 702 assurances of licenses to be made available, or the result of an 703 attempt made to obtain a general license or permission for the use of 704 such proprietary rights by implementers or users of this 705 specification can be obtained from the IETF on-line IPR repository at 706 http://www.ietf.org/ipr. 708 The IETF invites any interested party to bring to its attention any 709 copyrights, patents or patent applications, or other proprietary 710 rights that may cover technology that may be required to implement 711 this standard. Please address the information to the IETF at 712 ietf-ipr@ietf.org.