Subject: [spring] USD/USP question in draft-ietf-spring-srv6-network-programming-06.txt

From: "Wang, Weibin (NSB - CN/Shanghai)" <[email-masked]>
Date: Sun, 15 Dec 2019 02:08:38 +0000

Hi Pablo:

After the 2 context assumption in previous version of this draft,  "we assume that there is no other extension header than the SRH."  and  "We assume
   that the SRH may be present multiple times inside each packet", are removed in this last draft, I feel a bit confusion on USD SID, as well as combination of USD & USP.

First, within the content of this last draft, the word "Further on" marked red in the following pseudocode in section "4.16.3" is hard to understand if the packet being processed has other EH embed between SRH and Upper-layer header, such as AH or other EH, then the processing control of this packet will be passed to normal IPv6 module from current SRH processing module in SR-Node, so my question is : Can its control after completing AH processing (for example)  be back to SRH module (or call it pseudocode module) to proceed the next header like "upper-lay header type ==41 or 4".
Or, if not, Did you created a new EH processing protocol stack instance in parallel to normal IPv6 module within the scope of SRH processing in SR-node.

4.16.3.  USD: Ultimate Segment Decapsulation

S02.   If (Segments Left == 0) {
   S03.      Skip the SRH processing and proceed to the next header
   S04.   }

Further on, the Upper-layer header processing of the End, End.X and
   End.T behaviors are modified as follows:

   End:
   S01. If (Upper-layer Header type == 41 || 4) {
   S02.    Remove the outer IPv6 Header with all its extension headers
   S03.    Submit the packet to the egress IP FIB lookup and
              transmission to the new destination
   S04. } Else {
   S05.    Send an ICMP Parameter Problem message to the Source Address
              Code 4 (SR Upper-layer Header Error),
              Pointer set to the offset of the upper-layer header.
              Interrupt packet processing and discard the packet.

   S06. }

>From my understanding, the all processing action about specific SID must be completed successively. That is to say, upon USD, the upper-layer header (type 41 or 4) must be followed the SRH header being processed currently, or second SRH following the same rule (of course, the draft not considering 2 or more successive SRHs).

Second, the mixed SIDs function with combination of USD and USP (even PSP&USD&USP), I think, it is easy to understand when the two assumption above exist, but now I think it isn't clear if you only provide the following sentence in this draft, i.e.  "if ... else..." statement:
"An implementation that supports the USD flavor in conjunction with
   the USP flavor MAY optimize the packet processing by first looking
   whether the conditions for the USD flavor are met, in which case it
   can proceed with USD processing else do USP processing."
This confusion is also described in my another mail. Of course, if the first question is addressed then this confusion does not exist.

By the way, is it really no different in text description before and after the two context assumption above removed?

Cheers !

WANG Weibin

---

From: Gyan Mishra <[email-masked]>
Date: Sun, 15 Dec 2019 02:06:33 -0500

Hi Wang

I have a question regarding the PSP, USP and USD sections I pasted below.

I just sent an email to Spring WG related to PSP and technically why that
is necessary as that is a legacy concept that has parity to MPLS but is not
used today due to QOS issues.  Please see that email related to that topic.

In the PSP section can If we have to keep PSP can we add verbiage that
states that PSP removal of the SRH header occurs on the Penultimate egress
P node.

In the USP section can we also add that all remaining SRH present in the
packet are popped on the egress PE ultimate node.

In looking at these 3 SID functions the PSP and USP pop the EH and the USP
removes the 6in6 encapsulation so that the other end.x dt4 dt6 etc can pop
the services L3vpn headers.

Why can’t the USD 6in6 encapsulation removal be done on with the USP SID?

Why does the USP and USD SID have to be separate?

4.16.1 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.1>.
PSP: Penultimate Segment Pop of the SRH

   The SRH processing of the End, End.X and End.T behaviors are
   modified: after the instruction "S14.  Update IPv6 DA with Segment
   List[Segments Left]" is executed, the following instructions must be
   executed as well:

   S14.1.   If (updated SL == 0) {
   S14.2.      Pop the SRH
   S14.3.   }
4.16.2 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.2>.
USP: Ultimate Segment Pop of the SRH

   The SRH processing of the End, End.X and End.T behaviors are
   modified: the instructions S02-S04 are substituted by the following
   ones:

   S03.       Pop the SRH
   S04.   }

