@@ -100,12 +100,16 @@ Implementations that receive grease values are required to ignore them. More
100
100
background to this approach is given in {{Section 3.3 of ?VIABILITY=RFC9170}}.
101
101
This section provides concrete suggestions for its usage.
102
102
103
+ # # Catch-all Handling
104
+
103
105
It is assumed that endpoints should implement robust and broad extension
104
106
handling. A receiver or a parser implementation should not treat grease values
105
107
as individually special. Instead of identifying each grease value explicitly,
106
108
it is better to have a "catch all" mechanism that can handle receipt of unknown
107
109
extensions, whether grease values or not, gracefully or without error.
108
110
111
+ # # Use Unpredictable Grease Values
112
+
109
113
It is recommended that senders pick an unpredictable grease value to include in
110
114
relevant protocol elements. This ensures that receiver greasing requirements are
111
115
exercised. Using predictable grease values risks ossification. To increase the
@@ -115,11 +119,15 @@ protocol constraints. For instance, protocols that use 8-bit fields may find it
115
119
too costly to dedicate many grease values, while 32-bit or 64-bit fields are
116
120
likely to have no limitations.
117
121
122
+ # # Use Grease Values at Unpredictable Times
123
+
118
124
It is recommended that senders use grease values at unpredictable times or
119
125
sequence points during protocol interactions. This avoids receivers
120
126
unintentionally ossifying on the occurrence of greasing in the temporal or
121
127
spatial domain.
122
128
129
+ # # Defining and Registering Grease Value Ranges
130
+
123
131
It is recommended that large grease value sets are allocated in protocol
124
132
documents by defining a unique algorithm, to increase the chance that
125
133
receiver greasing requirements are exercised. However, the choice of algorithm
0 commit comments