Hi Fan,

Coming back to this topic after a long time – been busy with lots of things.

Please see zzh2> below.

From: Yangfan (IP Standard) 
<shirley.yang...@huawei.com<mailto:shirley.yang...@huawei.com>>
Sent: Thursday, June 10, 2021 8:20 AM
To: Jeffrey (Zhaohui) Zhang <zzh...@juniper.net<mailto:zzh...@juniper.net>>; 
'Rishabh Parekh' <risha...@gmail.com<mailto:risha...@gmail.com>>
Cc: 'Arvind Venkateswaran (arvvenka)' 
<arvve...@cisco.com<mailto:arvve...@cisco.com>>; Gengxuesong (Geng Xuesong) 
<gengxues...@huawei.com<mailto:gengxues...@huawei.com>>; 'spring@ietf.org' 
<spring@ietf.org<mailto:spring@ietf.org>>; 'Rishabh Parekh (riparekh)' 
<ripar...@cisco.com<mailto:ripar...@cisco.com>>
Subject: 答复: [spring] 答复: Comments on draft-geng-spring-sr-redundancy-protection

[External Email. Be cautious of content]

Hi Jeff,
Please see the inline comments below starts with Fan2>>.

发件人: Jeffrey (Zhaohui) Zhang [mailto:zzh...@juniper.net]
发送时间: 2021年6月7日 22:47
收件人: Yangfan (IP Standard) 
<shirley.yang...@huawei.com<mailto:shirley.yang...@huawei.com>>; 'Rishabh 
Parekh' <risha...@gmail.com<mailto:risha...@gmail.com>>
抄送: 'Arvind Venkateswaran (arvvenka)' 
<arvve...@cisco.com<mailto:arvve...@cisco.com>>; Gengxuesong (Geng Xuesong) 
<gengxues...@huawei.com<mailto:gengxues...@huawei.com>>; 'spring@ietf.org' 
<spring@ietf.org<mailto:spring@ietf.org>>; 'Rishabh Parekh (riparekh)' 
<ripar...@cisco.com<mailto:ripar...@cisco.com>>
主题: RE: [spring] 答复: Comments on draft-geng-spring-sr-redundancy-protection

Hi Fan,

Please see zzh1> below.

From: Yangfan (IP Standard) 
<shirley.yang...@huawei.com<mailto:shirley.yang...@huawei.com>>
Sent: Friday, June 4, 2021 12:11 PM
To: Jeffrey (Zhaohui) Zhang <zzh...@juniper.net<mailto:zzh...@juniper.net>>; 
'Rishabh Parekh' <risha...@gmail.com<mailto:risha...@gmail.com>>
Cc: 'Arvind Venkateswaran (arvvenka)' 
<arvve...@cisco.com<mailto:arvve...@cisco.com>>; Gengxuesong (Geng Xuesong) 
<gengxues...@huawei.com<mailto:gengxues...@huawei.com>>; 'spring@ietf.org' 
<spring@ietf.org<mailto:spring@ietf.org>>; 'Rishabh Parekh (riparekh)' 
<ripar...@cisco.com<mailto:ripar...@cisco.com>>
Subject: 答复: [spring] 答复: Comments on draft-geng-spring-sr-redundancy-protection

[External Email. Be cautious of content]

Hi Jeff,
I am coming back. Please see inline comments starts with Fan1>>.

发件人: Jeffrey (Zhaohui) Zhang [mailto:zzh...@juniper.net]
发送时间: 2021年5月27日 4:26
收件人: Yangfan (IP Standard) 
<shirley.yang...@huawei.com<mailto:shirley.yang...@huawei.com>>; 'Rishabh 
Parekh' <risha...@gmail.com<mailto:risha...@gmail.com>>
抄送: 'Arvind Venkateswaran (arvvenka)' 
<arvve...@cisco.com<mailto:arvve...@cisco.com>>; Gengxuesong (Geng Xuesong) 
<gengxues...@huawei.com<mailto:gengxues...@huawei.com>>; 'spring@ietf.org' 
<spring@ietf.org<mailto:spring@ietf.org>>; 'Rishabh Parekh (riparekh)' 
<ripar...@cisco.com<mailto:ripar...@cisco.com>>
主题: RE: [spring] 答复: Comments on draft-geng-spring-sr-redundancy-protection

Hi Fan,

In this thread I’ll address another point that I deferred. I snipped unrelated 
text.