4.16.3 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.3>.
USD: Ultimate Segment Decapsulation

   The SRH processing of the End, End.X and End.T behaviors are
   modified: the instructions S02-S04 are substituted by the following
   ones:

Kind regards,

Gyan

On Sat, Dec 14, 2019 at 9:08 PM Wang, Weibin (NSB - CN/Shanghai) <
[email-masked]> wrote:

> Hi Pablo:
>
>
>
> After the 2 context assumption in previous version of this draft,  “we
> assume that there is no other extension header than the SRH.”  and  “We
> assume
>
>    that the SRH may be present multiple times inside each packet”, are
> removed in this last draft, I feel a bit confusion on USD SID, as well as
> combination of USD & USP.
>
>
>
> First, within the content of this last draft, the word “Further on” marked
> red in the following pseudocode in section “4.16.3” is hard to understand
> if the packet being processed has other EH embed between SRH and
> Upper-layer header, such as AH or other EH, then the processing control of
> this packet will be passed to normal IPv6 module from current SRH
> processing module in SR-Node, so my question is : Can its control after
> completing AH processing (for example)  be back to SRH module (or call it
> pseudocode module) to proceed the next header like “upper-lay header type
> ==41 or 4”.
>
> Or, if not, Did you created a new EH processing protocol stack instance in
> parallel to normal IPv6 module within the scope of SRH processing in
> SR-node.
>
>
>
> From my understanding, the all processing action about specific SID must
> be completed successively. That is to say, upon USD, the upper-layer header
> (type 41 or 4) must be followed the SRH header being processed currently,
> or second SRH following the same rule (of course, the draft not considering
> 2 or more successive SRHs).
>
>
>
> Second, the mixed SIDs function with combination of USD and USP (even
> PSP&USD&USP), I think, it is easy to understand when the two assumption
> above exist, but now I think it isn’t clear if you only provide the
> following sentence in this draft, i.e.  “if … else…” statement:
>
> “An implementation that supports the USD flavor in conjunction with
>
>    can proceed with USD processing else do USP processing.”
>
> This confusion is also described in my another mail. Of course, if the
> first question is addressed then this confusion does not exist.
>
>
>
> By the way, is it really no different in text description before and after
> the two context assumption above removed?
>
>
>
>
>
> *Cheers !*
>
>
>
> *WANG Weibin*
> _______________________________________________
> spring mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/spring
>
-- 

Gyan S. Mishra

IT Network Engineering & Technology

Verizon Communications Inc. (VZ)

13101 Columbia Pike FDC1 3rd Floor

Silver Spring, MD 20904

United States

Phone: 301 502-1347

Email: [email-masked]

www.linkedin.com/in/networking-technologies-consultant

---

From: Gyan Mishra <[email-masked]>
Date: Sun, 15 Dec 2019 02:26:22 -0500

Hi Wang & Pablo & Spring Authors,

Had another question?

These 4 sections.  Trying to understand the difference between end.dx4
end.dx6 and end.dt4 and end.dt6.  They both seem very similar.  One says
xconnect but other has v4 v6 lookup but for both you have to signal  L3 vpn
services sid.  Not sure why both SIDs dx dt Sid function why they cannot be
combined.

I noticed this difference below that the dx4 dt4 account for the global
table scenario where the PE-CE is native IPv4 or IPv6.  In the MPLS world
that use case is very different in that there is not any L3 vpn label and
do the label stack only had a single topmost label.  Also in the MPLS
scenario with IPv6 global table PE-CE with a IPv4 core you require BGP -LU
labeled unicast “send label” to label all the IPv6 prefixed tunneled over
IPv4.   Since that scenario is very different with global table does it
make sense to have a separate End.x variant for global table for both IPv4
and IPv6.

   Note that an End.DT6 may be defined for the main IPv6 table in which
   case and End.DT6 supports the equivalent of an IPv6inIPv6
   decapsulation (without VPN/tenant implication).

     4.4 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.4>.
End.DX6: Decapsulation and IPv6 cross-connect . . . . . .  12
<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#page-12>
     4.5 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.5>.
End.DX4: Decapsulation and IPv4 cross-connect . . . . . .  13
<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#page-13>
     4.6 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.6>.
End.DT6: Decapsulation and specific IPv6 table lookup . .  14
<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#page-14>
     4.7 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.7>.
