-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft-ietf-grow-bmp-tlv-ebit.xml
375 lines (344 loc) · 13.5 KB
/
draft-ietf-grow-bmp-tlv-ebit.xml
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
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY I-D.ietf-grow-bmp-peer-up SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-grow-bmp-peer-up.xml">
<!ENTITY I-D.ietf-grow-bmp-tlv SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-grow-bmp-tlv.xml">
<!ENTITY IANA_RM_CODE_4B_ASN "TBD1">
<!ENTITY IANA_RM_CODE_PATH_ID "TBD2">
<!ENTITY IANA_RM_CODE_MULTI_LABELS "TBD3">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-ietf-grow-bmp-tlv-ebit-06"
ipr="trust200902" submissionType="IETF"
updates="7854">
<front>
<title abbrev="BMP TLV EBIT">
Support for Enterprise-specific TLVs in the BGP Monitoring Protocol
</title>
<author fullname="Paolo Lucente" initials="P" surname="Lucente">
<organization>NTT</organization>
<address>
<postal>
<street>Veemweg 23</street>
<city>Barneveld</city>
<code>3771</code>
<region>MT</region>
<country>NL</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Yunan Gu" initials="Y" surname="Gu">
<organization>Huawei</organization>
<address>
<postal>
<street>Huawei Bld., No.156 Beiqing Rd.</street>
<city>Beijing</city>
<code>100095</code>
<region></region>
<country>China</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<date year="2024"/>
<area>General</area>
<workgroup>Global Routing Operations</workgroup>
<keyword>BGP</keyword>
<keyword>BMP</keyword>
<keyword>tlv</keyword>
<keyword>pen</keyword>
<abstract>
<t>
Message types defined by the BGP Monitoring Protocol (BMP) do provision
for data in TLV - Type, Length, Value - format, either in the shape of
a TLV message body, ie. Route Mirroring and Stats Reports, or optional
TLVs at the end of a BMP message, ie. Peer Up and Peer Down. However
the space for Type value is unique and governed by IANA. To allow the usage
of vendor-specific TLVs, a mechanism to define per-vendor Type values is
required. In this document we introduce an Enterprise Bit, or E-bit, for
such purpose.
</t>
</abstract>
</front>
<middle>
<section title="Introduction" anchor="Introduction">
<t>
The BGP Monitoring Protocol (BMP) is defined in <xref target="RFC7854">RFC 7854</xref>.
Support for TLV data is extended by <xref target="I-D.ietf-grow-bmp-tlv">TLV
support for BMP Route Monitoring and Peer Down Messages</xref>.
</t>
<t>
Vendors need the ability to define proprietary Information Elements for
various reasons such as delivering a pre-standard product. This aligns
with <xref target="RFC8126">Section 4.1 of</xref>.
</t>
<t>
Also for code point assignment to be eligible, an IETF document needs to
be adopted at a Working Group and in a stable condition. In this context
E-bit helps during early development phases where inter-operability among
vendors is tested and shipped to network operators for testing. This aligns
with <xref target="RFC8126">Section 4.2 of</xref>.
</t>
<t>
This document re-defines the format of IANA-registered TLVs in a
backward compatible manner with respect to previous documents and
existing IANA allocations; it also defines the format for newly
introduced enterprise-specific TLVs.
</t>
<t>
The concept of an E-bit, or Enterprise Bit, is not new. For example,
such mechanism is defined in <xref target="RFC7011">Section 3.2 of</xref>
for a very similar purpose.
</t>
</section>
<section title="Terminology">
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119">RFC 2119</xref>
<xref target="RFC8174">RFC 8174</xref> when, and only when, they
appear in all capitals, as shown here.
</t>
</section>
<section title="TLV encoding">
<section title="IANA-registered TLV encoding">
<t>
Existing TLV encodings are defined in <xref target="RFC7854">Section 4.4 of</xref>
(Information TLVs), <xref target="RFC7854">Section 4.7 of</xref> (Route Mirroring
TLVs), <xref target="RFC7854">Section 4.8 of</xref> (Stats Reports
TLVs), <xref target="I-D.ietf-grow-bmp-tlv">draft-ietf-grow-bmp-tlv</xref> and
<xref target="I-D.ietf-grow-bmp-peer-up">draft-ietf-grow-bmp-peer-up</xref> and
are updated as follows:
</t>
<t>
<list style="symbols">
<t>
1 bit to flag an enterprise-specific TLV, set to zero. The
TLV Type value must have been defined in <xref target="IANA-BMP">IANA-BMP</xref>
</t>
<t>
15 bits of TLV Type,
</t>
<t>
2 octets of TLV Value length,
</t>
<t>
0 or more octets of TLV Value.
</t>
</list>
</t>
<figure anchor="BMP-TLV-public-header" align="center">
<artwork align="center">
<![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E| Type | Length (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
</figure>
</section>
<section title="Enterprise-specific TLV encoding">
<t>
Enterprise-specific TLV encoding is defined as follows:
</t>
<t>
<list style="symbols">
<t>
1 bit to flag an enterprise-specific TLV, set to one
</t>
<t>
15 bits of TLV Type,
</t>
<t>
2 octets of TLV length. Comprising length of IANA PEN plus TLV value,
</t>
<t>
4 octets of IANA Private Enterprise Number <xref target="IANA-PEN">IANA-PEN</xref>
</t>
<t>
0 or more octets of TLV Value.
</t>
</list>
</t>
<figure anchor="BMP-TLV-enterprise-header" align="center">
<artwork align="center">
<![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E| Type | Length (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Enterprise number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
</figure>
<t>
In case of indexed TLVs, as defined by
<xref target="I-D.ietf-grow-bmp-tlv">TLV support for BMP Route
Monitoring and Peer Down Messages</xref>, the index value precedes
the Enterprise number.
</t>
<figure anchor="BMP-TLV-enterprise-index-header" align="center">
<artwork align="center">
<![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E| Type | Length (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Enterprise number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
</figure>
</section>
<section title="TLV encoding remarks">
<t>
The TLV encoding specified in this document applies to all existing
BMP Message Types and their namespaces defined in <xref target="RFC7854">RFC 7854</xref>,
<xref target="I-D.ietf-grow-bmp-tlv">TLV support for BMP Route
Monitoring and Peer Down Messages</xref> and
<xref target="I-D.ietf-grow-bmp-peer-up">BMP Peer Up Message
Namespace</xref>.
</t>
<t>
Stats Report messages are also encoded in a TLV-like fashion, as
documented in <xref target="RFC7854">Section 4.8 of</xref>. E-bit
does hence similarly apply to these messages too, with the most
relevant bit of Stat Type set to 1 in order to flag the presence
of a 4-bytes PEN field following Stat Len field and preeceding Stat
Data field, ie.:
</t>
<figure anchor="BMP-Stats-Report-enterprise--header" align="center">
<artwork align="center">
<![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E| Stat Type | Stat Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Enterprise number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Stat Data |
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
</figure>
<t>
While the proposed encoding is not per-se backward compatible, there
is no existing IANA-allocated Type value that makes use of the most
significant bit (which is being used in this document to define the
E-bit), except the experimental and reserved ones mentioned in
<xref target="RFC7854">Section 10.5 of</xref>,
<xref target="RFC7854">Section 10.6 of</xref> and
<xref target="RFC7854">Section 10.9 of</xref>. Of these, the
Experimental values are being suppressed in favor of using the E-bit
mechanism described in this document; the Reserved value is instead
excluded by the E-bit mechanism such that no PEN will be included
as part of the TLV.
</t>
<t>
Future BMP Message Types MUST make use of the TLV encoding defined
in this document.
</t>
<t>
This document refers to <xref target="I-D.ietf-grow-bmp-tlv">TLV
support for BMP Route Monitoring and Peer Down Messages</xref> for
any recommendations regarding the use of TLVs (ie. repetitions,
ordering, etc.).
</t>
</section>
</section>
<section title="Security Considerations">
<t>
This document does not add any additional security considerations.
</t>
</section>
<section title="Operational Considerations">
<t>
It is recommended that vendors making use of the Enterprise Bit
extension have a well-defined internal registry for privately
assigned code points that is also exposed to the public.
</t>
</section>
<section title="IANA Considerations">
<t>
The TLV Type values used by BMP are managed by IANA as are the
Private Enterprise Numbers used by enterprise-specific Type
values <xref target="IANA-PEN">IANA-PEN</xref>.
</t>
<t>
This document requests to remove the Experimental allocation from
BMP Initiation and Peer Up Information TLVs, BMP Termination Message
TLVs and BMP Route Mirroring TLVs registries as the equivalent action
(ie. expressing experimental values) will be instead performed as
described in this document, ie. by setting the E-bit and defining
the relevant PEN.
</t>
</section>
</middle>
<back>
<references title="Normative References">
&RFC2119;
&RFC8174;
<?rfc include="reference.RFC.8126.xml"?>
<?rfc include="reference.RFC.7854.xml"?>
&I-D.ietf-grow-bmp-peer-up;
&I-D.ietf-grow-bmp-tlv;
</references>
<references title="Informative References">
<?rfc include="reference.RFC.7011.xml"?>
<reference anchor="IANA-PEN" target="http://www.iana.org/assignments/enterprise-numbers/">
<front>
<title>
Private Enterprise Numbers
</title>
<author>
<organization>
IANA
</organization>
</author>
<date year="1982" />
</front>
</reference>
<reference anchor="IANA-BMP" target="https://www.iana.org/assignments/bmp-parameters/bmp-parameters.xhtml">
<front>
<title>
BGP Monitoring Protocol (BMP) Parameters
</title>
<author>
<organization>
IANA
</organization>
</author>
<date year="2016" />
</front>
</reference>
</references>
<section anchor="Acknowledgements" title="Acknowledgements" numbered="no">
<t>
The authors would like to thank Thomas Graf, Jeff Haas, Pierre Francois,
Camilo Cardona, Ahmed Elhassany and Luuk Hendriks for their valuable input.
</t>
</section>
</back>
</rfc>