-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAlvaro-BGP-SPF-Comments
2782 lines (1837 loc) · 106 KB
/
Alvaro-BGP-SPF-Comments
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
Hi Alvaro,
Thank you for your extensive review and comments. Now that the document
is back in the WG, we have couple things to discuss in the WG:
1. NLRI packing - Well it is almost implied, I think we need to
limit a BGP Update to a single NLRI and BGP-LS Attribute.
2. Initial synchronization - we need to discuss this in the draft
and potentially add an option to require this, such as the IS-IS
suppress adjacency option. I don't think we'd want to require
this as it would limit deployment.
3. NEXT_HOP requiremeent - We now say we are following RFC 4760.
However, we need to be sure we are consistent throughout.
4. Single session requirement for BGP-LS. Right now we don't
prevent this.
Also, given the sheer volume there are some easy one that we missed in
-13 and will add in -14
Please see replies inline.
Thanks,
Acee, Keyur, Victor, and other Authors
Dear authors:
Thank you for the work you've put so far into this document!
I believe that the protocol is underspecified, and there is a
significant amount of work still needed, which have resulted in a
longer than expected set of comments/questions [*].
I approached this document from the point of view of it defining a
*new* link-state protocol, one that borrows from existing work. I am
loosely defining "protocol" here as a set of rules for what happens
inside a specific AFI/SAFI that doesn't carry "traditional" BGP
routes, similar to BGP-LS, FlowSpec, etc. Specifically, I see BGP SPF
as the sum of the BGP base as transport + BGP-LS encodings + SPF-based
route calculation. When adding new components, something has to be
taken out. I then expected a discussion about which parts of the BGP
base are used/apply to BGP SPF, and which don't + a specification of
how the BGP-LS encodings are used, and the definition of new TLVs +
SPF details.
Instead, the document is written as an extension to BGP-LS. BGP-LS
also uses the BGP transport (as is!), but it has a set of assumptions
that are not in line with a link-state protocol. For example, rfc7752
is clear about the consumer-based distribution model, including that
"a BGP speaker MUST NOT accept updates from a consumer peer". More
importantly, rfc7752 considers BGP-LS as transporting opaque data
relevant only to the application, which is why there is no error
checking (beyond the length): it is not BGP-LS's job to verify that
the information is correct (or that it even makes sense). This
document doesn't address either of these issues, but it presents a
peering model (§2.3) where a controller (aka consumer) sends routes to
other peers. IOW, by extending BGP-LS we inherit the good and the
not-so-good.
I believe I have a good understanding of what you are doing with BGP
SPF. We need to make sure that the intent is reflected in the
specification. To start, the document needs a clear explanation of
what it is, a section(s) that explains what is being used from the
rfc4271/rfc7752, and what isn't. There are many questions that need
to be answered (see comments in-line and some more questions/comments
below [**]).
The authors don't really agree that this is a completely new link-state
protocol. We've added to clarify the relationship to both the BGP base
protocol and BGP-LS.
I haven't read draft-ietf-lsvr-applicability yet -- if some of the
answers are there, please point me to it. When I finish that document
I'll consider whether the documents need to be returned to the WG.
For now, I'll rely on the Shepherd to help in moving this document
forward.
The mail archive contains early requests to both idr/lsr for review,
but no answers. :-( I would like both of those WGs to (again) be
given the opportunity to comment -- we can do that as this document
addresses some of my concerns. [I'm putting this note here so we
don't forget.]
It is better that LSR and IDR review the updated version as the changes are
significant.
Thank you!!
Alvaro.
[*] This is a long review, and some mail clients (Outlook?) don't seem
to handle long messages well. Please take a look at the archive for
the full review; I will put a link in the datatracker:
https://datatracker.ietf.org/doc/draft-ietf-lsvr-bgp-spf/history/
[**]
It would be ideal for the document to include a "Summary of Operation"
section, similar to §3/rfc4271. This would also serve as a place to
point back at what applies and what doesn't.
We've added a "Document Overview" in section 1.3. This should suffice in giving
the reader a preview of what is coming.
(1) Use of the BGP Base (rfc4271)
- The well-known RIB structure from BGP (Adj-RIB-In, Loc-RIB, Adj-RIB-Out)
didn't quite make it into BGP SPF. It looks like the LSNDB may correspond
to the Adj-RIB-In, and there is a Local RIB. The non-existence of an
Adj-RIB-Out implies changes. [Note that it is obviously ok to not follow
the same structure -- what needs to be explained are the differences.]
Since we have completely replaced the base BGP decision process, we don't use these
terms.
- Related to the Adj-RIB-Out not existing is the very unnatural and forced
way in which the text tries to retrofit the new SPF mechanism into the BGP
Decision Process. Why are you trying to do that? Isn't it easier to simply
point out that the SPF replaces the Decision Process (§9.1.*). The
Update-Send Process (§9.2) is described in terms of the Adj-RIB-Out, so it
doesn't apply...the text already talks about the setting of the route
advertisement timers (from §9.2.1.1). The rest of §9.2.2, §9.3 and §9.4
don't seem to apply -- but do we need to replace them with anything? Please
be explicit.
We believe this is clear in the updated text.
- About the attributes... In §5.1 you mention that attributes that "would
influence the Decision process...are ignored".
What about other attributes, the ones that don't influence the Decision
Process? If all the information is encoded in the NLRI or carried in the
BGP-LS Attribute, does BGP SPF need any other attribute? Maybe requiring
that other attributes not to be included (especially the mandatory ones) is
too much, but can it be recommended? Given that BGP (and rfc7606) require
specific actions if the attributes are malformed, it would be bad if we
apply treat-as-withdraw because of an error in an attribute that is not
relevant in BGP SPF. [Note: we need to add this risk to the Security
Considerations.]
Note that if a recommendation to not include mandatory attributes is
present, then a note should be present related to this text in rfc7606:
d. If any of the well-known mandatory attributes are not present in
an UPDATE message, then "treat-as-withdraw" MUST be used. (Note
that [RFC4760] reclassifies NEXT_HOP as what is effectively
discretionary.)
We clarified the usage of the attributes in section 2. Error handling is covered in
section 7.
- Are there any cases that would result in a BGP SPF-specific session reset?
Does the NOTIFICATION message need new error codes/sub-codes?
Error handling is addressed in section 7.
- It seems that the FSM applies, are there any exceptions?
- rfc8212 Updates rfc4271, so it is part of the BGP Base. Even though that
RFC is intended at the use of BGP in the Internet, it doesn't specify any
exceptions. I would think that you don't want BGP SPF users to have to
configure policies (for eBGP connections). It is also important to clearly
define the concept of domain in the text.
This is defined in the terminology section.
- It seems that there is no concept of multiple flooding domains in BGP SPF.
Given the scenario of single-hop eBGP sessions, I'm assuming that if
multiple domains exist in the future they won't be determined by ASNs.
Right - single BGP SPF domain in the base version of the protocol.
- Route-reflectors are mentioned several times and in one of the deployment
models, but there is no such thing as a RR in BGP SPF: all nodes already
"reflect" all the routes -- it is part of the synchronization requirement of
a link-state protocol. You might need to redefine the terminology.
I guess we could come up with different terminology and are open to suggestions. We
still use the term route-reflector or controller in version 12.
- Optimal Route Reflection is also mentioned, but it cannot be realized
without loosing synchronization.
This is removed.
- Using a Confederation ID is mentioned, which seems ok. I don't see an
advantage/reason for having Confederations in a BGP SPF network. Is there
one?
Confederations are no longer applicable.
- §5 talks about outgoing policies. Is ORF a valid tool to set those policies?
(2) Use of the BGP-LS encodings.
- This document is effectively defining a new AFI/SAFI combination -- yes,
related to BGP-LS, but not the same. IOW, you can define which parts of
rfc7752 apply (if any), beyond the encodings.
We have added section 3 to address the relationship to BGP-LS.
- Note that rfc7752 treats the data as opaque, not offering any validation.
This document has to specify validation procedures for the TLVs used, along
with error correction actions, etc..
We've done this for the applicable BGP-LS TLVs.
- There are many BGP-LS TLVs defined, but only some will apply to BGP SPF. We
need the document to be very clear about that. Note that rfc7752 says that
"unrecognized types MUST be preserved and propagated". Please make it clear
that any type not required in this document is considered unrecognized and
SHOULD NOT be included.
We don't want to disallow TLVs which will be utilized in future extensions.
- I'm assuming that this document uses the same format as in Figure 5/rfc7752
for the Link-State NLRI (but with the new SAFI), right? Please explicitly
point to it.
- Which NLRI Types are supported? I guess only 1-4. What should the receiver
to if a different type is received?
We don't want to disallow NLRIs which will be utilized in future extensions.
- Which Protocol-ID should be used for the NLRI? §4 suggests 7 (BGP), but I
think that is not correct (see more there). What should the receiver do
with a different value?
We have clarified this in section 5.2.
- What should the Identifier (in the NLRI header) be set to?
We follow RFC 7752.
- In a "traditional" link-state protocol, there are a number of LSAs that
define a node: router LSA, network LSA, etc. Please describe how a node is
fully described in BGP SPF -- and how the different NLRIs are associated to
describe that one node. This description could serve as an introduction to
§4 (with forward references to where each part is discussed), or as a summary
to that section.
We have defined Self-Originated NLRI in section 6.1.1. It seems this is sufficient and
there is no single NLRI for a node.
Examples would be very nice.
- What must be included as a Node Descriptor? §4 talks about a possible
combination of different things (see comments/questions there). It looks
like a TLV with an ID is mandatory (see my note about TLV 515), what else?
This is described in section 5.2.
- What must be included in a Link Descriptor? Which TLVs are mandatory and
which ones are optional? There are some rules in §3.2.2/rfc7752, do they
apply? How should errors be handled in these TLVs?
- What must be included in a Prefix Descriptor? Is any TLV mandatory?
- When using the BGP-LS Attribute, which TLVs are mandatory and which are
optional for each NLRI?
This is included in throughout section 5.
- I haven't looked at the differences between rfc7752 and rfc7752bis and
whether they would have an impact of anything in this document. Please do
so.
We've incorporated the error handling from the RFC 7752 BIS document in section 7.
(3) Link-State
- How does BGP SPF guarantee that the nodes are synchronized? Other protocols
have DBDs/CSNP/etc. It seems easier in BGP SPF to not exchange all the
information with a peer than it is in traditional link-state protocols. Being
able to easily break synchronization is a vulnerability that should be
mentioned in the Security Considerations section.
Hmmm... Of your high-level meta-comments, this one is a good point. We will discuss how
to document this difference and whether an optional extension is needed.
[Line numbers from idnits.]
...
12 Shortest Path Routing Extensions for BGP Protocol
[major] So...the reason we have a separate WG is because this document
is defining a new link state protocol -- yes, it reuses many parts of
BGP, but it is not just an extension to BGP. Please use a title that
reflects this.
Changed draft name.
...
15 Abstract
17 Many Massively Scaled Data Centers (MSDCs) have converged on
18 simplified layer 3 routing. Furthermore, requirements for
19 operational simplicity have led many of these MSDCs to converge on
20 BGP as their single routing protocol for both their fabric routing
21 and their Data Center Interconnect (DCI) routing. This document
22 describes a solution which leverages BGP Link-State distribution and
23 the Shortest Path First (SPF) algorithm similar to Internal Gateway
24 Protocols (IGPs) such as OSPF.
[major] "This document describes a solution..." A solution to what?
As with the title, let's please position this specification for what
it is.
We've reworked the abstract.
...
101 1. Introduction
[] Too many claims without references. Are there a min set of BGP
RFCs that are applicable, as is?
Include a roadmap of the document. There are assumptions mentioned
without proper justification. If I didn't know what you're trying to
do I wouldn't know what you're talking about.
This is included in section 1.3.
103 Many Massively Scaled Data Centers (MSDCs) have converged on
104 simplified layer 3 routing. Furthermore, requirements for
105 operational simplicity have led many of these MSDCs to converge on
106 BGP [RFC4271] as their single routing protocol for both their fabric
107 routing and their Data Center Interconnect (DCI) routing.
108 Requirements and procedures for using BGP are described in [RFC7938].
109 This document describes an alternative solution which leverages BGP-
110 LS [RFC7752] and the Shortest Path First algorithm similar to
111 Internal Gateway Protocols (IGPs) such as OSPF [RFC2328].
[minor] The first part of the paragraph talks about using BGP and
requirements that are applicable to the solution described in rfc7938.
IOW, not applicable to this draft! Note that depending on rfc7938
would make it Normative -- I'm not sure what in that document, which
is generic, would apply here. Am I missing something?
RFC 7938 shouldn't be normative. We've clarified.
113 [RFC4271] defines the Decision Process that is used to select routes
114 for subsequent advertisement by applying the policies in the local
115 Policy Information Base (PIB) to the routes stored in its Adj-RIBs-
116 In. The output of the Decision Process is the set of routes that are
117 announced by a BGP speaker to its peers. These selected routes are
118 stored by a BGP speaker in the speaker's Adj-RIBs-Out according to
119 policy.
[] Direct copy from rfc4271...
And there is a reference.
121 [RFC7752] describes a mechanism by which link-state and TE
122 information can be collected from networks and shared with external
123 components using BGP. This is achieved by defining NLRI advertised
124 within the BGP-LS/BGP-LS-SPF AFI/SAFI. The BGP-LS extensions defined
125 in [RFC7752] makes use of the Decision Process defined in [RFC4271].
[major] s/ within the BGP-LS/BGP-LS-SPF AFI/SAFI./ using the BGP-LS AFI.
Changed to BGP-LS-SPF SAFI.
127 This document augments [RFC7752] by replacing its use of the existing
128 Decision Process. Rather than reusing the BGP-LS SAFI, the BGP-LS-
129 SPF SAFI is introduced to insure backward compatibility. The Phase 1
130 and 2 decision functions of the Decision Process are replaced with
131 the Shortest Path First (SPF) algorithm also known as the Dijkstra
132 algorithm. The Phase 3 decision function is also simplified since it
133 is no longer dependent on the previous phases. This solution avails
134 the benefits of both BGP and SPF-based IGPs. These include TCP based
135 flow-control, no periodic link-state refresh, and completely
136 incremental NLRI advertisement. These advantages can reduce the
137 overhead in MSDCs where there is a high degree of Equal Cost Multi-
138 Path (ECMPs) and the topology is very stable. Additionally, using an
139 SPF-based computation can support fast convergence and the
140 computation of Loop-Free Alternatives (LFAs) [RFC5286] in the event
141 of link failures. Furthermore, a BGP based solution lends itself to
142 multiple peering models including those incorporating route-
143 reflectors [RFC4456] or controllers.
[minor] "augments [RFC7752] by replacing" This sounds as if you're
extending the use of BGP-LS, when you're really defining a different
use for what is specified there. Maybe something along the lines of
"uses the TLV/NLRI defined in rfc7752" would make it clearer.
[minor] "BGP-LS-SPF SAFI is introduced to insure backward
compatibility" What does the new BGP-LS-SPF SAFI insure backwards
compatibility with? Again, you're taking what BGP-LS defined and
using a new SAFI to transport it. IOW, there are no changes to
rfc7752 and no reason to worry about backwards compatibility.
[minor] "The Phase 1 and 2 decision functions..." The first sentence
says that the Decision Process is replaced, so I fail to understand
why you want to decompose it into phases vs. simply replacing the
whole thing. I'll read further...
We've reorganized the document to describe the relationship to the base BGP
protocol and BGP-LS in separate sections.
[nit] "This solution avails..." Maybe start a new paragraph there.
Fixed.
[major] "support fast convergence and the computation of Loop-Free
Alternatives (LFAs) [RFC5286] in the event of link failures" Nice
claim, but there is no mention of LFAs anywhere in the specification
part of this document. rfc5286 may apply as-is to the SPF defined
here -- please include that information as part of the specification.
This is out of scope.
[nit] "route-reflectors [RFC4456] or controllers." From the client
point-of-view, is there a difference?
No.
145 Support for Multiple Topology Routing (MTR) as described in [RFC4915]
146 is an area for further study dependent on deployment requirements.
[minor] rfc4915 is MTR for OSPF. How does it apply to a BGP
transport? IOW, we don't seem to need this paragraph as is. It is
however important to mention which "base" link-state functionality is
not supported.
We have made it clear that MTR is out of scope.
148 1.1. BGP Shortest Path First (SPF) Motivation
150 Given that [RFC7938] already describes how BGP could be used as the
151 sole routing protocol in an MSDC, one might question the motivation
152 for defining an alternate BGP deployment model when a mature solution
153 exists. For both alternatives, BGP offers the operational benefits
154 of a single routing protocol. However, BGP SPF offers some unique
155 advantages above and beyond standard BGP distance-vector routing.
[major] This is another place where the solution here is contrasted
against rfc7938. Please keep in mind that we're defining a new
routing protocol -- one that could be used in place of "normal" BGP,
but also in place of other things. If anything, comparison with other
DC-oriented protocols/implementations might fit better in the
applicability draft. However, comparison is almost never a good
thing.
This is a Data Center alternative to RFC 7938. We can remove it if you insist but
we don't feel it is needed.
[minor] "For both alternatives, BGP offers the operational benefits of
a single routing protocol." Do you explain somewhere how to run both
modes at the same time? Mentioning a "single routing protocol" sounds
nice, but we really have two protocols potentially using the same
peering. I have questions/concerns later about that.
The draft makes it clear that this is by SAFI and the BGP-LS-SPF SAFI is
given priority.
157 A primary advantage is that all BGP speakers in the BGP SPF routing
158 domain will have a complete view of the topology. This will allow
159 support for ECMP, IP fast-reroute (e.g., Loop-Free Alternatives),
160 Shared Risk Link Groups (SRLGs), and other routing enhancements
161 without advertisement of addition BGP paths or other extensions. In
162 short, the advantages of an IGP such as OSPF [RFC2328] are availed in
163 BGP.
[] I think it would be a good idea to differentiate between a "BGP
speaker" (rfc4271) and a "BGP SPF speaker" (this document). Please
take a pass at normalizing the terminology. In this case s/BGP
speakers in the BGP SPF routing domain/BGP SPF speakers in the routing
domain
Good point. We've done this.
[nit] s/addition BGP paths/additional BGP paths
Fixed.
[minor] "addition BGP paths or other extensions" Did you mean to put
a reference to rfc7911? Assuming that's what you meant.
Added.
165 With the simplified BGP decision process as defined in Section 5.1,
166 NLRI changes can be disseminated throughout the BGP routing domain
167 much more rapidly (equivalent to IGPs with the proper
168 implementation).
[minor] "simplified BGP decision process as defined in Section 5.1"
§5.1 seems to talk about Phase 1, but 3 phases are mentioned a few
paragraphs above. As I mentioned then, you should consider talking
about replacing the whole Decision Process, not just parts of it, or
"simplifying" it.
We didn't change this in -12. It is still a BGP decision process.
[major] What is a "BGP routing domain"? It is used in several places,
but it is not defined anywhere.
It is now defined.
[minor] "much more rapidly (equivalent to IGPs with the proper
implementation)." Not only does this sound like a sales pitch
("Faster and Improved!"), but it caveats the claim to "IGPs with the
proper implementation". I would ask which are those, etc...but I
would prefer if you stick to the facts.
Given that the best-path calculation doesn't have to be done before advertisement,
we are sticking with this advantage.
170 Another primary advantage is a potential reduction in NLRI
171 advertisement. With standard BGP distance-vector routing, a single
172 link failure may impact 100s or 1000s prefixes and result in the
173 withdrawal or re-advertisement of the attendant NLRI. With BGP SPF,
174 only the BGP speakers corresponding to the link NLRI need withdraw
175 the corresponding BGP-LS Link NLRI. This advantage will contribute
176 to both faster convergence and better scaling.
[minor] "BGP-LS Link NLRI" To avoid confusion, should we be calling
this "BGP SPF Link NLRI"?
We fixed this throughout.
[] "This advantage will contribute to both faster convergence and
better scaling." Nice for a marketing brochure.
178 With controller and route-reflector peering models, BGP SPF
179 advertisement and distributed computation require a minimal number of
180 sessions and copies of the NLRI since only the latest version of the
181 NLRI from the originator is required. Given that verification of the
182 adjacencies is done outside of BGP (see Section 2), each BGP speaker
183 will only need as many sessions and copies of the NLRI as required
184 for redundancy (e.g., one for the SPF computation and another for
185 backup). Functions such as Optimized Route Reflection (ORR) are
186 supported without extension by virtue of the primary advantages.
187 Additionally, a controller could inject topology that is learned
188 outside the BGP routing domain.
[major] "Given that verification of the adjacencies is done outside of
BGP (see Section 2)..." §2 doesn't talk about "verification", but it
talks about "connection discovery and liveliness detection". Are you
referring to both, or just one part? It would be clearer if you were
explicit.
[minor] "Given that verification of the adjacencies is done outside of
BGP (see Section 2), each BGP speaker will only need as many sessions
and copies of the NLRI as required for redundancy (e.g., one for the
SPF computation and another for backup)."
Hmmm -- are you saying that the number of sessions and updates depends
on how the session is verified? I can't wait to get to §2!
Please suggest text for section 4.
[major] "Functions such as Optimized Route Reflection (ORR) are
supported without extension by virtue of the primary advantages."
draft-ietf-idr-bgp-optimal-route-reflection talks about modification
of the Decision Process, but you're replacing it in this document. I
mean to say that ORR (as defined in the draft) cannot be supported
with BGP SPF (because it doesn't support the Decision Process as
described in rfc4271). If you want to talk about the functionality,
please explain what it is and explicitly how BGP SPF could achieve a
similar result. Note that ORR, from a BGP SPF point of view, relies
on not advertising the full database to all the neighbors, resulting
in not being synchronized on purpose...which would go against the
"primary advantage...that all BGP speakers...will have a complete view
of the topology".
We've removed ORR.
190 Given that controllers are already consuming BGP-LS NLRI [RFC7752],
191 reusing for the BGP-LS SPF leverages the existing controller
192 implementations.
[major] At some point you need to be explicit about the relationship
between rfc7752 and this document. Can all the BGP-LS information be
reused?
[minor] "reusing for the BGP-LS SPF" Reusing what? The "BGP-LS SPF"
what? Are we calling the new protocol "BGP SPF" or "BGP-LS SPF"..?
We have added a section for this.
194 Another potential advantage of BGP SPF is that both IPv6 and IPv4 can
195 be supported in the same address family using the same topology.
196 Although not described in this version of the document, multi-
197 topology extensions can be used to support separate IPv4, IPv6,
198 unicast, and multicast topologies while sharing the same NLRI.
[minor] "IPv6 and IPv4 can be supported in the same address family"
This sounds as if you're calling IPv4/IPv6 the same AF...when you're
really referring to the transport of the information. Please put a
forward reference to where this claim is specified.
We will add this reference in the next revision.
[minor] "Although not described in this version of the document..."
If not described, please don't mention them without a reference.
These would be "future" documents.
200 Finally, the BGP SPF topology can be used as an underlay for other
201 BGP address families (using the existing model) and realize all the
202 above advantages. A simplified peering model using IPv6 link-local
203 addresses as next-hops can be deployed similar to [RFC5549].
[major] "similar to [RFC5549]" Similar? Please put a forward
reference to where this is specified/explained.
We've removed.
...
213 2. BGP Peering Models
215 Depending on the requirements, scaling, and capabilities of the BGP
216 speakers, various peering models are supported. The only requirement
217 is that all BGP speakers in the BGP SPF routing domain receive link-
218 state NLRI on a timely basis, run an SPF calculation, and update
219 their data plane appropriately. The content of the Link NLRI is
220 described in Section 4.2.
[major] "Depending on the requirements, scaling, and capabilities of
the BGP speakers, various peering models are supported." I hope that
the applicability draft talks about operational/deployment
considerations when selecting the peering model.
It is out of scope for this document.
[nit] "only requirement" More than one is listed.
Fixed.
[major] "receive link-state NLRI on a timely basis" Is "timely"
specified somewhere else?
222 2.1. BGP Single-Hop Peering on Network Node Connections
224 The simplest peering model is the one described in section 5.2.1 of
225 [RFC7938]. In this model, EBGP single-hop sessions are established
226 over direct point-to-point links interconnecting the SPF domain
227 nodes. For the purposes of BGP SPF, Link NLRI is only advertised if
228 a single-hop BGP session has been established and the Link-State/SPF
229 address family capability has been exchanged [RFC4790] on the
230 corresponding session. If the session goes down, the corresponding
231 Link NLRI will be withdrawn. Topologically, this would be equivalent
232 to the peering model in [RFC7938] where there is a BGP session on
233 every link in the data center switch fabric.
[major] This reference to rfc7938 makes it Normative. Is that what
you really want, to depend on the description of this peering model on
rfc7938? I would prefer to see the paragraph reworded to make rfc7938
an example.
For example>
In this model, EBGP single-hop sessions are established over direct
point-to-point links interconnecting the SPF domain nodes. Link NLRI is
only advertised if... Topologically, this would be similar to the
peering model in section 5.2.1 of [RFC7938] where there is a BGP session
on every link.
Fixed as suggested.
[minor] "address family capability has been exchanged [RFC4790]" A
forward reference to Section 3 would be better. BTW, what is rfc4790?
;-)
This was meant to be RFC 4760.
[nit] "For the purposes of BGP SPF..." Is redundant: this whole
document is talking about it.
Removed.
235 2.2. BGP Peering Between Directly Connected Network Nodes
237 In this model, BGP speakers peer with all directly connected network
238 nodes but the sessions may be multi-hop and the direct connection
239 discovery and liveliness detection for those connections are
240 independent of the BGP protocol. How this is accomplished is outside
241 the scope of this document. Consequently, there will be a single
242 session even if there are multiple direct connections between BGP
243 speakers. For the purposes of BGP SPF, Link NLRI is advertised as
244 long as a BGP session has been established, the Link-State/SPF
245 address family capability has been exchanged [RFC4790] and the
246 corresponding link is considered is up and considered operational.
247 This is much like the previous peering model only peering is on a
248 single loopback address and the switch fabric links can be
249 unnumbered. However, there will be the same number of sessions as
250 with the previous peering model unless there are parallel links
251 between switches in the fabric.
[nit] "How this is accomplished is outside the scope of this
document." This sentence is redundant...
Removed.
[minor] "Link NLRI is advertised as long as a BGP session has been
established...and the corresponding link is considered is up and
considered operational." Is there criteria somewhere about
considering the link operational? How is a BGP session paired with a
"corresponding link" -- are there cases when the session would be up
but the link won't?
Link discovery and liveliness are outside of BGP. The sessions used to advertise the
BGP-LS-SPF link-state is independent.
[major] The reference to rfc4790 is out of place.
Fixed to RFC 4760.
[minor] "unless there are parallel links" Related to the previous
comment: it seems to me that the statement about a "corresponding
link" being up/operational and the potential existence of multiple
links is somewhat at odds.
How so? There is separate BGP-LS-SPF state for each link.
[nit] s/link is considered is up and considered operational/link is
considered is up and operational
Fixed.
253 2.3. BGP Peering in Route-Reflector or Controller Topology
255 In this model, BGP speakers peer solely with one or more Route
256 Reflectors [RFC4456] or controllers. As in the previous model,
257 direct connection discovery and liveliness detection for those
258 connections are done outside the BGP protocol. More specifically,
259 the Liveliness detection is done using BFD protocol described in
260 [RFC5880]. For the purposes of BGP SPF, Link NLRI is advertised as
261 long as the corresponding link is up and considered operational.
[minor] "direct connection discovery" I would assume that most of the
connections to a RR are not direct.
Again, the BGP-LS-SPF link-state and the sessions with the controller or RR are
indenpendent.
[major] "Liveliness detection is done using BFD" Is this a
requirement? Just like any other BGP session, BFD can be used, but it
doesn't have to, right? If not required, please word this sentence
with BFD as an example.
Fixed.
[nit] s/using BFD protocol/using the BFD protocol
Fixed.
[nit] "...Link NLRI is advertised as long as the corresponding link is
up and considered operational." The other sub-sections also mentioned
that the BGP session had to be established and the capability
exchanged, but not here. Why? To be honest, I think that mentioning
all of it (session up, capability exchanged and link up) is obvious
and not needed.
We are not establishing BGP sessions on all the links.
263 This peering model, known as sparse peering, allows for many fewer
264 BGP sessions and, consequently, instances of the same NLRI received
265 from multiple peers. It is discussed in greater detail in
266 [I-D.ietf-lsvr-applicability].
[nit] s/many fewer/fewer
Fixed.
[major] Isn't there greater risk in delaying information? Maybe I
need to go read the other document...
This is topology independent and, in any case, it will be delayed less than with
base BGP given that it not required to run the best-path prior to readvertising the NLRI.
268 3. BGP-LS Shortest Path Routing (SPF) SAFI
270 In order to replace the Phase 1 and 2 decision functions of the
271 existing Decision Process with an SPF-based Decision Process and
272 streamline the Phase 3 decision functions in a backward compatible
273 manner, this draft introduces the BGP-LS-SFP SAFI for BGP-LS SPF
274 operation. The BGP-LS-SPF (AFI 16388 / SAFI TBD1) [RFC4790] is
275 allocated by IANA as specified in the Section 6. A BGP speaker using
276 the BGP-LS SPF extensions described herein MUST exchange the AFI/SAFI
277 using Multiprotocol Extensions Capability Code [RFC4760] with other
278 BGP speakers in the SPF routing domain.
[minor] "replace the Phase 1 and 2...and streamline the Phase 3"
Again, aren't we replacing the whole Decision Process?
[minor] "Phase 3 decision functions in a backward compatible manner"
Again, with what?
This is clarified.
[major] "SAFI TBD1" Aren't there implementations already? What SAFI
value are they using, a private one?
Fixed all references.
[major] The reference to rfc4790 is completely out of place.
This is removed.
[]
OLD>
A BGP speaker using the BGP-LS SPF extensions described herein MUST
exchange the AFI/SAFI using Multiprotocol Extensions Capability Code
[RFC4760] with other BGP speakers in the SPF routing domain.
NEW>
In order for two BGP speakers to exchange BGP SPF NLRI, they MUST exchange
the Multiprotocol Extensions Capability [rfc5492] [rfc4760] to ensure that
they are both capable of properly processing such NLRI. This is done with
AFI 16388 / SAFI TBDx for BGP-LS-SPF.
Suggested text incorporated.
[major] Can the BGP SPF session also support other AFI/SAFI pairs? If
so, what are the implications/limitations because of the peering
models. Should this document (similar to rfc7752bis)
recommend/require the isolation of BGP SPF in it's own BGP session?
Why/why not? IMHO, it should be required.
We didn't cover this in the -12 version.
280 4. Extensions to BGP-LS
[] Are we extending BGP-LS or just using parts of it?
Section 5 in the new version.
282 [RFC7752] describes a mechanism by which link-state and TE
283 information can be collected from networks and shared with external
284 components using BGP protocol. It describes both the definition of
285 BGP-LS NLRI that describes links, nodes, and prefixes comprising IGP
286 link-state information and the definition of a BGP path attribute
287 (BGP-LS attribute) that carries link, node, and prefix properties and
288 attributes, such as the link and prefix metric or auxiliary Router-
289 IDs of nodes, etc.
[nit] s/using BGP protocol/using the BGP protocol
Fixed.
[major] This document reuses the BGP-LS Attribute. However, rfc7752
says that it "MUST be ignored for all other address families". My
interpretation of that text is that it was not intended to be specific
to the BGP-LS AFI, but the AFI/SAFI pairs defined there. This
interpretation may be too strict -- please include a note related to
why it is ok to reuse the BGP-LS Attribute here.
The premise of the protocol and the WG is that it is reused. We are using the BGP-LS
AF but have a new SAFI. Hence, we don't violate RFC 7752.
291 The BGP protocol will be used in the Protocol-ID field specified in
292 table 1 of [I-D.ietf-idr-bgpls-segment-routing-epe]. The local and
293 remote node descriptors for all NLRI will be the BGP Router-ID (TLV
294 516) and either the AS Number (TLV 512) [RFC7752] or the BGP
295 Confederation Member (TLV 517) [RFC8402]. However, if the BGP
296 Router-ID is known to be unique within the BGP Routing domain, it can
297 be used as the sole descriptor.
[major] "The BGP protocol will be used in the Protocol-ID field
specified in table 1 of [I-D.ietf-idr-bgpls-segment-routing-epe]."
Assuming that you mean that the source Protocol-ID will be 7... Why?
BGP SPF is propagating information about the local node, why is the
source protocol not set to Direct? Note that the information
advertised doesn't come from a different protocol.
We fixed and removed the reference.
>From rfc7752: "direct access to interface information and wants to
advertise a local link, then the Protocol-ID 'Direct' SHOULD be used."
We fixed and removed the reference.
[minor] "The local and remote node descriptors for all NLRI..." I'm
assuming you're talking about the Local Node Descriptors and Remote
Node Descriptors fields, right? Please be specific.
This is specified with each type of NLRI.
[major] Incorrect references. s/BGP Router-ID (TLV
516)...[RFC8402]/BGP Router-ID (TLV 516)
[I-D.ietf-idr-bgpls-segment-routing-epe], and either the AS Number
(TLV 512) [RFC7752] or the BGP Confederation Member (TLV 517)
[I-D.ietf-idr-bgpls-segment-routing-epe]
Fixed or removed references.
[major] Even if it may be obvious to you, please specify when to use
TLV 512 and when to use TLV 517.
draft-ietf-idr-bgpls-segment-routing-epe requires the use of TLV 512
all the time (and include in it the Confederation ASN, if applicable)
-- is there a reason not to follow the same recommendation?
We're only using TLV 512 now.
[minor] s/BGP Router ID/BGP Identifier
That's what rfc6286 uses. Note that the TLV name is ok.
We now use BGP Identifier throughout.
[major] "if the BGP Router-ID is known to be unique within the BGP
Routing domain" How? Is this a configuration/runtime decision?
rfc6286 already required that the BGP Identifier be unique within an
AS.
[major] "...will be used...will be...can be used..." Should any of
this be Normative language? I prefer to be explicit if these are
requirements.
[major] Related... Besides the language not being tight enough, there
are too many options: 516 + ((512 OR 517) OR nothing). How does the
receiver know if what it got (say only TLV 516, for example) is what
is should have received?
We've clarified this.
[major] rfc7752 classifies the IGP Router-ID TLV (515) as mandatory.