End.DT4: Decapsulation and specific IPv4 table lookup . .  15
<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#page-15>

Also I was trying to understand end.dt46.

So if the PE-CE edge is dual stacked anhas both v4 and v6 you have a
VRF tenant v4 and v6 separate peers signaled via L3 vpn services TLV.
So why do you need this end.dt46 sid

4.8 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.8>.
End.DT46: Decapsulation and specific IP table lookup  . .  16
<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#page-16>

Kind Regards,

Gyan

On Sun, Dec 15, 2019 at 2:06 AM Gyan Mishra <[email-masked]> wrote:

> 4.16.1 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.1>.  PSP: Penultimate Segment Pop of the SRH
>
> 4.16.2 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.2>.  USP: Ultimate Segment Pop of the SRH
>
> 4.16.3 <https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.3>.  USD: Ultimate Segment Decapsulation
>
>
>> First, within the content of this last draft, the word “Further on”
>> marked red in the following pseudocode in section “4.16.3” is hard to
>> understand if the packet being processed has other EH embed between SRH and
>> Or, if not, Did you created a new EH processing protocol stack instance
>> in parallel to normal IPv6 module within the scope of SRH processing in
>> SR-node.
>>
>>
>>
>> By the way, is it really no different in text description before and
>> after the two context assumption above removed?
>>
>>
>>
>>
>>
>> *Cheers !*
>>
>>
>>
>> *WANG Weibin*

Gyan S. Mishra

Silver Spring, MD 20904

United States

Phone: 301 502-1347

---

From: "Wang, Weibin (NSB - CN/Shanghai)" <[email-masked]>
Date: Sun, 15 Dec 2019 07:54:26 +0000

Hi Gyan:
Pls see more inline;

Cheers!

Wang Weibin

From: Gyan Mishra <[email-masked]>
Sent: 2019年12月15日 15:07
To: Wang, Weibin (NSB - CN/Shanghai) <[email-masked]>
Cc: Pablo Camarillo (pcamaril) <[email-masked]>; [email-masked]
Subject: Re: [spring] USD/USP question in draft-ietf-spring-srv6-network-programming-06.txt

Hi Wang

I just sent an email to Spring WG related to PSP and technically why that is necessary as that is a legacy concept that has parity to MPLS but is not used today due to QOS issues.  Please see that email related to that topic.

<WWB> : I am NOT against PSP/USP/UDP concepts, or SID with combination of them, as long as they are useful meaning in network. You may check mails whose subject is “Is srv6 PSP a good idea” in this mailing list, you may get something.

In the PSP section can If we have to keep PSP can we add verbiage that states that PSP removal of the SRH header occurs on the Penultimate egress P node.
<WWB>: PSP is option function, just a building block in network programming, as Pablo said, its usage or not is up to the Ingress border PE of SRv6 domain to encode it in SRH, I don’t care for.

In the USP section can we also add that all remaining SRH present in the packet are popped on the egress PE ultimate node.
<WWB> : at current draft version, multiple successive SRH instances in one packet is NOT allowed.

In looking at these 3 SID functions the PSP and USP pop the EH and the USP removes the 6in6 encapsulation so that the other end.x dt4 dt6 etc can pop the services L3vpn headers.

<WWB>: I think, you May have a misunderstanding on USP, keeping in mind, IMHO, SID is only instruction, how to deal with packet with destination field value of Packet being SID is decided by the SID, not following the normal rule. In your case, the 6in6 tunnel decapsulation is decided by END.DT4/6 SID, not END with USD flavor.

Why does the USP and USD SID have to be separate?
<WWB>: I am NOT against the SID with combination of USD/USP, even combination of PSP/USP/USD, as long as the mixed function SID is logically reasonable in practice. By the way, the following text you cited isn’t last version.

4.16.1<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.1>.  PSP: Penultimate Segment Pop of the SRH

   executed as well:

   S14.2.      Pop the SRH

   S14.3.   }

4.16.2<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.2>.  USP: Ultimate Segment Pop of the SRH

   ones:

   S03.       Pop the SRH

   S04.   }

4.16.3<https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-05#section-4.16.3>.  USD: Ultimate Segment Decapsulation

   ones:

   S04.   }

Kind regards,

Gyan

On Sat, Dec 14, 2019 at 9:08 PM Wang, Weibin (NSB - CN/Shanghai) <[email-masked]<mailto:[email-masked]>> wrote:
Hi Pablo:

