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
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
|
Network Working Group J. Polk
Request for Comments: 4495 S. Dhesikan
Updates: 2205 Cisco Systems
Category: Standards Track May 2006
A Resource Reservation Protocol (RSVP) Extension for the
Reduction of Bandwidth of a Reservation Flow
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 (2006).
Abstract
This document proposes an extension to the Resource Reservation
Protocol (RSVPv1) to reduce the guaranteed bandwidth allocated to an
existing reservation. This mechanism can be used to affect
individual reservations, aggregate reservations, or other forms of
RSVP tunnels. This specification is an extension of RFC 2205.
Polk & Dhesikan Standards Track [Page 1]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Table of Contents
1. Introduction ....................................................2
1.1. Conventions Used in This Document ..........................4
2. Individual Reservation Reduction Scenario .......................4
3. RSVP Aggregation Overview .......................................6
3.1. RSVP Aggregation Reduction Scenario ........................8
4. Requirements for Reservation Reduction ..........................9
5. RSVP Bandwidth Reduction Solution ..............................10
5.1. Partial Preemption Error Code .............................11
5.2. Error Flow Descriptor .....................................11
5.3. Individual Reservation Flow Reduction .....................11
5.4. Aggregation Reduction of Individual Flows .................12
5.5. RSVP Flow Reduction Involving IPsec Tunnels ...............12
5.6. Reduction of Multiple Flows at Once .......................13
6. Backwards Compatibility ........................................13
7. Security Considerations ........................................14
8. IANA Considerations ............................................15
9. Acknowledgements ...............................................15
10. References ....................................................15
10.1. Normative References .....................................15
10.2. Informative References ...................................16
Appendix A. Walking through the Solution ..........................17
1. Introduction
This document proposes an extension to the Resource Reservation
Protocol (RSVP) [1] to allow an existing reservation to be reduced in
allocated bandwidth in lieu of tearing that reservation down when
some of that reservation's bandwidth is needed for other purposes.
Several examples exist in which this mechanism may be utilized.
The bandwidth allotted to an individual reservation may be reduced
due to a variety of reasons such as preemption, etc. In such cases,
when the entire bandwidth allocated to a reservation is not required,
the reservation need not be torn down. The solution described in
this document allows endpoints to negotiate a new (lower) bandwidth
that falls at or below the specified new bandwidth maximum allocated
by the network. Using a voice session as an example, this indication
in RSVP could lead endpoints, using another protocol such as Session
Initiation Protocol (SIP) [9], to signal for a lower-bandwidth codec
and retain the reservation.
With RSVP aggregation [2], two aggregate flows with differing
priority levels may traverse the same router interface. If that
router interface reaches bandwidth capacity and is then asked to
establish a new reservation or increase an existing reservation, the
Polk & Dhesikan Standards Track [Page 2]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
router has to make a choice: deny the new request (because all
resources have been utilized) or preempt an existing lower-priority
reservation to make room for the new or expanded reservation.
If the flow being preempted is an aggregate of many individual flows,
this has greater consequences. While [2] clearly does not terminate
all the individual flows if an aggregate is torn down, this event
will cause packets to be discarded during aggregate reservation
reestablishment. This document describes a method where only the
minimum required bandwidth is taken away from the lower-priority
aggregated reservation and the entire reservation is not preempted.
This has the advantage that only some of the microflows making up the
aggregate are affected. Without this extension, all individual flows
are affected and the deaggregator will have to attempt the
reservation request with a reduced bandwidth.
RSVP tunnels utilizing IPsec [8] also require an indication that the
reservation must be reduced to a certain amount (or less). RSVP
aggregation with IPsec tunnels is being defined in [11], which should
be able to take advantage of the mechanism created here in this
specification.
Note that when this document refers to a router interface being
"full" or "at capacity", this does not imply that all of the
bandwidth has been used, but rather that all of the bandwidth
available for reservation(s) via RSVP under the applicable policy has
been used. Policies for real-time traffic routinely reserve capacity
for routing and inelastic applications, and may distinguish between
voice, video, and other real-time applications.
Explicit Congestion Notification (ECN) [10] is an indication that the
transmitting endpoint must reduce its transmission. It does not
provide sufficient indication to tell the endpoint by how much the
reduction should be. Hence the application may have to attempt
multiple times before it is able to drop its bandwidth utilization
below the available limit. Therefore, while we consider ECN to be
very useful for elastic applications, it is not sufficient for the
purpose of inelastic application where an indication of bandwidth
availability is useful for codec selection.
Section 2 discusses the individual reservation flow problem, while
Section 3 discusses the aggregate reservation flow problem space.
Section 4 lists the requirements for this extension. Section 5
details the protocol changes necessary in RSVP to create a
reservation reduction indication. And finally, the appendix provides
a walk-through example of how this extension modifies RSVP
functionality in an aggregate scenario.
Polk & Dhesikan Standards Track [Page 3]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
This document updates RFC 2205 [1], as this mechanism affects the
behaviors of the ResvErr and ResvTear indications defined in that
document.
1.1. Conventions Used in This Document
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 [4].
2. Individual Reservation Reduction Scenario
Figure 1 is a network topology that is used to describe the benefit
of bandwidth reduction in an individual reservation.
+------------+ +------------+
| |Int 1 | |Int 7 | |
Flow 1===> | +----- | |------+ | Flow 1===>
| R1 |Int 2 |===========>|Int 8 | R2 |
| | |:::::::::::>| | |
Flow 2:::> | +----- | |------+ | Flow 2:::>
| |Int 3 | |Int 9 | |
+------------+ +------------+
Figure 1. Simple Reservation Flows
Legend/Rules:
- Flow 1 priority = 300
- Flow 2 priority = 100
- Both flows are shown in the same direction (left to
right). Corresponding flows in the reverse direction are
not shown for diagram simplicity
RSVP is a reservation establishment protocol in one direction only.
This split-path philosophy is because the routed path from one device
to the other in one direction might not be the routed path for
communicating between the same two endpoints in the reverse
direction. End-systems must request 2 one-way reservations if that
is what is needed for a particular application (like voice calls).
Please refer to [1] for the details on how this functions. This
example only describes the reservation scenario in one direction for
simplicity's sake.
Figure 1 depicts 2 routers (R1 and R2) initially with only one flow
(Flow 1). The flows are forwarded from R1 to R2 via Int 2. For this
example, let us say that Flow 1 and Flow 2 each require 80 units of
bandwidth (such as for the codec G.711 with no silence suppression).
Polk & Dhesikan Standards Track [Page 4]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Let us also say that the RSVP bandwidth limit for Int 2 of R1 is 100
units.
As described in [3], a priority indication is established for each
flow. In fact, there are two priority indications:
1) one to establish the reservation, and
2) one to defend the reservation.
In this example, Flow 1 and Flow 2 have an 'establishing' and a
'defending' priority of 300 and 100, respectively. Flow 2 will have
a higher establishing priority than Flow 1 has for its defending
priority. This means that when Flow 2 is signaled, and if no
bandwidth is available at the interface, Flow 1 will have to
relinquish bandwidth in favor of the higher-priority request of Flow
2. The priorities assigned to a reservation are always end-to-end,
and not altered by any routers in transit.
Without the benefit of this specification, Flow 1 will be preempted.
This specification makes it possible for the ResvErr message to
indicate that 20 units are still available for a reservation to
remain up (the interface's 100 units maximum minus Flow 2's 80
units). The reservation initiating node (router or end-system) for
Flow 1 has the opportunity to renegotiate (via call signaling) for
acceptable parameters within the existing and available bandwidth for
the flow (for example, it may decide to change to using a codec such
as G.729)
The problems avoided with the partial failure of the flow are:
- Reduced packet loss, which results as Flow 1 attempts to
reestablish the reservation for a lower bandwidth.
- Inefficiency caused by multiple attempts until Flow 1 is able to
request bandwidth equal to or lower than what is available. If
Flow 1 is established with much less than what is available then it
leads to inefficient use of available bandwidth.
Polk & Dhesikan Standards Track [Page 5]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
3. RSVP Aggregation Overview
The following network overview is to help visualize the concerns that
this specification addresses in RSVP aggregates. Figure 2 consists
of 10 routers (the boxes) and 11 flows (1, 2, 3, 4, 5, 9, A, B, C, D,
and E). Initially, there will be 5 flows per aggregate (Flow 9 will
be introduced to cause the problem we are addressing in this
document), with 2 aggregates (X and Y); Flows 1 through 5 in
aggregate X and Flows A through E in aggregate Y. These 2 aggregates
will cross one router interface utilizing all available capacity (in
this example).
RSVP aggregation (per [2]) is no different from an individual
reservation with respect to being unidirectional.
Polk & Dhesikan Standards Track [Page 6]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Aggregator of X Deaggregator of X
| |
V V
+------+ +------+ +------+ +------+
Flow 1-->| | | | | | | |-->Flow 1
Flow 2-->| | | | | | | |-->Flow 2
Flow 3-->| |==>| | | |==>| |-->Flow 3
Flow 4-->| | ^ | | | | ^ | |-->Flow 4
Flow 5-->| | | | | | | | | |-->Flow 5
Flow 9 | R1 | | | R2 | | R3 | | | R4 | Flow 9
+------+ | +------+ +------+ | +------+
| || || |
Aggregate X-->|| Aggregate X ||<--Aggregate X
|| | ||
+--------------+ | +--------------+
| |Int 7 | | |Int 1 | |
| +----- | V |------+ |
| R10 |Int 8 |===========>|Int 2 | R11 |
| | |:::::::::::>| | |
| +----- | ^ |------+ |
| |Int 9 | | |Int 3 | |
+--------------+ | +--------------+
.. | ..
Aggregate Y--->.. Aggregate Y ..<---Aggregate Y
| .. .. |
+------+ | +------+ +------+ | +------+
Flow A-->| | | | | | | | | |-->Flow A
Flow B-->| | V | | | | V | |-->Flow B
Flow C-->| |::>| | | |::>| |-->Flow C
Flow D-->| | | | | | | |-->Flow D
Flow E-->| R5 | | R6 | | R7 | | R8 |-->Flow E
+------+ +------+ +------+ +------+
^ ^
| |
Aggregator of Y Deaggregator of Y
Figure 2. Generic RSVP Aggregate Topology
Legend/Rules:
- Aggregate X priority = 100
- Aggregate Y priority = 200
- All boxes are routers
- Both aggregates are shown in the same direction (left to
right). Corresponding aggregates in the reverse direction
are not shown for diagram simplicity.
Polk & Dhesikan Standards Track [Page 7]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
The path for aggregate X is:
R1 => R2 => R10 => R11 => R3 => R4
where aggregate X starts in R1, and deaggregates in R4.
Flows 1, 2, 3, 4, 5, and 9 communicate through aggregate A.
The path for aggregate Y is:
R5 ::> R6 ::> R10 ::> R11 ::> R7 ::> R8
where aggregate Y starts in R5, and deaggregates in R8.
Flows A, B, C, D, and E communicate through aggregate B.
Both aggregates share one leg or physical link: between R10 and R11,
thus they share one outbound interface: Int 8 of R10, where
contention of resources may exist. That link has an RSVP capacity of
800 kbps. RSVP signaling (messages) is outside the 800 kbps in this
example, as is any session signaling protocol like SIP.
3.1. RSVP Aggregation Reduction Scenario
Figure 2 shows an established aggregated reservation (aggregate X)
between the routers R1 and R4. This aggregated reservation consists
of 5 microflows (Flows 1, 2, 3, 4, and 5). For the sake of this
discussion, let us assume that each flow represents a voice call and
requires 80 kb (such as for the codec G.711 with no silence
suppression). Aggregate X request is for 400 kbps (80 kbps * 5
flows). The priority of the aggregate is derived from the individual
microflows that it is made up of. In the simple case, all flows of a
single priority are bundled as a single aggregate (another priority
level would be in another aggregate, even if traversing the same path
through the network). There may be other ways in which the priority
of the aggregate is derived, but for this discussion it is sufficient
to note that each aggregate contains a priority (both hold and
defending priority). The means of deriving the priority is out of
scope for this discussion.
Aggregate Y, in Figure 2, consists of Flows A, B, C, D, and E and
requires 400 kbps (80 kbps * 5 flows), and starts at R5 and ends R8.
This means there are two aggregates occupying all 800 kbps of the
RSVP capacity.
When Flow 9 is added into aggregate X, this will occupy 80 kbps more
than Int 8 on R10 has available (880k offered load vs. 800k capacity)
[1] and [2] create a behavior in RSVP to deny the entire aggregate Y
Polk & Dhesikan Standards Track [Page 8]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
and all its individual flows because aggregate X has a higher
priority. This situation is where this document focuses its
requirements and calls for a solution. There should be some means to
signal to all affected routers of aggregate Y that only 80 kbps is
needed to accommodate another (higher priority) aggregate. A
solution that accomplishes this reduction instead of a failure could:
- reduce significant packet loss of all flows within aggregate Y
During the re-reservation request period of time no packets will
traverse the aggregate until it is reestablished.
- reduces the chances that the reestablishment of the aggregate
will reserve an inefficient amount of bandwidth, causing the
likely preemption of more individual flows at the aggregator
than would be necessary had the aggregator had more information
(that RSVP does not provide at this time)
During reestablishment of the aggregation in Figure 2 (without any
modification to RSVP), R8 would guess at how much bandwidth to ask
for in the new RESV message. It could request too much bandwidth,
and have to wait for the error that not that much bandwidth was
available; it could request too little bandwidth and have that
aggregation accepted, but this would mean that more individual flows
would need to be preempted outside the aggregate than were necessary,
leading to inefficiencies in the opposite direction.
4. Requirements for Reservation Reduction
The following are the requirements to reduce the bandwidth of a
reservation. This applies to both individual and aggregate
reservations:
Req#1 - MUST have the ability to differentiate one reservation from
another. In the case of aggregates, it MUST distinguish one
aggregate from other flows.
Req#2 - MUST have the ability to indicate within an RSVP error
message (generated at the router with the congested
interface) that a specific reservation (individual or
aggregate) is to be reduced in bandwidth.
Req#3 - MUST have the ability to indicate within the same error
message the new maximum amount of bandwidth that is available
to be utilized within the existing reservation, but no more.
Polk & Dhesikan Standards Track [Page 9]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Req#4 - MUST NOT produce a case in which retransmitted reduction
indications further reduce the bandwidth of a reservation.
Any additional reduction in bandwidth for a specified
reservation MUST be signaled in a new message.
RSVP messages are unreliable and can get lost. This specification
should not compound any error in the network. If a reduction message
were lost, another one needs to be sent. If the receiver ends up
receiving two copies to reduce the bandwidth of a reservation by some
amount, it is likely the router will reduce the bandwidth by twice
the amount that was actually called for. This will be in error.
5. RSVP Bandwidth Reduction Solution
When a reservation is partially failed, a ResvErr (Reservation Error)
message is generated just as it is done currently with preemptions.
The ERROR_SPEC object and the PREEMPTION_PRI object are included as
well. Very few additions/changes are needed to the ResvErr message
to support partial preemptions. A new error subcode is required and
is defined in Section 5.1. The ERROR_SPEC object contained in the
ResvErr message indicates the flowspec that is reserved. The
bandwidth indication in this flowspec SHOULD be less than the
original reservation request. This is defined in Section 5.2.
A comment about RESV messages that do not use reliable transport:
This document RECOMMENDS that ResvErr messages be made reliable by
implementing mechanisms in [6].
The current behavior in RSVP requires a ResvTear message to be
transmitted upstream when the ResvErr message is transmitted
downstream (per [1]). This ResvTear message terminates the
reservation in all routers upstream of the router where the failure
occurred. This document requires that the ResvTear is only generated
when the reservation is to be completely removed. In cases where the
reservation is only to be reduced, routers compliant with this
specification require that the ResvTear message MUST NOT be sent.
The appendix has been written to walk through the overall solution to
the problems presented in Sections 2 and 3. There is mention of this
ResvTear transmission behavior in the appendix.
Polk & Dhesikan Standards Track [Page 10]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
5.1. Partial Preemption Error Code
The ResvErr message generated due to preemption includes the
ERROR_SPEC object as well as the PREEMPTION_PRI object. The format
of ERROR_SPEC objects is defined in [1]. The error code listed in
the ERROR_SPEC object for preemption [5] currently is as follows:
Errcode = 2 (Policy Control Failure) and
ErrSubCode = 5 (ERR_PREEMPT)
The following error code is suggested in the ERROR_SPEC object for
partial preemption:
Errcode = 2 (Policy Control Failure) and
ErrSubCode = 102 (ERR_PARTIAL_PREEMPT)
There is also an error code in the PREEMPTION-PRI object. This error
code takes a value of 1 to indicate that the admitted flow was
preempted [3]. The same error value of 1 may be used for the partial
preemption case as well.
5.2. Error Flow Descriptor
The error flow descriptor is defined in [1] and [7]. In the case of
partial failure, the flowspec contained in the error flow descriptor
indicates the highest average and peak rates that the preempting
system can accept in the next RESV message. The deaggregator must
reduce its reservation to a number less than or equal to that,
whether by changing codecs, dropping reservations, or some other
mechanism.
5.3. Individual Reservation Flow Reduction
When a router requires part of the bandwidth that has been allocated
to a reservation be used for another flow, the router engages in the
partial reduction of bandwidth as described in this document. The
router sends a ResvErr downstream to indicate the partial error with
the error code and subcode as described in section 5.1. The flowspec
contained in the ResvErr message will be used to indicate the
bandwidth that is currently allocated.
The requesting endpoint that receives the ResvErr can then negotiate
with the transmitting endpoint to lower the bandwidth requirement (by
selecting another lower bandwidth codec, for example). After the
negotiations, both endpoints will issue the RSVP PATH and RESV
message with the new, lowered bandwidth.
Polk & Dhesikan Standards Track [Page 11]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
5.4. Aggregation Reduction of Individual Flows
When a partial failure occurs in an aggregation scenario, the
deaggregator receives the ResvErr message with the reduction
indication from a router in the path of the aggregate. It then
decides whether one or more individual flows from the aggregate are
to be affected by this ResvErr message. The following choices are
possible:
o If that (deaggregator) router determines that one or more
individual flow(s) are to partially failed, then it sends a
ResvErr message with a reduced bandwidth indication to those
individual flow(s). This is as per the descriptions in the
previous section (5.3).
o If that (deaggregator) router determines that one individual flow
is to be preempted to satisfy the aggregate ResvErr, it determines
which flow is affected. That router transmits a new ResvErr
message downstream per [3]. That same router transmits a ResvTear
message upstream. This ResvTear message of an individual flow
does not tear down the aggregate. Only the individual flow is
affected.
o If that (deaggregator) router determines that multiple individual
flows are to be preempted to satisfy the aggregate ResvErr, it
chooses which flows are affected. That router transmits a new
ResvErr message downstream as per [3] to each individual flow.
The router also transmits ResvTear messages upstream for the same
individual flows. These ResvTear messages of an individual flow
do not tear down the aggregate. Only the individual flows are
affected.
In all cases, the deaggregator lowers the bandwidth requested in the
Aggregate Resv message to reflect the change.
Which particular flow or series of flows within an aggregate are
picked by the deaggregator for bandwidth reduction or preemption is
outside the scope of this document.
5.5. RSVP Flow Reduction Involving IPsec Tunnels
RFC 2207 (per [8]) specifies how RSVP reservations function in IPsec
data flows. The nodes initiating the IPsec flow can be an end-system
like a computer, or it can router between two end-systems, or it can
be an in-line bulk encryption device immediately adjacent to a router
interface; [11] directly addresses this later scenario.
Polk & Dhesikan Standards Track [Page 12]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
The methods of identification of an IPsec with reservation flow are
different from non-encrypted flows, but how the reduction mechanism
specified within this document functions is not.
An IPsec with reservation flow is, for all intents and purposes,
considered an individual flow with regard to how to reduce the
bandwidth of the flow. Obviously, an IPsec with reservation flow can
be a series of individual flows or disjointed best-effort packets
between two systems. But to this specification, this tunnel is an
individual RSVP reservation.
Anywhere within this specification that mentions an individual
reservation flow, the same rules of bandwidth reduction and
preemption MUST apply.
5.6. Reduction of Multiple Flows at Once
As a cautionary note, bandwidth SHOULD NOT be reduced across multiple
reservations at the same time, in reaction to the same reduction
event. A router not knowing the impact of reservation bandwidth
reduction on more than one flow may cause more widespread ill effects
than is necessary.
This says nothing to a policy where preemption should or should not
occur across multiple flows.
6. Backwards Compatibility
Backwards compatibility with this extension will result in RSVP
operating as it does without this extension, and no worse. The two
routers involved in this extension are the router that had the
congested interface and the furthest downstream router that
determines what to do with the reduction indication.
In the case of the router that experiences congestion or otherwise
needs to reduce the bandwidth of an existing reservation:
- If that router supports this extension:
#1 - it generates the ResvErr message with the error code
indicating the reduction in bandwidth.
#2 - it does not generate the ResvTear message.
- If that router does not support this extension, it generates both
ResvErr and ResvTear messages according to [1].
Polk & Dhesikan Standards Track [Page 13]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
In the case of the router at the extreme downstream of a reservation
that receives the ResvErr message with the reduction indication:
- If that router does support this extension:
#1 - it processes this error message and applies whatever local
policy it is configured to do to determine how to reduce the
bandwidth of this designated flow.
- If the router does not support this extension:
#1 - it processes the ResvErr message according to [1] and all
extensions it is able to understand, but not this extension
from this document.
Thus, this extension does not cause ill effects within RSVP if one or
more routers support this extension, and one or more routers do not
support this extension.
7. Security Considerations
This document does not lessen the overall security of RSVP or of
reservation flows through an aggregate.
If this specification is implemented poorly - which is never
intended, but is a consideration - the following issues may arise:
1) If the ResvTear messages are transmitted initially (at the same
time as the ResvErr messages indicating a reduction in bandwidth
is necessary), all upstream routers will tear down the entire
reservation. This will free up the total amount of bandwidth of
this reservation inadvertently. This may cause the re-
establishment of an otherwise good reservation to fail. This has
the most severe affects on an aggregate that has many individual
flows that would have remained operational.
2) Just as RSVP has the vulnerability of premature termination of
valid reservations by rogue flows without authentication [12, 13],
this mechanism will have the same vulnerability. Usage of RSVP
authentication mechanisms is encouraged.
Polk & Dhesikan Standards Track [Page 14]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
8. IANA Considerations
The IANA has assigned the following from RFC 4495 (i.e., this
document):
The following error code has been defined in the ERROR_SPEC object
for partial reservation failure under "Errcode = 2 (Policy Control
Failure)":
ErrSubCode = 102 (ERR_PARTIAL_PREEMPT)
The behavior of this ErrSubCode is defined in this document.
9. Acknowledgements
The authors would like to thank Fred Baker for contributing text and
guidance in this effort and to Roger Levesque and Francois Le
Faucheur for helpful comments.
10. References
10.1. Normative References
[1] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, September 1997.
[2] Baker, F., Iturralde, C., Le Faucheur, F., and B. Davie,
"Aggregation of RSVP for IPv4 and IPv6 Reservations", RFC 3175,
September 2001.
[3] Herzog, S., "Signaled Preemption Priority Policy Element", RFC
3181, October 2001.
[4] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[5] Herzog, S., "RSVP Extensions for Policy Control", RFC 2750,
January 2000.
[6] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F., and S.
Molendini, "RSVP Refresh Overhead Reduction Extensions", RFC
2961, April 2001.
[7] Wroclawski, J., "The Use of RSVP with IETF Integrated Services",
RFC 2210, September 1997.
Polk & Dhesikan Standards Track [Page 15]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
[8] Berger, L. and T. O'Malley, "RSVP Extensions for IPSEC Data
Flows", RFC 2207, September 1997.
10.2. Informative References
[9] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
[10] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition of
Explicit Congestion Notification (ECN) to IP", RFC 3168,
September 2001.
[11] Le Faucheur, F., Davie, B., Bose, P., Christou, C., and M.
Davenport, "Generic Aggregate RSVP Reservations", Work in
Progress, October 2005.
[12] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic
Authentication", RFC 2747, January 2000.
[13] Braden, R. and L. Zhang, "RSVP Cryptographic Authentication --
Updated Message Type Value", RFC 3097, April 2001.
Polk & Dhesikan Standards Track [Page 16]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Appendix A. Walking through the Solution
Here is a concise explanation of roughly how RSVP behaves with the
solution to the problems presented in Sections 2 and 3 of this
document. There is no normative text in this appendix.
Here is a duplicate of Figure 2 from section 3 of the document body
(to bring it closer to the detailed description of the solution).
Aggregator of X Deaggregator of X
| |
V V
+------+ +------+ +------+ +------+
Flow 1-->| | | | | | | |-->Flow 1
Flow 2-->| | | | | | | |-->Flow 2
Flow 3-->| |==>| | | |==>| |-->Flow 3
Flow 4-->| | ^ | | | | ^ | |-->Flow 4
Flow 5-->| | | | | | | | | |-->Flow 5
Flow 9-->| R1 | | | R2 | | R3 | | | R4 |-->Flow 9
+------+ | +------+ +------+ | +------+
| || || |
Aggregate X--->|| Aggregate X ||<--Aggregate X
|| | ||
+--------------+ | +--------------+
| |Int 7 | | |Int 1 | |
| +----- | V |------+ |
| R10 |Int 8 |===========>|Int 2 | R11 |
| | |:::::::::::>| | |
| +----- | ^ |------+ |
| |Int 9 | | |Int 3 | |
+--------------+ | +--------------+
.. | ..
Aggregate Y--->.. Aggregate Y ..<---Aggregate Y
| .. .. |
+------+ | +------+ +------+ | +------+
Flow A-->| | | | | | | | | |-->Flow A
Flow B-->| | V | | | | V | |-->Flow B
Flow C-->| |::>| | | |::>| |-->Flow C
Flow D-->| | | | | | | |-->Flow D
Flow E-->| R5 | | R6 | | R7 | | R8 |-->Flow E
+------+ +------+ +------+ +------+
^ ^
| |
Aggregator of Y Deaggregator of Y
Duplicate of Figure 2. Generic RSVP Aggregate Topology
Polk & Dhesikan Standards Track [Page 17]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Looking at Figure 2, aggregate X (with five 80 kbps flows) traverses:
R1 ==> R2 ==> R10 ==> R11 ==> R3 ==> R4
And aggregate Y (with five 80 kbps flows) traverses:
R5 ::> R6 ::> R10 ::> R11 ::> R7 ::> R8
Both aggregates are 400 kbps. This totals 800 kbps at Int 7 in R10,
which is the maximum bandwidth that RSVP has access to at this
interface. Signaling messages still traverse the interface without
problem. Aggregate X is at a higher relative priority than aggregate
Y. Local policy in this example is for higher relative priority
flows to preempt lower-priority flows during times of congestion.
The following points describe the flow when aggregate A is increased
to include Flow 9.
o When Flow 9 (at 80 kbps) is added to aggregate X, R1 will initiate
the PATH message towards the destination endpoint of the flow.
This hop-by-hop message will take it through R2, R10, R11, R3, and
R4, which is the aggregate X path (that was built per [2] from the
aggregate's initial setup) to the endpoint node.
o In response, R4 will generate the RESV (reservation) message
(defined behavior per [1]). This RESV from the deaggregator
indicates an increase bandwidth sufficient to accommodate the
existing 5 flows (1, 2, 3, 4, and 5) and the new flow (9), as
stated in [2].
o As mentioned before, in this example, Int 8 in R10 can only
accommodate 800 kbps, and aggregates X and Y have each already
established 400 kbps flows comprised of five 80 kbps individual
flows. Therefore, R10 (the interface that detects a congestion
event in this example) must make a decision about this new
congestion generating condition in regard to the RESV message
received at Int 8.
o Local policy in this scenario is to preempt lower-priority
reservations to place higher-priority reservations. This would
normally cause all of aggregate Y to be preempted just to
accommodate aggregate X's request for an additional 80 kbps.
o This document defines how aggregate Y is not completely preempted,
but reduced in bandwidth by 80 kbps. This is contained in the
ResvErr message that R10 generates (downstream) towards R11, R7,
and R8. See section 5 for the details of the error message.
Polk & Dhesikan Standards Track [Page 18]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
o Normal operation of RSVP is to have the router that generates a
ResvErr message downstream to also generate a ResvTear message
upstream (in the opposite direction, i.e., towards R5). The
ResvTear message terminates an individual flow or aggregate flow.
This document calls for that message not to be sent on any partial
failure of reservation.
o R8 is the deaggregator of aggregate Y. The deaggregator controls
all the parameters of an aggregate reservation. This will be the
node that reduces the necessary bandwidth of the aggregate as a
response to the reception of an ResvErr message (from R10)
indicating such an action is called for. In this example,
bandwidth reduction is accomplished by preempting an individual
flow within the aggregate (perhaps picking on Flow D for
individual preemption by generating a ResvErr downstream on that
individual flow).
o At the same time, a ResvTear message is transmitted upstream on
that individual flow (Flow D) by R8. This will not affect the
aggregate directly, but is an indication to the routers (and the
source end-system) which individual flow is to be preempted.
o Once R8 preempts whichever individual flow (or 'bandwidth' at the
aggregate ingress), it transmits a new RESV message for that
aggregate (Y), not for a new aggregate. This RESV from the
deaggregator indicates a decrease in bandwidth sufficient to
accommodate the remaining 4 flows (A, B, C, and E), which is now
320 kbps (in this example).
o This RESV message travels the entire path of the reservation,
resetting all routers to this new aggregate bandwidth value. This
should be what is necessary to prevent a ResvTear message from
being generated by R10 towards R6 and R5.
R5 will not know through this RESV message which individual flow was
preempted. If in this example, R8 was given more bandwidth to keep,
it might have transmitted a bandwidth reduction ResvErr indication
towards the end-system of Flow D. In that case, a voice signaling
protocol (such as SIP) could have attempted a renegotiation of that
individual flow to a reduced bandwidth (say, but changing the voice
codec from G.711 to G. 729). This could have saved Flow D from
preemption.
Polk & Dhesikan Standards Track [Page 19]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Authors' Addresses
James M. Polk
Cisco Systems
2200 East President George Bush Turnpike
Richardson, Texas 75082 USA
EMail: jmpolk@cisco.com
Subha Dhesikan
Cisco Systems
170 W. Tasman Drive
San Jose, CA 95134 USA
EMail: sdhesika@cisco.com
Polk & Dhesikan Standards Track [Page 20]
^L
RFC 4495 RSVP Bandwidth Reduction May 2006
Full Copyright Statement
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, 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 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 BCP 78 and BCP 79.
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
http://www.ietf.org/ipr.
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.
Acknowledgement
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Polk & Dhesikan Standards Track [Page 21]
^L
|