Hi Kaliraj,

Thank you for reviewing the BGP CAR draft and your comments. I am top posting 
my responses for better readability since the comments were quite long ☺

1.
BGP CAR extends existing BGP-LU flat hop-by-hop routing semantics by adding 
color-awareness to the NLRI. This approach addresses the requirement for 
diverse color-aware paths using the simplest and most efficient design.

We find this simplicity beneficial both for an implementation and more 
importantly for deployment.

2.
We don’t see a need for using L3VPN semantics with RD/RT and import/export at 
every underlay hop.

While using RD may have been a convenience as you stated, it brings unnecessary 
complexity and limitations.

A good example is the inability to achieve multipathing at an ingress BR (e.g., 
ABR3) within the local domain when two egress ABRs originate BGP routes for a 
PE with different RDs. This leads to slower traffic convergence since an egress 
ABR failure (e.g., ABR1) will need to be propagated across the domains all the 
way to an ingress PE before that path stops getting used. It also causes 
unnecessary churn across multiple domains. (See simplified topology below)


                                              _ _                         --- 
ABR1 ---
                                 PE1 –( _ _  ) --- ABR3 --|                    
|------- PE2
                                                                            --- 
ABR2 ---

The CAR proposal does not have this limitation.

3.
From your comments, there appears to be a basic misunderstanding of the CAR 
proposal and the presentation.

We refer to the solution architecture described in 
[draft-ietf-spring-segment-routing-policy] as the deployed SR-TE solution. It 
specifies a pull model <section 8.5, and also 5.2> for a PE (policy head-end) 
to query SR-PCE and get a path with label-stack or SID-list in response. This 
avoids the PE needing to learn any state for all remote PEs by default.

You seem to assume a narrow reference to [ietf-idr-segment-routing-te-policy] 
which is not correct. The BGP-TE SAFI defined there is simply a means to enable 
a controller to signal a path for a policy to a specific SR policy headend 
using BGP instead of PCEP (see Section 2.3 of 
[draft-ietf-spring-segment-routing-policy]).

BGP CAR is regular BGP distribution for hop-by-hop routing (ala BGP-LU), but 
with color/intent-awareness. However, the data model defined for BGP CAR is 
inherently consistent with the one defined for SR-policy regardless of protocol.

4.
Mixing key and non-key values in BGP NLRI is not new, it’s been there since 
RFC3107 (label/label-stack) at least. Other SAFIs have had this too, for 
example, EVPN. There are cases of both fixed and variable values.

In the CAR proposal, we added structured TLVs to support multiple values and 
extensibility, instead of adding ad-hoc definitions and overloading of fields. 
It reduces complexity and provides for consistent handling.

That said, as I mentioned during the presentation, we have received suggestions 
for alternative encoding, and are evaluating them.

5.
Inherently, there is a variable degree of packing with BGP updates. That does 
not mean one should break it by default.

Similarly, just because we are being fore sighted by defining an extensible 
NLRI does not mean that it will invariably lead to a worst-case scenario ☺

Any extensions, such as new route-types that are proposed will go through WG 
review which should ensure proper gatekeeping. Again, there is precedence for 
this with other SAFIs.

And thank you for acknowledging that having route-types is acceptable.

6.
The CAR proposal does support domains with different color diversity. The 
Appendix describes a few examples.

7.
I will defer responding to the specific use-case and filtering comments since 
they are not yet specified in the draft. It will be much easier to discuss once 
we post them. Just a quick comment that the proposal does not at all preclude 
supporting anycast use-cases.

Thank you again for your patient review of the proposal and your feedback.

Regards,
-Dhananjaya






Hi CAR authors,



Thanks for the presentations in IDR and BESS meetings at IETF-110 last week.



We could not discuss in detail during the session because of time constraints. 
So

sharing my comments to the mailing lists.



Starting with follow-up on what Ketan mentioned in the IDR meetecho chat,

regarding SRTE is pull model vs CAR is push model:



I wanted to clarify, that may not be accurate. SRTE is also push model. PCE

provides the ‘pull’ part, which SRTE responds to. So, I think the question

Linda was alluding to remains.



viz: Why do we need another SRTE like family, when we have SRTE already?



Further, following are my own thoughts on the CAR encoding proposal, and 
challenges:



1/ The claim on better packing, and NLRI extensibility:



IMHO, micro-optimizing the NLRI wanting to support better packing introduces 
complexity in

a different dimension. Mixing key and non-key values in the NLRI increases 
implementation

complexity and hampers debuggability.