Zzh6> It’s important to distinguish between control plane and data plane. In 
data plane it is always a simple SID (replication or redundancy). In control 
plane (that sets up the replication/redundancy state on relevant nodes), it 
could be whatever.

Fan> I try to compare the two solutions redundancy protection and P2MP 
replication as follows, hope it can help the understandings.

Format: <solution> ,  <identifier of service> ,  <how it works>
<redundancy protection> , <Redundancy SID> ,  <service is identified by 
Red-SID, Red-SID triggers redundancy policy to assign candidate paths between 
redundancy node and merging node>
<P2MP replication> ,  <P2MP policy identifier (root-id, tree-id)> ,  <P2MP 
policy gives the tree structure of the P2MP service, replication segment is an 
atomic building block for packet replication and stays in root, bud and leaf>

Although each solution includes a SID and a SR-Policy, there are totally 
different mechanisms. I don’t think it is just a representation difference.


In your representation for Redundancy solution, you mentioned “candidate 
paths”. I would change it to “replication branches”, because “candidate paths” 
in SR policies have a different meaning.
Fan1>> Firstly, I don’t see much difference of candidate path either in SR 
policy or in Redundancy policy.

Basically, the redundancy policy would replicate incoming traffic and send them 
down to different paths.
Fan1>> Secondly, redundancy policy doesn’t specify the replication instruction, 
which is indicated by redundancy segment. Redundancy policy just extends SR 
policy to support more than one usable candidate path. Though it is not 
detailed explained in the draft, you can simply regard redundancy policy as an 
SR policy including two candidate paths with same preferences.

Zzh1> What does your “candidate path” mean exactly? Why do they have the same 
preference? With the CP concept in SR policies, only one of the CPs will be 
chosen and only one copy of the traffic will be sent out.
Fan2>> Yes, the above is correct according to current specification of SR 
policy. The target of redundancy policy is to give more than one paths to 
redundancy node to be encapsulated on the replicas. It can be indicated by 
different candidate paths, or even different segment lists in one candidate 
path. We can work on the details until the discussion of redundancy segment 
becomes clear.
Zzh2> OK now it’s clear – I thought you meant the actual branches for 
replication.
Zzh2> Couldn’t resist to say that it’s another thing that replication policy 
already provides 😊

No additional replication is done downstream and this corresponds to the 
“Ingress Replication” concept in multicast/p2mp.
Fan1>> in our design, the headend and endpoint of redundancy protection would 
be the redundancy node and merging node. In terms of your solution, downstream 
node would be the merging node. Of course you can put elimination behavior in 
the other nodes behind the node at which the packets from different path 
actually flow to and get together, but this is how you put the redundancy 
protection mechanism in your solution.
Zzh1> With the replication segment method, the elimination behavior does *not* 
have to another node behind the node where replicated packets will get together.

-----snip it from email in May 20--------
Zzh> The ingress will send packets with SL <A, R, M>. SID A gets the packet to 
A, who sees R and do the replication (R is not popped by A). D sees R in the SL 
and pops R (this is the replication segment behavior on a leaf). It then sees M 
and do the merging. Alternatively, A could pop R so D will see M directly and 
do the merging.
Fan2>> popping  R to process M may work in SR-MPLS, not SRv6.
if the merging node is the downstream node, section 2.2 SRv6 data plane of 
draft-~-replication-segment says,
“For a leaf node, the packet is decapsulated and the inner packet is forwarded 
as per local configuration. ”
It’s saying IPv6 +SRH header is removed when R SID is processed on downstream 
node (equals to merging node). Even though M SID is encapsulated in SID list, 
there is no opportunity to process it. Do I understand it correctly?

Zzh2> Assuming that the root of the redundancy/redundancy node puts on the 
extra header, then the merging node (which may or may not be the replication 
tree’s leaves) will decapsulate. It’s the merging function that does the 
decapsulation (if the redundancy function on the redundancy node puts on the 
extra header).

Zzh2> Thanks for quoting the text – it is unclear or misleading. Actually we 
discussed whether the extra header’s pushing/popping should be considered as 
part of the replication function or as part of the overlay function. The 
following is our current understanding:
Zzh2> The text you quoted above is actually not quite correct strictly 
speaking. It mixed the overlay service (e.g. MVPN) and the underlay service 
(SR-P2MP being the provider tunnel). The following is a better dissection of 
the things involved here:

  1.  A replication node does not do H.encaps for the purpose of replication.
  2.  The application (e.g. MVPN) on tunnel root will do H.encaps (for overlay 
function), but that is not related to Replication Segment.
  3.  A replication node (including the root) may do H.encaps to explicitly 