After the 2 context assumption in previous version of this draft,  “we assume that there is no other extension header than the SRH.”  and  “We assume
   that the SRH may be present multiple times inside each packet”, are removed in this last draft, I feel a bit confusion on USD SID, as well as combination of USD & USP.

First, within the content of this last draft, the word “Further on” marked red in the following pseudocode in section “4.16.3” is hard to understand if the packet being processed has other EH embed between SRH and Upper-layer header, such as AH or other EH, then the processing control of this packet will be passed to normal IPv6 module from current SRH processing module in SR-Node, so my question is : Can its control after completing AH processing (for example)  be back to SRH module (or call it pseudocode module) to proceed the next header like “upper-lay header type ==41 or 4”.
Or, if not, Did you created a new EH processing protocol stack instance in parallel to normal IPv6 module within the scope of SRH processing in SR-node.

   End:

   S06. }

Second, the mixed SIDs function with combination of USD and USP (even PSP&USD&USP), I think, it is easy to understand when the two assumption above exist, but now I think it isn’t clear if you only provide the following sentence in this draft, i.e.  “if … else…” statement:

Cheers !

WANG Weibin
_______________________________________________
spring mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/spring
--
Gyan S. Mishra
IT Network Engineering & Technology
Verizon Communications Inc. (VZ)
13101 Columbia Pike FDC1 3rd Floor
Silver Spring, MD 20904
United States
Phone: 301 502-1347
Email: [email-masked]<mailto:[email-masked]>
www.linkedin.com/in/networking-technologies-consultant<http://www.linkedin.com/in/networking-technologies-consultant>

---

From: "Wang, Weibin (NSB - CN/Shanghai)" <[email-masked]>
Date: Wed, 18 Dec 2019 08:08:20 +0000

Hi SPRING WG and authors:

I need in further express my opinion about USD SID.
From the content in this last draft, I find lots of SIDs defined in draft, such as END.DX, END.DT, END.DX2 etc., which imply in fact that the next-header immediately following SRH being processed are upper-layer header such NH==41 or 4 (IPv4 or IPv6 or Ethernet frame), which is payload in sense. So if the 2 context assumption mentioned in previous email, “multi extension header may exist and no successive multi SRHs in one packet”, are removed, the behavior of SIDs mentioned above keep no change, because the 2 assumption has not effective for these SIDs. But regarding to END, END.X and END.T with USD, it may be impacted, because it is possible that there are other extension headers residing between SRH and upper-layer header,  as such, in order to decapsulate the outer header to expose inner packet (IPv4/6 or Ethernet), the SR-node has to handle all extension headers existing in this packet until reaching the upper-layer header within its pseudocode module, the function of processing all extension headers has been in normal IPv6 module, so I think it is not necessary for introducing USD, it is better to remove the USD definition.

I hope someone give reply on this question or point out where is my misunderstanding.

Cheers!

Wang Weibin

From: Wang, Weibin (NSB - CN/Shanghai)
Sent: 2019年12月15日 10:09
To: Pablo Camarillo (pcamaril) <[email-masked]>
Cc: [email-masked]' <[email-masked]>
Subject: USD/USP question in draft-ietf-spring-srv6-network-programming-06.txt

Hi Pablo:

   End:

   S06. }

Cheers !

WANG Weibin

---

From: "Wang, Weibin (NSB - CN/Shanghai)" <[email-masked]>
Date: Wed, 18 Dec 2019 10:00:52 +0000

well, I went through again some sections about specific SIDs definition in last draft, I feel that SRH processing module (pseudocode module) include outright all kinds of EHs processing. OK.

Cheers!

Wang Weibin

From: Wang, Weibin (NSB - CN/Shanghai)
Sent: 2019年12月18日 16:08
To: [email-masked]
Subject: RE: USD/USP question in draft-ietf-spring-srv6-network-programming-06.txt

Cheers!

Wang Weibin

From: Wang, Weibin (NSB - CN/Shanghai)
Sent: 2019年12月15日 10:09
To: Pablo Camarillo (pcamaril) <[email-masked]<mailto:[email-masked]>>
Cc: [email-masked]' <[email-masked]<mailto:[email-masked]>>
Subject: USD/USP question in draft-ietf-spring-srv6-network-programming-06.txt

Hi Pablo:

   End:

   S06. }

Cheers !

WANG Weibin