More-over, the claim of packing goes away when attributes like AIGP need to be 
carried in the

CAR routes. Because AIGP value may be different for different EP:Color NLRIs, 
those cannot be

packed.



One could suggest to put AIGP like attributes also into the NLRI to support 
better packing.

But you can easily see where this leads us. Having per-NLRI attributes leads us 
to the notion

of having “zero packing”. Because now everything is per-prefix. The SID, label, 
SRv6-SID,

other attributes. Etc..



About carrying SRv6 SIDs per NLRI: not being able to share the same SRv6 SID 
for different EP:C

NLRIs (i.e. per-prefix label/sid) may also be inefficient, it may cause huge 
size BGP updates,

which may increase Control plane convergence time.



So, we need to be cautious. Having a kitchen sink NLRI that can have “anything” 
could become a

reason to abuse the protocol in unforeseeable ways. IMHO, it is OK for a BGP 
family to have a

typed NLRI as long as it avoids non-key fields.



2/ using Color in the NLRI as both “Identifier/Distinguisher” as well as the 
“Route-Target” equivalent.



This tight-coupling has the problem that we cannot form Venn diagram of Colors 
to support cases,

where core-network has more colors than access networks. Have the authors 
considered such use-cases?



This also has the problem of not being able to strip color out, to do 
path-selection on EP alone,

as is possible when using RD like distinguisher. When an Anycast EP-address is 
present in multiple

domains, that don’t agree on the same color-namespace, such problems may become 
evident. Albeit a

corner-case, not impossible to conceive in real world.



Also, it is worth noting that IDR has seen similar proposal in the past (BGP 
LCU from Juniper) which

was not pursued further after self reflection on such considerations.



3/ Claim on wide SRTE deployment experience.



I would like to note that, SRTE has so far been used as a single BGP-hop 
family, between

controller and BGP-speaker. And it has no deployment experience doing hop by 
hop readvertisement

and carrying forwarding state thru the inter-domain networks. So applicability 
of ‘SRTE

deployment experience’ in inter-domain BGP networks is questionable.



Comparing it to L3VPN/LU, which CT derives of – it is widely deployed in such a 
role in inter-domain networks.

Authors of CT recognize the scaling challenges that Seamless-MPLS networks see 
today on the transport-layer.

And have proposed multiple ways on how that can be dealt with. Some of those 
mechanisms not only help CT,

but existing LU deployments as-well.



To me, re-using existing functionality, and start improving on the scaling 
challenges seems like a better

approach, than re-inventing existing mechanisms, making them work functionally 
and then coming to the scaling

part.



4/ Filter routes vs CAR routes.



Mechanisms of the Filter-routes is not clearly described yet in the draft.



But taking a guess, it could be either



  *   a new route-type in the same family? (more likely)
  *   OR, uses RTC family routes to provide filtering for CAR routes



If Filter routes are a separate RouteType in the same CAR family,



  Please note that the Filter-routes need to be propagated in the opposite 
direction

  as the CAR transport-advertisements.



  And learning from RTC mechanisms, the initial transport-route-advertisements 
may need to wait for

  EOR of Filter-routes. If those are just different route-types in same NLRI, 
such EOR based

  mechanisms cannot be employed, unless we introduce a per-route-type EOR 
(EORT).



  This also means that the rules for dealing with each route-type needs to be 
specified separately,

  In essence each route-type becomes a new family equivalent, with its own 
distinct needs and rules.

  This looks difficult to comprehend, implement, troubleshoot. Imagine 
specifying both RTC and VPN

  procedures in same bgp-family, carrying them in same RIBs.



 This is just a thought experiment on why putting many different 
functionalities in the same family as

  different route-types may not necessarily make things ‘simple’.



  Instead, following the age old principle of “doing one functionality well”. 
That keeps things simple, IMHO.



If Filter-routes are just RTC family routes working on CAR routes,



  That could be made to work for the case where the LCM community exists on the 
route, but LCM community

  doesn’t always exist on the route. It is only a special case. So it may not 
work for the typical cases.





Finally, I feel the CAR draft proposes enough changes to basics of BGP, how BGP 
NLRI encoding is done,

and is basically a Transport-layer family which intends to provide common 
infrastructure that is used by

by all BGP Service-families.



So it may be more suitable for review by the IDR WG which deals with common 
infrastructure pieces of BGP,

than the BESS WG which deals with BGP services. Request the WG chairs to 
consider this.



Thanks,

Kaliraj


Juniper Business Use Only
_______________________________________________
BESS mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/bess

Reply via email to