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
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
|
Network Working Group L. Berger
Request for Comments: 2961 LabN Consulting, LLC
Category: Standards Track D. Gan
Juniper Networks, Inc.
G. Swallow
Cisco Systems, Inc.
P. Pan
Juniper Networks, Inc.
F. Tommasi
S. Molendini
University of Lecce
April 2001
RSVP Refresh Overhead Reduction Extensions
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 (2001). All Rights Reserved.
Abstract
This document describes a number of mechanisms that can be used to
reduce processing overhead requirements of refresh messages,
eliminate the state synchronization latency incurred when an RSVP
(Resource ReserVation Protocol) message is lost and, when desired,
refreshing state without the transmission of whole refresh messages.
The same extensions also support reliable RSVP message delivery on a
per hop basis. These extension present no backwards compatibility
issues.
Berger, et al. Standards Track [Page 1]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
Table of Contents
1 Introduction and Background ................................2
1.1 Trigger and Refresh Messages ...............................4
2 Refresh-Reduction-Capable Bit ..............................4
3 RSVP Bundle Message ........................................5
3.1 Bundle Header ..............................................5
3.2 Message Formats ............................................6
3.3 Sending RSVP Bundle Messages ...............................7
3.4 Receiving RSVP Bundle Messages .............................8
4 MESSAGE_ID Extension .......................................8
4.1 Modification of Standard Message Formats ...................9
4.2 MESSAGE_ID Objects ........................................10
4.3 MESSAGE_ID_ACK and MESSAGE_ID_NACK Objects ................11
4.4 Ack Message Format ........................................11
4.5 MESSAGE_ID Object Usage ...................................12
4.6 MESSAGE_ID_ACK Object and MESSAGE_ID_NACK Object Usage ....14
4.7 Multicast Considerations ..................................15
4.7.1 Reference RSVP/Routing Interface ..........................16
4.8 Compatibility .............................................16
5 Summary Refresh Extension .................................17
5.1 MESSAGE_ID LIST, SRC_LIST and MCAST_LIST Objects ..........18
5.2 Srefresh Message Format ...................................24
5.3 Srefresh Message Usage ....................................25
5.4 Srefresh NACK .............................................28
5.5 Preserving RSVP Soft State ................................28
5.6 Compatibility .............................................29
6 Exponential Back-Off Procedures ...........................29
6.1 Outline of Operation ......................................30
6.2 Time Parameters ...........................................30
6.3 Retransmission Algorithm ..................................31
6.4 Performance Considerations ................................31
7 Acknowledgments ...........................................31
8 Security Considerations ...................................32
9 References ................................................32
10 Authors' Addresses ........................................33
11 Full Copyright Statement...................................34
1. Introduction and Background
Standard RSVP [RFC2205] maintains state via the generation of RSVP
refresh messages. Refresh messages are used to both synchronize
state between RSVP neighbors and to recover from lost RSVP messages.
The use of Refresh messages to cover many possible failures has
resulted in a number of operational problems. One problem relates to
scaling, another relates to the reliability and latency of RSVP
Signaling.
Berger, et al. Standards Track [Page 2]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
The scaling problems are linked to the resource requirements (in
terms of processing and memory) of running RSVP. The resource
requirements increase proportionally with the number of sessions.
Each session requires the generation, transmission, reception and
processing of RSVP Path and Resv messages per refresh period.
Supporting a large number of sessions, and the corresponding volume
of refresh messages, presents a scaling problem.
The reliability and latency problem occurs when a non-refresh RSVP
message is lost in transmission. Standard RSVP [RFC2205] recovers
from a lost message via RSVP refresh messages. In the face of
transmission loss of RSVP messages, the end-to-end latency of RSVP
signaling is tied to the refresh interval of the node(s) experiencing
the loss. When end-to-end signaling is limited by the refresh
interval, the delay incurred in the establishment or the change of a
reservation may be beyond the range of what is acceptable for some
applications.
One way to address the refresh volume problem is to increase the
refresh period, "R" as defined in Section 3.7 of [RFC2205].
Increasing the value of R provides linear improvement on transmission
overhead, but at the cost of increasing the time it takes to
synchronize state.
One way to address the reliability and latency of RSVP Signaling is
to decrease the refresh period R. Decreasing the value of R
increases the probability that state will be installed in the face of
message loss, but at the cost of increasing refresh message rate and
associated processing requirements.
An additional issue is the time to deallocate resources after a tear
message is lost. RSVP does not retransmit ResvTear or PathTear
messages. If the sole tear message transmitted is lost, then
resources will only be deallocated once the "cleanup timer" interval
has passed. This may result in resources being allocated for an
unnecessary period of time. Note that even when the refresh period
is adjusted, the "cleanup timer" must still expire since tear
messages are not retransmitted.
The extensions defined in this document address both the refresh
volume and the reliability issues with mechanisms other than
adjusting refresh rate. The extensions are collectively referred to
as the "Refresh Overhead Reduction" or the "Refresh Reduction"
extensions. A Bundle message is defined to reduce overall message
handling load. A MESSAGE_ID object is defined to reduce refresh
message processing by allowing the receiver to more readily identify
an unchanged message. A MESSAGE_ACK object is defined which can be
used to detect message loss and support reliable RSVP message
Berger, et al. Standards Track [Page 3]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
delivery on a per hop basis. A summary refresh message is defined to
enable refreshing state without the transmission of whole refresh
messages, while maintaining RSVP's ability to indicate when state is
lost and to adjust to changes in routing.
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 [RFC2119].
1.1. Trigger and Refresh Messages
This document categorizes RSVP messages into two types: trigger and
refresh messages. Trigger messages are those RSVP messages that
advertise state or any other information not previously transmitted.
Trigger messages include messages advertising new state, a route
change that alters a reservation path, or a modification to an
existing RSVP session or reservation. Trigger messages also include
those messages that include changes in non-RSVP processed objects,
such as changes in the Policy or ADSPEC objects.
Refresh messages represent previously advertised state and contain
exactly the same objects and same information as a previously
transmitted message, and are sent over the same path. Only Path and
Resv messages can be refresh messages. Refresh messages are
identical to the corresponding previously transmitted message, with
some possible exceptions. Specifically, the checksum field, the
flags field and the INTEGRITY object may differ in refresh messages.
2. Refresh-Reduction-Capable Bit
To indicate support for the refresh overhead reduction extensions, an
additional capability bit is added to the common RSVP header, which
is defined in [RFC2205].
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vers | Flags | Msg Type | RSVP Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Send_TTL | (Reserved) | RSVP Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags: 4 bits
0x01: Refresh (overhead) reduction capable
Berger, et al. Standards Track [Page 4]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
When set, indicates that this node is willing and capable of
receiving all the messages and objects described in this
document. This includes the Bundle message described in
Section 3, the MESSAGE_ID objects and Ack messages described
in Section 4, and the MESSAGE_ID LIST objects and Srefresh
message described in Section 5. This bit is meaningful only
between RSVP neighbors.
Nodes supporting the refresh overhead reduction extensions must also
take care to recognize when a next hop stops sending RSVP messages
with the Refresh-Reduction-Capable bit set. To cover this case,
nodes supporting the refresh overhead reduction extensions MUST
examine the flags field of each received RSVP message. If the flag
changes from indicating support to indicating non-support then,
unless configured otherwise, Srefresh messages (described in Section
5) MUST NOT be used for subsequent state refreshes to that neighbor
and Bundle messages (Section 3) MUST NOT be sent to that neighbor.
Note, a node that supports reliable RSVP message delivery (Section 4)
but not Bundle and Srefresh messages, will not set the Refresh-
Reduction-Capable bit.
3. RSVP Bundle Message
An RSVP Bundle message consists of a bundle header followed by a body
consisting of a variable number of standard RSVP messages. A Bundle
message is used to aggregate multiple RSVP messages within a single
PDU. The term "bundling" is used to avoid confusion with RSVP
reservation aggregation. The following subsections define the
formats of the bundle header and the rules for including standard
RSVP messages as part of the message.
3.1. Bundle Header
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vers | Flags | Msg type | RSVP checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Send_TTL | (Reserved) | RSVP length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The format of the bundle header is identical to the format of the
RSVP common header [RFC2205]. The fields in the header are as
follows:
Vers: 4 bits
Protocol version number. This is version 1.
Berger, et al. Standards Track [Page 5]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
Flags: 4 bits
0x01: Refresh (overhead) reduction capable
See Section 2.
0x02-0x08: Reserved
Msg type: 8 bits
12 = Bundle
RSVP checksum: 16 bits
The one's complement of the one's complement sum of the entire
message, with the checksum field replaced by zero for the
purpose of computing the checksum. An all-zero value means
that no checksum was transmitted. Because individual sub-
messages may carry their own checksum as well as the INTEGRITY
object for authentication, this field MAY be set to zero. Note
that when the checksum is not computed, the header of the
bundle message will not be covered by any checksum. If the
checksum is computed, individual sub-messages MAY set their own
checksum to zero.
Send_TTL: 8 bits
The IP TTL value with which the message was sent. This is used
by RSVP to detect a non-RSVP hop by comparing the Send_TTL with
the IP TTL in a received message.
RSVP length: 16 bits
The total length of this RSVP Bundle message in bytes,
including the bundle header and the sub-messages that follow.
3.2. Message Formats
An RSVP Bundle message must contain at least one sub-message. A
sub-message MAY be any message type except for another Bundle
message.
Berger, et al. Standards Track [Page 6]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vers | Flags | 12 | RSVP checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Send_TTL | (Reserved) | RSVP length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// First sub-message //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// More sub-messages.. //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.3. Sending RSVP Bundle Messages
Support for RSVP Bundle messages is optional. While message bundling
helps in scaling RSVP, by reducing processing overhead and bandwidth
consumption, a node is not required to transmit every standard RSVP
message in a Bundle message. A node MUST always be ready to receive
standard RSVP messages.
RSVP Bundle messages can only be sent to RSVP neighbors that support
bundling. Methods for discovering such information include: (1)
manual configuration and (2) observing the Refresh-Reduction-Capable
bit (see Section 2) in the received RSVP messages. RSVP Bundle
messages MUST NOT be used if the RSVP neighbor does not support RSVP
Bundle messages.
RSVP Bundle messages are sent hop by hop between RSVP-capable nodes
as "raw" IP datagrams with protocol number 46. The IP source address
is an address local to the system that originated the Bundle message.
The IP destination address is the RSVP neighbor for which the sub-
messages are intended.
RSVP Bundle messages SHOULD NOT be sent with the Router Alert IP
option in their IP headers. This is because Bundle messages are
addressed directly to RSVP neighbors.
Each RSVP Bundle message MUST occupy exactly one IP datagram, which
is approximately 64K bytes. If it exceeds the MTU, the datagram is
fragmented by IP and reassembled at the recipient node.
Implementations may choose to limit each RSVP Bundle message to the
MTU size of the outgoing link, e.g., 1500 bytes. Implementations
SHOULD also limit the amount of time that a message is delayed in
order to be bundled. Different limits may be used for trigger and
Berger, et al. Standards Track [Page 7]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
standard refresh messages. Trigger messages SHOULD be delayed a
minimal amount of time. Refresh messages may be delayed up to their
refresh interval. Note that messages related to the same Resv or
Path state should not be delayed at different intervals in order to
preserve ordering.
If the RSVP neighbor is not known or changes in next hops cannot be
identified via routing, Bundle messages MUST NOT be used. Note that
when the routing next hop is not RSVP capable it will typically not
be possible to identify changes in next hop.
Any message that will be handled by the RSVP neighbor indicated in a
Bundle Message's destination address may be included in the same
message. This includes all RSVP messages that would be sent out a
point-to-point link. It includes any message, such as a Resv,
addressed to the same destination address. It also includes Path and
PathTear messages when the next hop is known to be the destination
and changes in next hops can be detected. Path and PathTear messages
for multicast sessions MUST NOT be sent in Bundle messages when the
outgoing link is not a point-to-point link or when the next hop does
not support the refresh overhead reduction extensions.
3.4. Receiving RSVP Bundle Messages
If the local system does not recognize or does not wish to accept a
Bundle message, the received messages shall be discarded without
further analysis.
The receiver next compares the Send_TTL with which a Bundle message
is sent to the IP TTL with which it is received. If a non-RSVP hop
is detected, the number of non-RSVP hops is recorded. It is used
later in processing of sub-messages.
Next, the receiver verifies the version number and checksum of the
RSVP Bundle message and discards the message if any mismatch is
found.
The receiver then starts decapsulating individual sub-messages. Each
sub-message has its own complete message length and authentication
information. With the exception of using the Send_TTL from the
header of the Bundle message, each sub-message is processed as if it
was received individually.
4. MESSAGE_ID Extension
Three new objects are defined as part of the MESSAGE_ID extension.
The objects are the MESSAGE_ID object, the MESSAGE_ID_ACK object, and
the MESSAGE_ID_NACK objects. The first two objects are used to
Berger, et al. Standards Track [Page 8]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
support acknowledgments and reliable RSVP message delivery. The last
object is used to support the summary refresh extension described in
Section 5. The MESSAGE_ID object can also be used to simply provide
a shorthand indication of when the message carrying the object is a
refresh message. Such information can be used by the receiving node
to reduce refresh processing requirements.
Message identification and acknowledgment is done on a per hop basis.
All types of MESSAGE_ID objects contain a message identifier. The
identifier MUST be unique on a per object generator's IP address
basis. No more than one MESSAGE_ID object may be included in an RSVP
message. Each message containing a MESSAGE_ID object may be
acknowledged via a MESSAGE_ID_ACK object, when so indicated.
MESSAGE_ID_ACK and MESSAGE_ID_NACK objects may be sent piggy-backed
in unrelated RSVP messages or in RSVP Ack messages. RSVP messages
carrying any of the three object types may be included in a bundle
message. When included, each object is treated as if it were
contained in a standard, non-bundled, RSVP message.
4.1. Modification of Standard Message Formats
The MESSAGE_ID, MESSAGE_ID_ACK and MESSAGE_ID_NACK objects may be
included in the standard RSVP messages, as defined in [RFC2205].
When included, one or more MESSAGE_ID_ACK or MESSAGE_ID_NACK objects
MUST immediately follow the INTEGRITY object. When no INTEGRITY
object is present, the MESSAGE_ID_ACK or MESSAGE_ID_NACK objects MUST
immediately follow the message or sub-message header. Only one
MESSAGE_ID object MAY be included in a message or sub-message and it
MUST follow any present MESSAGE_ID_ACK or MESSAGE_ID_NACK objects.
When no MESSAGE_ID_ACK or MESSAGE_ID_NACK objects are present, the
MESSAGE_ID object MUST immediately follow the INTEGRITY object. When
no INTEGRITY object is present, the MESSAGE_ID object MUST
immediately follow the message or sub-message header.
The ordering of the ACK objects for all standard RSVP messages is:
<Common Header> [ <INTEGRITY> ]
[ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
[ <MESSAGE_ID> ]
Berger, et al. Standards Track [Page 9]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
4.2. MESSAGE_ID Objects
MESSAGE_ID Class = 23
MESSAGE_ID object
Class = MESSAGE_ID Class, C_Type = 1
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Epoch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags: 8 bits
0x01 = ACK_Desired flag
Indicates that the sender requests the receiver to send an
acknowledgment for the message.
Epoch: 24 bits
A value that indicates when the Message_Identifier sequence has
reset. SHOULD be randomly generated each time a node reboots
or the RSVP agent is restarted. The value SHOULD NOT be the
same as was used when the node was last operational. This
value MUST NOT be changed during normal operation.
Message_Identifier: 32 bits
When combined with the message generator's IP address, the
Message_Identifier field uniquely identifies a message. The
values placed in this field change incrementally and only
decrease when the Epoch changes or when the value wraps.
Berger, et al. Standards Track [Page 10]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
4.3. MESSAGE_ID_ACK and MESSAGE_ID_NACK Objects
MESSAGE_ID_ACK Class = 24
MESSAGE_ID_ACK object
Class = MESSAGE_ID_ACK Class, C_Type = 1
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Epoch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags: 8 bits
No flags are currently defined. This field MUST be zero on
transmission and ignored on receipt.
Epoch: 24 bits
The Epoch field copied from the message being acknowledged.
Message_Identifier: 32 bits
The Message_Identifier field copied from the message being
acknowledged.
MESSAGE_ID_NACK object
Class = MESSAGE_ID_ACK Class, C_Type = 2
Definition is the same as the MESSAGE_ID_ACK object.
4.4. Ack Message Format
Ack messages carry one or more MESSAGE_ID_ACK or MESSAGE_ID_NACK
objects. They MUST NOT contain any MESSAGE_ID objects. Ack messages
are sent between neighboring RSVP nodes. The IP destination address
of an Ack message is the unicast address of the node that generated
the message(s) being acknowledged. For messages with RSVP_HOP
objects, such as Path and Resv messages, the address is found in the
RSVP_HOP object. For other messages, such as ResvConf, the
associated IP address is the source address in the IP header. The IP
source address is an address of the node that sends the Ack message.
Berger, et al. Standards Track [Page 11]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
The Ack message format is as follows:
<ACK Message> ::= <Common Header> [ <INTEGRITY> ]
<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>
[ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
For Ack messages, the Msg Type field of the Common Header MUST be
set to 13.
Section 4.6 provides guidance on when an Ack message should be used
and when MESSAGE_ID objects should be sent piggy-backed in other
RSVP messages.
4.5. MESSAGE_ID Object Usage
The MESSAGE_ID object may be included in any RSVP message other than
the Ack and Bundle messages. The MESSAGE_ID object is always
generated and processed over a single hop between RSVP neighbors.
The IP address of the object generator, i.e., the node that creates
the object, is represented in a per RSVP message type specific
fashion. For messages with RSVP_HOP objects, such as Path and Resv
messages, the generator's IP address is found in the RSVP_HOP object.
For other messages, such as ResvConf message, the generator's IP
address is the source address in the IP header. Note that MESSAGE_ID
objects can only be used in a Bundle sub-messages, but not in a
Bundle message. As is always the case with the Bundle message, each
sub-message is processed as if it was received individually. This
includes processing of MESSAGE_ID objects.
The Epoch field contains a generator selected value. The value is
used to indicate when the sender resets the values used in the
Message_Identifier field. On startup, a node SHOULD randomly select
a value to be used in the Epoch field. The node SHOULD ensure that
the selected value is not the same as was used when the node was last
operational. The value MUST NOT be changed unless the node or the
RSVP agent is restarted.
The Message_Identifier field contains a generator selected value.
This value, when combined with the generator's IP address, identifies
a particular RSVP message and the specific state information it
represents. The combination of Message_Identifier and Epoch can also
be used to detect out of order messages. When a node is sending a
refresh message with a MESSAGE_ID object, it SHOULD use the same
Message_Identifier value that was used in the RSVP message that first
advertised the state being refreshed. When a node is sending a
trigger message, the Message_Identifier value MUST have a value that
is greater than any other value previously used with the same Epoch
field value. A value is considered to have been used when it has
Berger, et al. Standards Track [Page 12]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
been sent in any message using the associated IP address with the
same Epoch field value.
The ACK_Desired flag is set when the MESSAGE_ID object generator
wants a MESSAGE_ID_ACK object sent in response to the message. Such
information can be used to ensure reliable delivery of RSVP messages
in the face of network loss. Nodes setting the ACK_Desired flag
SHOULD retransmit unacknowledged messages at a more rapid interval
than the standard refresh period until the message is acknowledged or
until a "rapid" retry limit is reached. Rapid retransmission rate
MUST be based on the exponential exponential back-off procedures
defined in section 6. The ACK_Desired flag will typically be set
only in trigger messages. The ACK_Desired flag MAY be set in refresh
messages. Issues relate to multicast sessions are covered in a later
section.
Nodes processing incoming MESSAGE_ID objects SHOULD check to see if a
newly received message is out of order and can be ignored. Out of
order messages SHOULD be ignored, i.e., silently dropped. Out of
order messages can be identified by examining the values in the Epoch
and Message_Identifier fields. To determine ordering, the received
Epoch value must match the value previously received from the message
sender. If the values differ then the receiver MUST NOT treat the
message as out of order. When the Epoch values match and the
Message_Identifier value is less than the largest value previously
received from the sender, then the receiver SHOULD check the value
previously received for the state associated with the message. This
check should be performed for any message that installs or changes
state. (Includes at least: Path, Resv, PathTear, ResvTear, PathErr
and ResvErr.) If no local state information can be associated with
the message, the receiver MUST NOT treat the message as out of order.
If local state can be associated with the message and the received
Message_Identifier value is less than the most recently received
value associated with the state, the message SHOULD be treated as
being out of order.
Note that the 32-bit Message_Identifier value MAY wrap. To cover the
wrap case, the following expression may be used to test if a newly
received Message_Identifier value is less than a previously received
value:
if ((int) old_id - (int) new_id > 0) {
new value is less than old value;
}
MESSAGE_ID objects of messages that are not out of order SHOULD be
used to aid in determining if the message represents new state or a
state refresh. Note that state is only refreshed in Path and Resv
Berger, et al. Standards Track [Page 13]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
messages. If the received Epoch values differs from the value
previously received from the message sender, the message is a trigger
message and the receiver MUST fully process the message. If a Path
or Resv message contains the same Message_Identifier value that was
used in the most recently received message for the same session and,
for Path messages, SENDER_TEMPLATE then the receiver SHOULD treat the
message as a state refresh. If the Message_Identifier value is
greater than the most recently received value, the receiver MUST
fully processes the message. When fully processing a Path or Resv
message, the receiver MUST store the received Message_Identifier
value as part of the local Path or Resv state for future reference.
Nodes receiving a non-out of order message containing a MESSAGE_ID
object with the ACK_Desired flag set, SHOULD respond with a
MESSAGE_ID_ACK object. Note that MESSAGE_ID objects received in
messages containing errors, i.e., are not syntactically valid, MUST
NOT be acknowledged. PathErr and ResvErr messages SHOULD be treated
as implicit acknowledgments.
4.6. MESSAGE_ID_ACK Object and MESSAGE_ID_NACK Object Usage
The MESSAGE_ID_ACK object is used to acknowledge receipt of messages
containing MESSAGE_ID objects that were sent with the ACK_Desired
flag set. A MESSAGE_ID_ACK object MUST NOT be generated in response
to a received MESSAGE_ID object when the ACK_Desired flag is not set.
The MESSAGE_ID_NACK object is used as part of the summary refresh
extension. The generation and processing of MESSAGE_ID_NACK objects
is described in further detail in Section 5.4.
MESSAGE_ID_ACK and MESSAGE_ID_NACK objects MAY be sent in any RSVP
message that has an IP destination address matching the generator of
the associated MESSAGE_ID object. This means that the objects will
not typically be included in the non hop-by-hop Path, PathTear and
ResvConf messages. When no appropriate message is available, one or
more objects SHOULD be sent in an Ack message. Implementations
SHOULD include MESSAGE_ID_ACK and MESSAGE_ID_NACK objects in standard
RSVP messages when possible.
Implementations SHOULD limit the amount of time that an object is
delayed in order to be piggy-backed or sent in an Ack message.
Different limits may be used for MESSAGE_ID_ACK and MESSAGE_ID_NACK
objects. MESSAGE_ID_ACK objects are used to detect link transmission
losses. If an ACK object is delayed too long, the corresponding
message will be retransmitted. To avoid such retransmission, ACK
objects SHOULD be delayed a minimal amount of time. A delay time
equal to the link transit time MAY be used. MESSAGE_ID_NACK objects
may be delayed an independent and longer time, although additional
Berger, et al. Standards Track [Page 14]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
delay increases the amount of time a desired reservation is not
installed.
4.7. Multicast Considerations
Path and PathTear messages may be sent to IP multicast destination
addresses. When the destination is a multicast address, it is
possible that a single message containing a single MESSAGE_ID object
will be received by multiple RSVP next hops. When the ACK_Desired
flag is set in this case, acknowledgment processing is more complex.
There are a number of issues to be addressed including ACK implosion,
number of acknowledgments to be expected and handling of new
receivers.
ACK implosion occurs when each receiver responds to the MESSAGE_ID
object at approximately the same time. This can lead to a
potentially large number of MESSAGE_ID_ACK objects being
simultaneously delivered to the message generator. To address this
case, the receiver MUST wait a random interval prior to acknowledging
a MESSAGE_ID object received in a message destined to a multicast
address. The random interval SHOULD be between zero (0) and a
configured maximum time. The configured maximum SHOULD be set in
proportion to the refresh and "rapid" retransmission interval, i.e,
such that the maximum time before sending an acknowledgment does not
result in retransmission. It should be noted that ACK implosion is
being addressed by spreading acknowledgments out in time, not by ACK
suppression.
A more fundamental issue is the number of acknowledgments that the
upstream node, i.e., the message generator, should expect. The
number of acknowledgments that should be expected is the same as the
number of RSVP next hops. In the router-to-router case, the number
of next hops can often be obtained from routing. When hosts are
either the upstream node or the next hops, the number of next hops
will typically not be readily available. Another case where the
number of RSVP next hops will typically not be known is when there
are non-RSVP routers between the message generator and the RSVP next
hops.
When the number of next hops is not known, the message generator
SHOULD only expect a single response. The result of this behavior
will be special retransmission handling until the message is
delivered to at least one next hop, then followed by standard RSVP
refreshes. Refresh messages will synchronize state with any next
hops that don't receive the original message.
Berger, et al. Standards Track [Page 15]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
4.7.1. Reference RSVP/Routing Interface
When using the MESSAGE_ID extension with multicast sessions it is
preferable for RSVP to obtain the number of next hops from routing
and to be notified when that number changes. The interface between
routing and RSVP is purely an implementation issue. Since RSVP
[RFC2205] describes a reference routing interface, a version of the
RSVP/routing interface updated to provide number of next hop
information is presented. See [RFC2205] for previously defined
parameters and function description.
o Route Query
Mcast_Route_Query( [ SrcAddress, ] DestAddress,
Notify_flag )
-> [ IncInterface, ] OutInterface_list,
NHops_list
o Route Change Notification
Mcast_Route_Change( ) -> [ SrcAddress, ] DestAddress,
[ IncInterface, ] OutInterface_list,
NHops_list
NHops_list provides the number of multicast group members
reachable via each OutInterface_list entry.
4.8. Compatibility
All nodes sending messages with the Refresh-Reduction-Capable bit set
will support the MESSAGE_ID Extension. There are no backward
compatibility issues raised by the MESSAGE_ID Class with nodes that
do not set the Refresh-Reduction-Capable bit. The MESSAGE_ID Class
has an assigned value whose form is 0bbbbbbb. Per RSVP [RFC2205],
classes with values of this form must be rejected with an "Unknown
Object Class" error by nodes not supporting the class. When the
receiver of a MESSAGE_ID object does not support the class, a
corresponding error message will be generated. The generator of the
MESSAGE_ID object will see the error and then MUST re-send the
original message without the MESSAGE_ID object. In this case, the
message generator MAY still choose to retransmit messages at the
"rapid" retransmission interval. Lastly, since the MESSAGE_ID_ACK
class can only be issued in response to the MESSAGE_ID object, there
are no possible issues with this class or Ack messages. A node MAY
support the MESSAGE_ID Extension without supporting the other refresh
overhead reduction extensions.
Berger, et al. Standards Track [Page 16]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
5. Summary Refresh Extension
The summary refresh extension enables the refreshing of RSVP state
without the transmission of standard Path or Resv messages. The
benefits of the described extension are that it reduces the amount of
information that must be transmitted and processed in order to
maintain RSVP state synchronization. Importantly, the described
extension preserves RSVP's ability to handle non-RSVP next hops and
to adjust to changes in routing. This extension cannot be used with
Path or Resv messages that contain any change from previously
transmitted messages, i.e., are trigger messages.
The summary refresh extension builds on the previously defined
MESSAGE_ID extension. Only state that was previously advertised in
Path and Resv messages containing MESSAGE_ID objects can be refreshed
via the summary refresh extension.
The summary refresh extension uses the objects and the ACK message
previously defined as part of the MESSAGE_ID extension, and a new
Srefresh message. The new message carries a list of
Message_Identifier fields corresponding to the Path and Resv trigger
messages that established the state. The Message_Identifier fields
are carried in one of three Srefresh related objects. The three
objects are the MESSAGE_ID LIST object, the MESSAGE_ID SRC_LIST
object, and the MESSAGE_ID MCAST_LIST object.
The MESSAGE_ID LIST object is used to refresh all Resv state, and
Path state of unicast sessions. It is made up of a list of
Message_Identifier fields that were originally advertised in
MESSAGE_ID objects. The other two objects are used to refresh Path
state of multicast sessions. A node receiving a summary refresh for
multicast path state will at times need source and group information.
These two objects provide this information. The objects differ in
the information they contain and how they are sent. Both carry
Message_Identifier fields and corresponding source IP addresses. The
MESSAGE_ID SRC_LIST is sent in messages addressed to the session's
multicast IP address. The MESSAGE_ID MCAST_LIST object adds the
group address and is sent in messages addressed to the RSVP next hop.
The MESSAGE_ID MCAST_LIST is normally used on point-to-point links.
An RSVP node receiving an Srefresh message, matches each listed
Message_Identifier field with installed Path or Resv state. All
matching state is updated as if a normal RSVP refresh message has
been received. If matching state cannot be found, then the Srefresh
message sender is notified via a refresh NACK.
Berger, et al. Standards Track [Page 17]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
A refresh NACK is sent via the MESSAGE_ID_NACK object. As described
in the previous section, the rules for sending a MESSAGE_ID_NACK
object are the same as for sending a MESSAGE_ID_ACK object. This
includes sending MESSAGE_ID_NACK object both piggy-backed in
unrelated RSVP messages or in RSVP ACK messages.
5.1. MESSAGE_ID LIST, SRC_LIST and MCAST_LIST Objects
MESSAGE_ID LIST object
MESSAGE_ID_LIST Class = 25
Class = MESSAGE_ID_LIST Class, C_Type = 1
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Epoch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| : |
// : //
| : |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags: 8 bits
No flags are currently defined. This field MUST be zero on
transmission and ignored on receipt.
Epoch: 24 bits
The Epoch field from the MESSAGE_ID object corresponding to the
trigger message that advertised the state being refreshed.
Message_Identifier: 32 bits
The Message_Identifier field from the MESSAGE_ID object
corresponding to the trigger message that advertised the state
being refreshed. One or more Message_Identifiers may be
included.
Berger, et al. Standards Track [Page 18]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
IPv4/MESSAGE_ID SRC_LIST object
Class = MESSAGE_ID_LIST Class, C_Type = 2
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Epoch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source_ |
| Message_Identifier_Tuple |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| : |
// : //
| : |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source_ |
| Message_Identifier_Tuple |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where a Source_Message_Identifier_Tuple consists of:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source_IP_Address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Berger, et al. Standards Track [Page 19]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
IPv6/MESSAGE_ID SRC_LIST object
Class = MESSAGE_ID_LIST Class, C_Type = 3
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Epoch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv6_Source_ |
| Message_Identifier_Tuple |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| : |
// : //
| : |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv6_Source_ |
| Message_Identifier_Tuple |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where a IPv6 Source_Message_Identifier_Tuple consists of:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv6 Source_IP_Address |
| (16 Bytes) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags: 8 bits
No flags are currently defined. This field MUST be zero on
transmission and ignored on receipt.
Epoch: 24 bits
The Epoch field from the MESSAGE_ID object corresponding to the
trigger message that advertised the state being refreshed.
Berger, et al. Standards Track [Page 20]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
Message_Identifier
The Message_Identifier field from the MESSAGE_ID object
corresponding to the trigger message that advertised the Path
state being refreshed. One or more Message_Identifiers may be
included. Each Message_Identifier MUST be followed by the
source IP address corresponding to the sender described in the
Path state being refreshed.
Source_IP_Address
The IP address corresponding to the sender of the Path state
being refreshed.
IPv4/MESSAGE_ID MCAST_LIST object
Class = MESSAGE_ID_LIST Class, C_Type = 4
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Epoch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Multicast_ |
| Message_Identifier_ |
| Tuple |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| : |
// : //
| : |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Multicast_ |
| Message_Identifier_ |
| Tuple |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where a Multicast_Message_Identifier_Tuple consists of:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source_IP_Address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination_IP_Address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Berger, et al. Standards Track [Page 21]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
IPv6/MESSAGE_ID MCAST_LIST object
Class = MESSAGE_ID_LIST Class, C_Type = 5
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Epoch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| |
| |
| IPv6 Multicast_ |
| Message_Identifier_ |
| Tuple |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| : |
// : //
| : |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| |
| |
| IPv6 Multicast_ |
| Message_Identifier_ |
| Tuple |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Berger, et al. Standards Track [Page 22]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
Where a IPv6 Multicast_Message_Identifier_Tuple consists of:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message_Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv6 Source_IP_Address |
| (16 Bytes) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv6 Destination_IP_Address |
| (16 Bytes) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags: 8 bits
No flags are currently defined. This field MUST be zero on
transmission and ignored on receipt.
Epoch: 24 bits
The Epoch field from the MESSAGE_ID object corresponding to the
trigger message that advertised the state being refreshed.
Message_Identifier: 32 bits
The Message_Identifier field from the MESSAGE_ID object
corresponding to the trigger message that advertised the Path
state being refreshed. One or more Message_Identifiers may be
included. Each Message_Identifier MUST be followed by the
source IP address corresponding to the sender of the Path state
being refreshed, and the destination IP address of the session.
Source_IP_Address
The IP address corresponding to the sender of the Path state
being refreshed.
Destination_IP_Address
The destination IP address corresponding to the session of the
Path state being refreshed.
Berger, et al. Standards Track [Page 23]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
5.2. Srefresh Message Format
Srefresh messages carry one or more MESSAGE_ID LIST, MESSAGE_ID
SRC_LIST, and MESSAGE_ID MCAST_LIST objects. MESSAGE_ID LIST and
MESSAGE_ID MCAST_LIST objects MAY be carried in the same Srefresh
message. MESSAGE_ID SRC_LIST can not be combined in Srefresh
messages with the other objects. A single Srefresh message MAY
refresh both Path and Resv state.
Srefresh messages carrying Message_Identifier fields corresponding to
Path state are normally sent with a destination IP address equal to
the address carried in the corresponding SESSION objects. The
destination IP address MAY be set to the RSVP next hop when the next
hop is known to be RSVP capable and either (a) the session is unicast
or (b) the outgoing interface is a point-to-point link. Srefresh
messages carrying Message_Identifier fields corresponding to Resv
state MUST be sent with a destination IP address set to the Resv
state's previous hop.
Srefresh messages sent to a multicast session's destination IP
address, MUST contain MESSAGE_ID SRC_LIST objects and MUST NOT
include any MESSAGE_ID LIST or MESSAGE_ID MCAST_LIST objects.
Srefresh messages sent to the RSVP next hop MAY contain either or
both MESSAGE_ID LIST and MESSAGE_ID MCAST_LIST objects, but MUST NOT
include any MESSAGE_ID SRC_LIST objects.
The source IP address of an Srefresh message is an address of the
node that generates the message. The source IP address MUST match
the address associate with the MESSAGE_ID objects when they were
included in a standard RSVP message. As previously mentioned, the
source address associated with a MESSAGE_ID object is represented in
a per RSVP message type specific fashion. For messages with RSVP_HOP
objects, such as Path and Resv messages, the address is found in the
RSVP_HOP object. For other messages, such as ResvConf message, the
associated IP address is the source address in the IP header.
Srefresh messages that are addressed to a session's destination IP
address MUST be sent with the Router Alert IP option in their IP
headers. Srefresh messages addressed directly to RSVP neighbors
SHOULD NOT be sent with the Router Alert IP option in their IP
headers.
Each Srefresh message MUST occupy exactly one IP datagram. If it
exceeds the MTU, the datagram is fragmented by IP and reassembled at
the recipient node. Srefresh messages MAY be sent within an RSVP
Bundle messages. Although this is not expected since Srefresh
Berger, et al. Standards Track [Page 24]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
messages can carry a list of Message_Identifier fields within a
single object. Implementations may choose to limit each Srefresh
message to the MTU size of the outgoing link, e.g., 1500 bytes.
The Srefresh message format is:
<Srefresh Message> ::= <Common Header> [ <INTEGRITY> ]
[ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
[ <MESSAGE_ID> ]
<srefresh list> | <source srefresh list>
<srefresh list> ::= <MESSAGE_ID LIST> | <MESSAGE_ID MCAST_LIST>
[ <srefresh list> ]
<source srefresh list> ::= <MESSAGE_ID SRC_LIST>
[ <source srefresh list> ]
For Srefresh messages, the Msg Type field of the Common Header MUST
be set to 15.
5.3. Srefresh Message Usage
An Srefresh message may be generated to refresh Resv and Path state.
If an Srefresh message is used to refresh some particular state, then
the generation of a standard refresh message for that particular
state SHOULD be suppressed. A state's refresh interval is not
affected by the use of Srefresh message based refreshes.
When generating an Srefresh message, a node SHOULD refresh as much
Path and Resv state as is possible by including the information from
as many MESSAGE_ID objects in the same Srefresh message. Only the
information from MESSAGE_ID objects that meet the source and
destination IP address restrictions, as described in Sections 5.2,
may be included in the same Srefresh message. Identifying Resv state
that can be refreshed using the same Srefresh message is fairly
straightforward. Identifying which Path state may be included is a
little more complex.
Only state that was previously advertised in Path and Resv messages
containing MESSAGE_ID objects can be refreshed via an Srefresh
message. Srefresh message based refreshes must preserve the state
synchronization properties of Path or Resv message based refreshes.
Specifically, the use of Srefresh messages MUST NOT result in state
being timed-out at the RSVP next hop. The period at which state is
refreshed when using Srefresh messages MAY be shorter than the period
that would be used when using Path or Resv message based refreshes,
but it MUST NOT be longer.
Berger, et al. Standards Track [Page 25]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
The particular approach used to trigger Srefresh message based
refreshes is implementation specific. Some possibilities are
triggering Srefresh message generation based on each state's refresh
period or, on a per interface basis, periodically generating Srefresh
messages to refresh all state that has not been refreshed within the
state's refresh interval. Other approaches are also possible. A
default Srefresh message generation interval of 30 seconds is
suggested for nodes that do not dynamically calculate a generation
interval.
When generating an Srefresh message, there are two methods for
identifying which Path state may be refreshed in a specific message.
In both cases, the previously mentioned refresh interval and source
IP address restrictions must be followed. The primary method is to
include only those sessions that share the same destination IP
address in the same Srefresh message.
The secondary method for identifying which Path state may be
refreshed within a single Srefresh message is an optimization. This
method MAY be used when the next hop is known to support RSVP and
when either (a) the session is unicast or (b) the outgoing interface
is a point-to-point link. This method MUST NOT be used when the next
hop is not known to support RSVP or when the outgoing interface is to
a multi-access network and the session is to a multicast address.
The use of this method MAY be administratively configured. When
using this method, the destination address in the IP header of the
Srefresh message is usually the next hop's address. When the use of
this method is administratively configured, the destination address
should be the well known group address 224.0.0.14. When the outgoing
interface is a point-to-point link, all Path state associated with
sessions advertised out the interface SHOULD be included in the same
Srefresh message. When the outgoing interface is not a point-to-
point link, all unicast session Path state SHOULD be included in the
same Srefresh message.
Identifying which Resv state may be refreshed within a single
Srefresh message is based simply on the source and destination IP
addresses. Any state that was previously advertised in Resv messages
with the same IP addresses as an Srefresh message MAY be included.
After identifying the Path and Resv state that can be included in a
particular Srefresh message, the message generator adds to the
message MESSAGE_ID information matching each identified state's
previously used object. For all Resv state and for Path state of
unicast sessions, the information is added to the message in a
MESSAGE_ID LIST object that has a matching Epoch value. (Note only
one Epoch value will be in use during normal operation.) If no
matching object exists, then a new MESSAGE_ID LIST object is created.
Berger, et al. Standards Track [Page 26]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
Path state of multicast sessions may be added to the same message
when the destination address of the Srefresh message is the RSVP next
hop and the outgoing interface is a point-to-point link. In this
case the information is added to the message in a MESSAGE_ID
MCAST_LIST object that has a matching Epoch value. If no matching
object exists, then a new MESSAGE_ID MCAST_LIST object is created.
When the destination address of the message is a multicast address,
then identified information is added to the message in a MESSAGE_ID
SRC_LIST object that has a matching Epoch value. If no matching
object exists, then a new MESSAGE_ID SRC_LIST object is created.
Once the Srefresh message is composed, the message generator
transmits the message out the proper interface.
Upon receiving an Srefresh message, the node MUST attempt to identify
matching installed Path or Resv state. Matching is done based on the
source address in the IP header of the Srefresh message, the object
type and each Message_Identifier field. If matching state can be
found, then the receiving node MUST update the matching state
information as if a standard refresh message had been received. If
matching state cannot be identified, then an Srefresh NACK MUST be
generated corresponding to the unmatched Message_Identifier field.
Message_Identifier fields received in MESSAGE_ID LIST objects may
correspond to any Resv state or to Path state of unicast sessions.
Message_Identifier fields received in MESSAGE_ID SRC_LIST or
MCAST_LIST objects correspond to Path state of multicast sessions.
An additional check must be performed to determine if a NACK should
be generated for unmatched Message_Identifier fields associated with
Path state of multicast sessions, i.e., fields that were carried in
MESSAGE_ID SRC_LIST or MCAST_LIST objects. The receiving node must
check to see if the node would forward data packets originated from
the source corresponding to the unmatched field. This check,
commonly known as an RPF check, is performed based on the source and
group information carried in the MESSAGE_ID SRC_LIST and MCAST_LIST
objects. In both objects the IP address of the source is listed
immediately after the corresponding Message_Identifier field. The
group address is listed immediately after the source IP address in
MESSAGE_ID MCAST_LIST objects. The group address is the message's
destination IP address when MESSAGE_ID SRC_LIST objects are used.
The receiving node only generates an Srefresh NACK when the node
would forward packets to the identified group from the listed sender.
If the node would forward multicast data packets from a listed sender
and there is a corresponding unmatched Message_Identifier field, then
an appropriate Srefresh NACK MUST be generated. If the node would
not forward packets to the identified group from a listed sender, a
corresponding unmatched Message_Identifier field is silently ignored.
Berger, et al. Standards Track [Page 27]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
5.4. Srefresh NACK
Srefresh NACKs are used to indicate that a received
Message_Identifier field carried in MESSAGE_ID LIST, SRC_LIST, or
MCAST_LIST object does not match any installed state. This may occur
for a number of reasons including, for example, a route change. An
Srefresh NACK is encoded in a MESSAGE_ID_NACK object. When
generating an Srefresh NACK, the epoch and Message_Identifier fields
of the MESSAGE_ID_NACK object MUST have the same value as was
received. MESSAGE_ID_NACK objects are transmitted as described in
Section 4.6.
Received MESSAGE_ID_NACK objects indicate that the object generator
does not have any installed state matching the object. Upon
receiving a MESSAGE_ID_NACK object, the receiver performs an
installed Path or Resv state lookup based on the Epoch and
Message_Identifier values contained in the object. If matching state
is found, then the receiver MUST transmit the matching state via a
standard Path or Resv message. If the receiver cannot identify any
installed state, then no action is required.
5.5. Preserving RSVP Soft State
As discussed in [RFC2205], RSVP uses soft state to address a large
class of potential errors. RSVP does this by periodically sending a
full representation of installed state in Resv and Path messages.
Srefresh messages are used in place of the periodic sending of
standard Path and Resv refresh messages. While this provides scaling
benefits and protects against common network events such as packet
loss or routing change, it does not provide exactly the same error
recovery properties. An example error that could potentially be
recovered from via standard messages but not with Srefresh messages
is internal corruption of state. This section recommends two methods
that can be used to better preserve RSVP's soft state error recovery
mechanism. Both mechanisms are supported using existing protocol
messages.
The first mechanism uses a checksum or other algorithm to detect a
previously unnoticed change in internal state. This mechanism does
not protect against internal state corruption. It just covers the
case where a trigger message should have been sent, but was not.
When sending a Path or Resv trigger message, a node should run a
checksum or other algorithm, such as [MD5], over the internal state
and store the result. The choice of algorithm is an administrative
decision. Periodically the node should rerun the algorithm and
compare the new result with the stored result. If the values differ,
then a corresponding standard Path or Resv refresh message should be
Berger, et al. Standards Track [Page 28]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
sent and the new value should be stored. The recomputation period
should be set based on the computation resources of the node and the
reliability requirements of the network.
The second mechanism is simply to periodically send standard Path and
Resv refresh messages. Since this mechanism uses standard refresh
messages, it can recover from the same set of errors as standard
RSVP. When using this mechanism, the period that standard refresh
messages are sent must be longer than the interval that Srefresh
messages are generated in order to gain the benefits of using the
summary refresh extension. When a standard refresh message is sent,
a corresponding summary refresh SHOULD NOT be sent during the same
refresh period. When a node supports the periodic generation of
standard refresh messages while Srefreshes are being used, the
frequency of generation of standard refresh messages relative to the
generation of summary refreshes SHOULD be configurable by the network
administrator.
5.6. Compatibility
Nodes supporting the summary refresh extension advertise their
support via the Refresh-Reduction-Capable bit in the RSVP message
header. This enables nodes supporting the extension to detect each
other. When it is not known if a next hop supports the extension,
standard Path and Resv message based refreshes MUST be used. Note
that when the routing next hop does not support RSVP, it will not
always be possible to detect if the RSVP next hop supports the
summary refresh extension. Therefore, when the routing next hop is
not RSVP capable the Srefresh message based refresh SHOULD NOT be
used. A node MAY be administratively configured to use Srefresh
messages in all cases when all RSVP nodes in a network are known to
support the summary refresh extension. This is useful since when
operating in this mode, the extension properly adjusts to the case of
non-RSVP next hops and changes in routing.
Per section 2, nodes supporting the summary refresh extension must
also take care to recognize when a next hop stops sending RSVP
messages with the Refresh-Reduction-Capable bit set.
6. Exponential Back-Off Procedures
This section is based on [Pan] and provides procedures to implement
exponential back-off for retransmission of messages awaiting
acknowledgment, see Section 4.5. Implementations MUST use the
described procedures or their equivalent.
Berger, et al. Standards Track [Page 29]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
6.1. Outline of Operation
The following is one possible mechanism for exponential back-off
retransmission of an unacknowledged RSVP message: When sending such a
message, a node inserts a MESSAGE_ID object with the ACK_Desired flag
set. The sending node will retransmit the message until a message
acknowledgment is received or the message has been transmitted a
maximum number of times. Upon reception, a receiving node
acknowledges the arrival of the message by sending back a message
acknowledgment (that is, a corresponding MESSAGE_ID_ACK object.)
When the sending node receives the acknowledgment retransmission of
the message is stopped. The interval between retransmissions is
governed by a rapid retransmission timer. The rapid retransmission
timer starts at a small interval and increases exponentially until it
reaches a threshold.
6.2. Time Parameters
The described procedures make use of the following time parameters.
All parameters are per interface.
Rapid retransmission interval Rf:
Rf is the initial retransmission interval for unacknowledged
messages. After sending the message for the first time, the
sending node will schedule a retransmission after Rf seconds.
The value of Rf could be as small as the round trip time
(RTT) between a sending and a receiving node, if known.
Rapid retry limit Rl:
Rl is the maximum number of times a message will be
transmitted without being acknowledged.
Increment value Delta:
Delta governs the speed with which the sender increases the
retransmission interval. The ratio of two successive
retransmission intervals is (1 + Delta).
Suggested default values are an initial retransmission timeout (Rf)
of 500ms, a power of 2 exponential back-off (Delta = 1) and a retry
limit (Rl) of 3.
Berger, et al. Standards Track [Page 30]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
6.3. Retransmission Algorithm
After a sending node transmits a message containing a MESSAGE_ID
object with the ACK_Desired flag set, it should immediately schedule
a retransmission after Rf seconds. If a corresponding MESSAGE_ID_ACK
object is received earlier than Rf seconds, then retransmission
SHOULD be canceled. Otherwise, it will retransmit the message after
(1 + Delta)*Rf seconds. The staged retransmission will continue
until either an appropriate MESSAGE_ID_ACK object is received, or the
rapid retry limit, Rl, has been reached.
A sending node can use the following algorithm when transmitting a
message containing a MESSAGE_ID object with the ACK_Desired flag set:
Prior to initial transmission initialize: Rk = Rf and Rn = 0
while (Rn++ < Rl) {
transmit the message;
wake up after Rk seconds;
Rk = Rk * (1 + Delta);
}
/* acknowledged or no reply from receiver for too long: */ do any
needed clean up; exit;
Asynchronously, when a sending node receives a corresponding
MESSAGE_ID_ACK object, it will change the retry count, Rn, to Rl.
Note that the transmitting node does not advertise the use of the
described exponential back-off procedures via the TIME_VALUE object.
6.4. Performance Considerations
The use of exponential back-off retransmission is a new and
significant addition to RSVP. It will be important to review related
operations and performance experience before this document advances
to Draft Standard. It will be particularly important to review
experience with multicast, and any ACK implosion problems actually
encountered.
7. Acknowledgments
This document represents ideas and comments from the MPLS-TE design
team and participants in the RSVP Working Group's interim meeting.
Thanks to Bob Braden, Lixia Zhang, Fred Baker, Adrian Farrel, Roch
Guerin, Kireeti Kompella, David Mankins, Henning Schulzrinne, Andreas
Terzis, Lan Wang and Masanobu Yuhara for specific feedback on the
various versions of the document.
Berger, et al. Standards Track [Page 31]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
Portions of this work are based on work done by Masanobu Yuhara and
Mayumi Tomikawa [Yuhara].
8. Security Considerations
No new security issues are raised in this document. See [RFC2205]
for a general discussion on RSVP security issues.
9. References
[Pan] Pan, P., Schulzrinne, H., "Staged Refresh Timers for RSVP,"
Global Internet'97, Phoenix, AZ, November 1997.
http://www.cs.columbia.edu/~pingpan/papers/timergi.pdf
[MD5] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
April 1992.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S. and S.
Jamin , "Resource ReserVation Protocol -- Version 1
Functional Specification", RFC 2205, September 1997.
[Yuhara] Yuhara, M., and M Tomikawa, "RSVP Extensions for ID-based
Refreshes", Work in Progress.
Berger, et al. Standards Track [Page 32]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
10. Authors' Addresses
Lou Berger
LabN Consulting, LLC
Phone: +1 301 468 9228
EMail: lberger@labn.net
Der-Hwa Gan
Juniper Networks, Inc.
1194 N. Mathilda Avenue,
Sunnyvale, CA 94089
Voice: +1 408 745 2074
Email: dhg@juniper.net
George Swallow
Cisco Systems, Inc.
250 Apollo Drive
Chelmsford, MA 01824
Phone: +1 978 244 8143
EMail: swallow@cisco.com
Ping Pan
Juniper Networks, Inc.
1194 N. Mathilda Avenue,
Sunnyvale, CA 94089
Voice: +1 408 745 3704
Email: pingpan@juniper.net
Franco Tommasi
University of Lecce, Fac. Ingegneria
Via Monteroni 73100 Lecce, ITALY
EMail: franco.tommasi@unile.it
Simone Molendini
University of Lecce, Fac. Ingegneria
Via Monteroni 73100 Lecce, ITALY
EMail: molendini@ultra5.unile.it
Berger, et al. Standards Track [Page 33]
^L
RFC 2961 RSVP Refresh Overhead Reduction Extensions April 2001
11. Full Copyright Statement
Copyright (C) The Internet Society (2001). 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.
Berger, et al. Standards Track [Page 34]
^L
|