Hi Brian,

The PSP behavior is only applied to received packets when (Segments Left =1 & 
Destination Address = PSP SID).
The PSP behavior pseudocode describes the local processing of this packet, and 
the check for Segments Left == 0 is an intermediate step of that local 
processing. This local processing might be implemented in different ways as 
long as the externally observable wire protocol is preserved.

In order to clarify this, we propose the diff below.

Thank you,
Pablo.

 
<OLD>
    The following sub-sections detail the behaviors, introduced in this
    document, that a node (N) binds to a SID (S).
  
    Section 4.16 defines flavors of some of these behaviors.
   
    4.1.  End: Endpoint
</OLD>
<NEW>
    The following sub-sections detail the behaviors, introduced in this
    document, that a node (N) binds to a SID (S).

    The pseudocode describing these behaviors detail local processing at a 
    node. An implementation of the pseudocode is compliant as long as the 
externally 
    observable wire protocol is as described by the pseudocode.
  
    Section 4.16 defines flavors of some of these behaviors. 
   
     4.1.  End: Endpoint
</NEW>
 
<OLD>
       This behavior does not contravene Section 4 of [RFC8200] because the
       current destination address of the incoming packet is the address of
       the node executing the PSP behavior.
</OLD>
  
<NEW>
      The End, End.X and End.T behaviors with PSP do not contravene 
      Section 4 of [RFC8200] because the destination address of the incoming 
packet is the 
      address of the node executing the behavior.
</NEW>


-----Original Message-----
From: Brian E Carpenter <[email protected]> 
Sent: viernes, 21 de agosto de 2020 0:06
To: [email protected]
Cc: [email protected]; [email protected]; Bruno Decraene 
<[email protected]>; [email protected]; 
[email protected]
Subject: Re: Last Call: <draft-ietf-spring-srv6-network-programming-17.txt> 
(SRv6 Network Programming) to Proposed Standard

IMHO there is still a logical defect in the description of the PSP flavor at 
https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-17#section-4.16.1

The description of the PSP flavor considers the packet to have  (Segments Left 
== 0 and Destination Address == the PSP node's address).
In fact that is *never* the state of the packet on the wire, which is either  
(Segments Left == 1 and Destination Address == the PSP node's address) when the 
packet arrives, or  (Segments Left == 0 and Destination Address == the final 
node's address) when the packet departs.

So the text does not refer a packet on the wire, whereas RFC8200 only refers to 
packets on the wire.

Thus the test "S14.1.   If (Segments Left == 0) {" in section 4.16.1 is 
confusing because it's applied to a packet that is half way through processing 
of the routing header inside the node (Segments Left has been updated, but 
Destination Address has not been updated). This makes it unclear how the spec 
is claiming to interpret RFC 8200.

(This was pointed out a long time ago:
https://mailarchive.ietf.org/arch/msg/spring/Xrcclo0s4pnug9upG9rUinYMv1I/ )

The text:

>    This behavior does not contravene Section 4 of [RFC8200] because the
>    current destination address of the incoming packet is the address of
>    the node executing the PSP behavior.

is being applied to a packet that never exists on the wire, but only inside the 
PSP node.

Regards
   Brian Carpenter

On 13-Aug-20 00:55, The IESG wrote:
> 
> The IESG has received a request from the Source Packet Routing in 
> Networking WG (spring) to consider the following document: - 'SRv6 Network 
> Programming'
>   <draft-ietf-spring-srv6-network-programming-17.txt> as Proposed 
> Standard
> 
> The IESG plans to make a decision in the next few weeks, and solicits 
> final comments on this action. Please send substantive comments to the 
> [email protected] mailing lists by 2020-08-26. Exceptionally, 
> comments may be sent to [email protected] instead. In either case, please 
> retain the beginning of the Subject line to allow automated sorting.
> 
> Abstract
> 
> 
>    The SRv6 Network Programming framework enables a network operator or
>    an application to specify a packet processing program by encoding a
>    sequence of instructions in the IPv6 packet header.
> 
>    Each instruction is implemented on one or several nodes in the
>    network and identified by an SRv6 Segment Identifier in the packet.
> 
>    This document defines the SRv6 Network Programming concept and
>    specifies the base set of SRv6 behaviors that enables the creation of
>    interoperable overlays with underlay optimization (Service Level
>    Agreements).
> 
> 
> 
> 
> The file can be obtained via
> https://datatracker.ietf.org/doc/draft-ietf-spring-srv6-network-progra
> mming/
> 
> 
> The following IPR Declarations may be related to this I-D:
> 
>    https://datatracker.ietf.org/ipr/3464/
> 
> 
> 
> 
> 
> 
> _______________________________________________
> IETF-Announce mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/ietf-announce
> 

_______________________________________________
spring mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/spring

Reply via email to