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
|
<pre>Network Working Group S. Herzog
Request for Comments: 2750 IPHighway
Updates: <a href="./rfc2205">2205</a> January 2000
Category: Standards Track
<span class="h1">RSVP Extensions for Policy Control</span>
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2000). All Rights Reserved.
Abstract
This memo presents a set of extensions for supporting generic policy
based admission control in RSVP. It should be perceived as an
extension to the RSVP functional specifications [<a href="#ref-RSVP" title=""Resource ReSerVation Protocol (RSVP) - Functional Specification"">RSVP</a>]
These extensions include the standard format of POLICY_DATA objects,
and a description of RSVP's handling of policy events.
This document does not advocate particular policy control mechanisms;
however, a Router/Server Policy Protocol description for these
extensions can be found in [<a href="#ref-RAP" title=""A Framework for Policy Based Admission Control"">RAP</a>, <a href="#ref-COPS" title=""The COPS (Common Open Policy Service) Protocol"">COPS</a>, <a href="#ref-COPS-RSVP" title=""COPS Usage for RSVP"">COPS-RSVP</a>].
<span class="grey">Herzog Standards Track [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
Table of Contents
<a href="#section-1">1</a> Introduction.......................................................<a href="#page-2">2</a>
<a href="#section-2">2</a> A Simple Scenario..................................................<a href="#page-3">3</a>
<a href="#section-3">3</a> Policy Data Objects................................................<a href="#page-3">3</a>
<a href="#section-3.1">3.1</a> Base Format.....................................................<a href="#page-4">4</a>
<a href="#section-3.2">3.2</a> Options.........................................................<a href="#page-4">4</a>
<a href="#section-3.3">3.3</a> Policy Elements.................................................<a href="#page-7">7</a>
<a href="#section-3.4">3.4</a> Purging Policy State............................................<a href="#page-7">7</a>
<a href="#section-4">4</a> Processing Rules...................................................<a href="#page-8">8</a>
<a href="#section-4.1">4.1</a> Basic Signaling.................................................<a href="#page-8">8</a>
<a href="#section-4.2">4.2</a> Default Handling for PIN nodes..................................<a href="#page-8">8</a>
<a href="#section-4.3">4.3</a> Error Signaling.................................................<a href="#page-9">9</a>
<a href="#section-5">5</a> IANA Considerations................................................<a href="#page-9">9</a>
<a href="#section-6">6</a> Security Considerations............................................<a href="#page-9">9</a>
<a href="#section-7">7</a> References........................................................<a href="#page-10">10</a>
<a href="#section-8">8</a> Acknowledgments...................................................<a href="#page-10">10</a>
<a href="#section-9">9</a> Author Information................................................<a href="#page-10">10</a>
<a href="#appendix-A">Appendix A</a>: Policy Error Codes......................................<a href="#page-11">11</a>
<a href="#appendix-B">Appendix B</a>: INTEGRITY computation for POLICY_DATA objects...........<a href="#page-12">12</a>
Full Copyright Statement ...........................................<a href="#page-13">13</a>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a> Introduction</span>
RSVP, by definition, discriminates between users, by providing some
users with better service at the expense of others. Therefore, it is
reasonable to expect that RSVP be accompanied by mechanisms for
controlling and enforcing access and usage policies. Version 1 of the
RSVP Functional Specifications [<a href="#ref-RSVP" title=""Resource ReSerVation Protocol (RSVP) - Functional Specification"">RSVP</a>] left a placeholder for policy
support in the form of POLICY_DATA object.
The current RSVP Functional Specification describes the interface to
admission (traffic) control that is based "only" on resource
availability. In this document we describe a set of extensions to
RSVP for supporting policy based admission control as well. The scope
of this document is limited to these extensions and does not advocate
specific architectures for policy based controls.
For the purpose of this document we do not differentiate between
Policy Decision Point (PDP) and Local Decision Point (LDPs) as
described in [<a href="#ref-RAP" title=""A Framework for Policy Based Admission Control"">RAP</a>]. The term PDP should be assumed to include LDP as
well.
<span class="grey">Herzog Standards Track [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a> A Simple Scenario</span>
It is generally assumed that policy enforcement (at least in its
initial stages) is likely to concentrate on border nodes between
autonomous systems.
Figure 1 illustrates a simple autonomous domain with two boundary
nodes (A, C) which represent PEPs controlled by PDPs. A core node (B)
represents an RSVP capable policy ignorant node (PIN) with
capabilities limited to default policy handling (<a href="#section-4.2">Section 4.2</a>).
PDP1 PDP2
| |
| |
+---+ +---+ +---+
| A +---------+ B +---------+ C |
+---+ +---+ +---+
PEP2 PIN PEP2
Figure 1: Autonomous Domain scenario
Here, policy objects transmitted across the domain traverse an
intermediate PIN node (B) that is allowed to process RSVP message but
considered non-trusted for handling policy information.
This document describes processing rules for both PEP as well as PIN
nodes.
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a> Policy Data Objects</span>
POLICY_DATA objects are carried by RSVP messages and contain policy
information. All policy-capable nodes (at any location in the
network) can generate, modify, or remove policy objects, even when
senders or receivers do not provide, and may not even be aware of
policy data objects.
The exchange of POLICY_DATA objects between policy-capable nodes
along the data path, supports the generation of consistent end-to-end
policies. Furthermore, such policies can be successfully deployed
across multiple administrative domains when border nodes manipulate
and translate POLICY_DATA objects according to established sets of
bilateral agreements.
The following extends section A.13 in [<a href="#ref-RSVP" title=""Resource ReSerVation Protocol (RSVP) - Functional Specification"">RSVP</a>].
<span class="grey">Herzog Standards Track [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a> Base Format</span>
POLICY_DATA class=14
o Type 1 POLICY_DATA object: Class=14, C-Type=1
+-------------+-------------+-------------+-------------+
| Length | POLICY_DATA | 1 |
+---------------------------+-------------+-------------+
| Data Offset | 0 (reserved) |
+---------------------------+-------------+-------------+
| |
// Option List //
| |
+-------------------------------------------------------+
| |
// Policy Element List //
| |
+-------------------------------------------------------+
Data Offset: 16 bits
The offset in bytes of the data portion (from the first
byte of the object header).
Reserved: 16 bits
Always 0.
Option List: Variable length
The list of options and their usage is defined in <a href="#section-3.2">Section</a>
<a href="#section-3.2">3.2</a>.
Policy Element List: Variable length
The contents of policy elements is opaque to RSVP. See more
details in <a href="#section-3.3">Section 3.3</a>.
<span class="h3"><a class="selflink" id="section-3.2" href="#section-3.2">3.2</a> Options</span>
This section describes a set of options that may appear in
POLICY_DATA objects. All policy options appear as RSVP objects but
their semantic is modified when used as policy data options.
<span class="grey">Herzog Standards Track [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
FILTER_SPEC object (list) or SCOPE object
These objects describe the set of senders associated with the
POLICY_DATA object. If none is provided, the policy information is
assumed to be associated with all the flows of the session. These two
types of objects are mutually exclusive, and cannot be mixed.
In Packed FF Resv messages, this FILTER_SPEC option provides
association between a reserved flow and its POLICY_DATA objects.
In WF or SE styles, this option preserves the original
flow/POLICY_DATA association as formed by PDPs, even across RSVP
capable PINs. Such preservation is required since PIN nodes may
change the list of reserved flows on a per-hop basis, irrespective of
legitimate Edge-to-Edge PDP policy considerations.
Last, the SCOPE object should be used to prevent "policy loops" in a
manner similar to the one described in [<a href="#ref-RSVP" title=""Resource ReSerVation Protocol (RSVP) - Functional Specification"">RSVP</a>], Section 3.4. When PIN
nodes are part of a WF reservation path, the RSVP SCOPE object is
unable to prevent policy loops and the separate policy SCOPE object
is required.
Note: using the SCOPE option may have significant impact on scaling
and size of POLICY_DATA objects.
Originating RSVP_HOP
The RSVP_HOP object identifies the neighbor/peer policy-capable node
that constructed the policy object. When policy is enforced at border
nodes, peer policy nodes may be several RSVP hops away from each
other and the originating RSVP_HOP is the basis for the mechanism
that allows them to recognize each other and communicate safely and
directly.
If no RSVP_HOP object is present, the policy data is implicitly
assumed to have been constructed by the RSVP_HOP indicated in the
RSVP message itself (i.e., the neighboring RSVP node is policy-
capable).
Destination RSVP_HOP
A second RSVP_HOP object may follow the originating RSVP_HOP object.
This second RSVP_HOP identifies the destination policy node. This is
used to ensure the POLICY_DATA object is delivered to targeted policy
nodes. It may be used to emulate unicast delivery in multicast Path
messages. It may also help prevent using a policy object in other
parts of the network (replay attack).
<span class="grey">Herzog Standards Track [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
On the receiving side, a policy node should ignore any POLICY_DATA
that includes a destination RSVP_HOP that doesn't match its own IP
address.
INTEGRITY Object
Figure 1 (<a href="#section-2">Section 2</a>) provides an example where POLICY_DATA objects
are transmitted between boundary nodes while traversing non-secure
PIN nodes. In this scenario, the RSVP integrity mechanism becomes
ineffective since it places policy trust with intermediate PIN nodes
(which are trusted to perform RSVP signaling but not to perform
policy decisions or manipulations).
The INTEGRITY object option inside POLICY_DATA object creates direct
secure communications between non-neighboring PEPs (and their
controlling PDPs) without involving PIN nodes.
This option can be used at the discretion of PDPs, and is computed in
a manner described in <a href="#appendix-B">Appendix B</a>.
Policy Refresh TIME_VALUES (PRT)
The Policy Refresh TIME_VALUES (PRT) option is used to slow policy
refresh frequency for policies that have looser timing constraints
relative to RSVP. If the PRT option is present, policy refreshes can
be withheld as long as at least one refresh is sent before the policy
refresh timer expires. A minimal value for PRT is R; lower values are
assumed to be R (neither error nor warning should be triggered).
To simplify RSVP processing, time values are not based directly on
the PRT value, but on a Policy Refresh Multiplier N computed as
N=Floor(PRT/R). Refresh and cleanup rules are derived from [<a href="#ref-RSVP" title=""Resource ReSerVation Protocol (RSVP) - Functional Specification"">RSVP</a>]
<a href="#section-3.7">Section 3.7</a> assuming the refresh period for PRT POLICY DATA is R'
computed as R'=N*R. In effect, both the refresh and the state
cleanup are slowed by a factor of N).
The refresh multiplier applies to no-change periodic refreshes only
(rather than updates). For example, a policy being refreshed at time
T, T+N, T+2N,... may encounter a route change detected at T+X. In
this case, the event would force an immediate policy update and would
reset srfresh times to T+X+N, T+X+2N,...
When network nodes restart, RSVP messages between PRT policy
refreshes may be rejected since they arrive without necessary
POLICY_DATA objects. This error situation would clear with the next
periodic policy refresh or with a policy update triggered by ResvErr
or PathErr messages.
<span class="grey">Herzog Standards Track [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
This option is especially useful to combine strong (high overhead)
and weak (low overhead) authentication certificates as policy data.
In such schemes the weak certificate can support admitting a
reservation only for a limited time, after which the strong
certificate is required.
This approach may reduce the overhead of POLICY_DATA processing.
Strong certificates could be transmitted less frequently, while weak
certificates are included in every RSVP refresh.
<span class="h3"><a class="selflink" id="section-3.3" href="#section-3.3">3.3</a> Policy Elements</span>
The content of policy elements is opaque to RSVP; their internal
format is understood by policy peers e.g. an RSVP Local Decision
Point (LDP) or a Policy Decision Point (PDP) [<a href="#ref-RAP" title=""A Framework for Policy Based Admission Control"">RAP</a>]. A registry of
policy element codepoints and their meaning is maintained by [IANA-
CONSIDERATIONS] (also see <a href="#section-5">Section 5</a>).
Policy Elements have the following format:
+-------------+-------------+-------------+-------------+
| Length | P-Type |
+---------------------------+---------------------------+
| |
// Policy information (Opaque to RSVP) //
| |
+-------------------------------------------------------+
<span class="h3"><a class="selflink" id="section-3.4" href="#section-3.4">3.4</a> Purging Policy State</span>
Policy state expires in the granularity of Policy Elements
(POLICY_DATA objects are mere containers and do not expire as such).
Policy elements expire in the exact manner and time as the RSVP state
received in the same message (see [<a href="#ref-RSVP" title=""Resource ReSerVation Protocol (RSVP) - Functional Specification"">RSVP</a>] <a href="#section-3.7">Section 3.7</a>). PRT
controlled state expires N times slower (see <a href="#section-3.2">Section 3.2</a>).
Only one policy element of a certain P-Type can be active at any
given time. Therefore, policy elements are instantaneously replaced
when another policy element of the same P-Type is received from the
same PDP (previous or next policy RSVP_HOP). An empty policy element
of a certain P-Type is used to delete (rather than a replace) all
policy state of the same P-Type.
<span class="grey">Herzog Standards Track [Page 7]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-8" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a> Processing Rules</span>
These sections describe the minimal required policy processing rules
for RSVP.
<span class="h3"><a class="selflink" id="section-4.1" href="#section-4.1">4.1</a> Basic Signaling</span>
This memo mandates enforcing policy control for Path, Resv, PathErr,
and ResvErr messages only. PathTear and ResvTear are assumed not to
require policy control based on two main presumptions. First, that
Integrity verification [<a href="#ref-MD5" title=""RSVP Cryptographic Authentication"">MD5</a>] guarantee that the Tear is received from
the same node that sent the installed reservation, and second, that
it is functionally equivalent to that node holding-off refreshes for
this reservation.
<span class="h3"><a class="selflink" id="section-4.2" href="#section-4.2">4.2</a> Default Handling for PIN nodes</span>
Figure 1 illustrates an example of where policy data objects traverse
PIN nodes in transit from one PEP to another.
A PIN node is required at a minimum to forward the received
POLICY_DATA objects in the appropriate outgoing messages according to
the following rules:
o POLICY_DATA objects are to be forwarded as is, without any
modifications.
o Multicast merging (splitting) nodes:
In the upstream direction:
When multiple POLICY_DATA objects arrive from downstream, the
RSVP node should concatenate all of them (as a list of the
original POLICY_DATA objects) and forward them with the
outgoing (upstream) message.
On the downstream direction:
When a single incoming POLICY_DATA object arrives from
upstream, it should be forwarded (copied) to all downstream
branches of the multicast tree.
The same rules apply to unrecognized policies (sub-objects) within
the POLICY_DATA object. However, since this can only occur in a
policy-capable node, it is the responsibility of the PDP and not
RSVP.
<span class="grey">Herzog Standards Track [Page 8]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-9" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
<span class="h3"><a class="selflink" id="section-4.3" href="#section-4.3">4.3</a> Error Signaling</span>
Policy errors are reported by either ResvErr or PathErr messages with
a policy failure error code in the ERROR_SPEC object. Policy error
message must include a POLICY_DATA object; the object contains
details of the error type and reason in a P-Type specific format (See
<a href="#section-3.3">Section 3.3</a>).
If a multicast reservation fails due to policy reasons, RSVP should
not attempt to discover which reservation caused the failure (as it
would do for Blockade State). Instead, it should attempt to deliver
the policy ResvErr to ALL downstream hops, and have the PDP (or LDP)
decide where messages should be sent. This mechanism allows the PDP
to limit the error distribution by deciding which "culprit" next-hops
should be informed. It also allows the PDP to prevent further
distribution of ResvErr or PathErr messages by performing local
repair (e.g. substituting the failed POLICY_DATA object with a
different one).
Error codes are described in <a href="#appendix-A">Appendix A</a>ppendix A.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a> IANA Considerations</span>
RSVP Policy Elements (P-Types)
Following the policies outlined in [<a href="#ref-IANA-CONSIDERATIONS" title="">IANA-CONSIDERATIONS</a>],numbers
0-49151 are allocated as standard policy elements by IETF Consensus
action, numbers in the range 49152-53247 are allocated as vendor
specific (one per vendor) by First Come First Serve, and numbers
53248-65535 are reserved for private use and are not assigned by
IANA.
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a> Security Considerations</span>
This memo describes the use of POLICY_DATA objects to carry policy-
related information between RSVP nodes. Two security mechanisms can
be optionally used to ensure the integrity of the carried
information. The first mechanism relies on RSVP integrity [<a href="#ref-MD5" title=""RSVP Cryptographic Authentication"">MD5</a>] to
provide a chain of trust when all RSVP nodes are policy capable. The
second mechanism relies on the INTEGRITY object within the
POLICY_DATA object to guarantee integrity between non-neighboring
RSVP PEPs (see Sections <a href="#section-2">2</a> and <a href="#section-3.2">3.2</a>).
<span class="grey">Herzog Standards Track [Page 9]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-10" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a> References</span>
[<a id="ref-RAP">RAP</a>] Yavatkar, R., Pendarakis, D. and R. Guerin, "A
Framework for Policy Based Admission Control",
<a href="./rfc2753">RFC 2753</a>, January 2000.
[<a id="ref-COPS">COPS</a>] Boyle, J., Cohen, R., Durham, D., Herzog, S.,
Raja, R. and A. Sastry, "The COPS (Common Open
Policy Service) Protocol", <a href="./rfc2748">RFC 2748</a>, January
2000.
[<a id="ref-COPS-RSVP">COPS-RSVP</a>] Boyle, J., Cohen, R., Durham, D., Herzog, S.,
Raja, R. and A. Sastry, "COPS Usage for RSVP",
<a href="./rfc2749">RFC 2749</a>, January 2000.
[<a id="ref-RSVP">RSVP</a>] Braden, R., Ed., Zhang, L., Berson, S., Herzog,
S. and S. Jamin, "Resource ReSerVation Protocol
(RSVP) - Functional Specification", <a href="./rfc2205">RFC 2205</a>,
September 1997.
[<a id="ref-MD5">MD5</a>] Baker, F., Lindell B. and M. Talwar, "RSVP
Cryptographic Authentication", <a href="./rfc2747">RFC 2747</a>,
January 2000.
[<a id="ref-IANA-CONSIDERATIONS">IANA-CONSIDERATIONS</a>] Alvestrand, H. and T. Narten, "Guidelines for
Writing an IANA Considerations Section in
RFCs", <a href="https://www.rfc-editor.org/bcp/bcp26">BCP 26</a>, <a href="./rfc2434">RFC 2434</a>, October 1998.
<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a> Acknowledgments</span>
This document incorporates inputs from Lou Berger, Bob Braden,
Deborah Estrin, Roch Guerin, Timothy O'Malley, Dimitrios Pendarakis,
Raju Rajan, Scott Shenker, Andrew Smith, Raj Yavatkar, and many
others.
<span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a> Author Information</span>
Shai Herzog
IPHighway, Inc.
55 New York Avenue
Framingham, MA 01701
Phone: (508) 620-1141
EMail: herzog@iphighway.com
<span class="grey">Herzog Standards Track [Page 10]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-11" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
Appendix A: Policy Error Codes
This Appendix extends the list of error codes described in <a href="#appendix-B">Appendix B</a>
of [<a href="#ref-RSVP" title=""Resource ReSerVation Protocol (RSVP) - Functional Specification"">RSVP</a>].
Note that Policy Element specific errors are reported as described in
<a href="#section-4.3">Section 4.3</a> and cannot be reported through RSVP (using this
mechanism). However, this mechanism provides a simple, less secure
mechanism for reporting generic policy errors. Most likely the two
would be used in concert such that a generic error code is provided
by RSVP, while Policy Element specific errors are encapsulated in a
return POLICY_DATA object (as in <a href="#section-4.3">Section 4.3</a>).
ERROR_SPEC class = 6
Error Code = 02: Policy Control failure
Error Value: 16 bit
0 = ERR_INFO : Information reporting
1 = ERR_WARN : Warning
2 = ERR_UNKNOWN : Reason unknown
3 = ERR_REJECT : Generic Policy Rejection
4 = ERR_EXCEED : Quota or Accounting violation
5 = ERR_PREEMPT : Flow was preempted
6 = ERR_EXPIRED : Previously installed policy expired (not
refreshed)
7 = ERR_REPLACED: Previous policy data was replaced & caused
rejection
8 = ERR_MERGE : Policies could not be merged (multicast)
9 = ERR_PDP : PDP down or non functioning
10= ERR_SERVER : Third Party Server (e.g., Kerberos) unavailable
11= ERR_PD_SYNTX: POLICY_DATA object has bad syntax
12= ERR_PD_INTGR: POLICY_DATA object failed Integrity Check
13= ERR_PE_BAD : POLICY_ELEMENT object has bad syntax
14= ERR_PD_MISS : Mandatory PE Missing (Empty PE is in the PD
object)
15= ERR_NO_RSC : PEP Out of resources to handle policies.
16= ERR_RSVP : PDP encountered bad RSVP objects or syntax
17= ERR_SERVICE : Service type was rejected
18= ERR_STYLE : Reservation Style was rejected
19= ERR_FL_SPEC : FlowSpec was rejected (too large)
Values between 2^15 and 2^16-1 can be used for site and/or vendor
error values.
<span class="grey">Herzog Standards Track [Page 11]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-12" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
Appendix B: INTEGRITY computation for POLICY_DATA objects
Computation of the INTEGRITY option is based on the rules set forth
in [<a href="#ref-MD5" title=""RSVP Cryptographic Authentication"">MD5</a>], with the following modifications:
<a href="#section-4.1">Section 4.1</a>:
Rather than computing digest for an RSVP message, a digest is
computed for a POLICY_DATA object in the following manner:
(1) The INTEGRITY object is inserted in the appropriate place in
the POLICY_DATA object, and its location in the message is
remembered for later use.
(2) The PDP, at its discretion, and based on destination PEP/PDP
or other criteria, selects an Authentication Key and the hash
algorithm to be used.
(3) A copy of RSVP SESSION object is temporarily appended to the
end of the PD object (for the computation purposes only,
without changing the length of the POLICY_DATA object). The
flags field of the SESSION object is set to 0. This
concatenation is considered as the message for which a digest
is to be computed.
(4) The rest of the steps in <a href="#section-4.1">Section 4.1</a> ((4)..(9)) remain
unchanged when computed over the concatenated message.
Note: When the computation is complete, the SESSION object is ignored
and is not part of the POLICY_DATA object.
Other Provisions:
The processing of a received POLICY_DATA object as well as a
challenge-response INTEGRITY object inside a POLICY_DATA object is
performed in the manner described in [<a href="#ref-MD5" title=""RSVP Cryptographic Authentication"">MD5</a>]. This processing is
subject to the modified computation algorithm as described in the
beginning of this appendix (for Section 4.1 of [<a href="#ref-MD5" title=""RSVP Cryptographic Authentication"">MD5</a>]).
<span class="grey">Herzog Standards Track [Page 12]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-13" ></span>
<span class="grey"><a href="./rfc2750">RFC 2750</a> RSVP Extensions for Policy Control January 2000</span>
Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS 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.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Herzog Standards Track [Page 13]
</pre>
|