steer traffic to a downstream node. That is not related to replication segment 
either.
  4.  On a root, the two H.encaps in #2, #3 may be combined for optimization 
purpose (so that only one encapsulation is used)
  5.  On a leaf/bud node, for the local delivery copy the replication SID’s 
semantics is “look at next SID in SRH”. The next SID could be a SID with 
End.DT2/4/6 semantics (equivalent of MVPN/EVPN PMSI label in case of tunnel 
sharing). There may also not be a next SID (e.g. MVPN/EVPN w/o tunnel sharing 
across VPNs), and the semantics for the replication SID is then also 
End.DT2/4/6 but that semantics (including which table to use) is added to the 
replication SID because of MVPN/EVPN signaling and not inherent to replication 
segment.
Zzh2> The above points should be reflected in a future update of the draft, and 
you can see that the same would apply to redundancy situation as well (the 
redundancy/merging functionality can be considered as an overlay service that 
makes use of replication underlay service).

Zzh2> Thanks.
Zzh2> Jeffrey


For <identifier of service>, you used “redundancy SID” and “P2MP policy 
identifier” respectively. As I mentioned before, in the data plane both just 
use a SID. In the control plane (i.e., how the replication/redundancy segment 
is installed), the identifier could be anything for both solutions, including a 
SID.

For replication segment based solution, unless the replication is to more than 
two copies and done by a multi-level tree (node 1 replicating to node 2 and 3, 
and then node 2 replicating to node 4 and 5), then it is “Ingress Replication” 
and no different from the redundancy segment solution.

BTW, P2MP policy (with tree identification, candidate paths, set of leaves, 
etc.) are really just control plane information on the root. It does not give 
the tree structure either. Instead, the entire replication tree are just 
concatenated replication segments on root, leaves and intermediate replication 
nodes. The intermediate replication nodes are optional (i.e., Ingress 
Replication), and in that case there is no difference from the redundancy 
segment.

Fan1>> From data plane perspective, replication segment and redundancy segment 
share the replication instruction, differ from whether to encap FI and SN at 
the same time. I will leave this FI,SN adding discussion to another email 
thread.
Zzh1> whether to add FI/SN is just an additional item that can be added to the 
replication segment (when it is used for redundancy purpose).
However, from control plane perspective, two solutions are quite different on 
how redundancy protection service is provided. Since redundancy protection is 
more likely used in unicast scenario, (it can be used for multicast, but let’s 
leave it to a separate thread), it doesn’t make sense to extend BGP MVPN 
attribute for a unicast redundancy protection service.
Zzh1> There are two aspects when it comes to control plane.
Zzh1> a) setup of the redundancy/replication segment on the redundancy node. To 
me this is the same for both (the replication segment setup can be augmented 
with an “add FI/SN” semantics if necessary).
Zzh1> b) signal to the ingress node of the binding SID for redundancy purpose. 
To me this is also the same for both.
Again, I don’t argue the possibility of using replication segment and P2MP 
policy as one solution to provide redundancy protection. We provide our 
approach to achieve redundancy protection. Replication segment is just the 
second approach. But I don’t believe the saying that the approach A is the 
approach B. Actually, both of them can the solutions to provide redundancy 
protection. I even think we can collaborate on this topic. What do you think? ☺
Zzh1> I just don’t see there is a need to have a separate redundancy 
policy/segment because they’re almost identical - the replication 
policy/segment can provide what you need. This does not mean that we don’t need 
this draft-geng anymore. If I have convinced you, you only need to refer to the 
replication policy/segment drafts in draft-geng and we only need to augment the 
replication policy/segment with the function of adding FI/SN if we agree that 
is needed for some scenarios.

Fan2>> I’d like  to go deep to understand how replication segment can be used 
in both SR-MPLS and SRv6 data planes first. This process will also bring 
benefit on how to arrange the drafts finally.
Thanks.
Fan


Zzh1> Thanks.
Zzh1> Jeffrey

Regards,
Fan


Jeffrey


Juniper Business Use Only


Juniper Business Use Only


Juniper Business Use Only
_______________________________________________
spring mailing list
spring@ietf.org
https://www.ietf.org/mailman/listinfo/spring

Reply via email to