Krzysztof,
You are correct. When the ping/traceroute probe originates outside of the SRv6 
network, example on a CE device, then the relay function as described in RFC 
2473 will only work for prefixes in the global routing table and which are 
resolved to an SRv6 tunnel. The ingress PE cannot perform a relay function for 
prefixes resolved in a VRF.

If the probe originates at the SRv6 PE router, then the relay function can 
translate the ICMP error received from the SRv6 transit router into the correct 
routing context in both a VRF and the global routing table.

The other point related to RFC 2473 is that the transit SRv6 router must always 
originate the ICMP reply back to the ingress SRv6 PE. So, the ICMP tunneling 
feature is not an alternative to it as stated in your draft, it is an 
alternative to the ICMP relay function.

Regards,
Mustapha.

From: Krzysztof Szarkowicz <kszarkow...@juniper.net>
Date: Friday, July 25, 2025 at 10:10 AM
To: Mustapha Aissaoui (Nokia) <mustapha.aissa...@nokia.com>
Cc: Zafar Ali (zali) <zali=40cisco....@dmarc.ietf.org>, Alexander Vainshtein 
<alexander.vainsht...@rbbn.com>, 
draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org 
<draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org>, 6...@ietf.org 
<6...@ietf.org>, Mr. Zafar Ali <z...@cisco.com>, SPRING WG List 
<spring@ietf.org>
Subject: Re: draft-ali-6man-srv6-vpn-icmp-error-handling

CAUTION: This is an external email. Please be very careful when clicking links 
or opening attachments. See the URL nok.it/ext for additional information.


Hi Mustapha,

Behavior described in RFC 2473, Section 8 cannot be really used for SRv6 
networks. In SRv6, typically ingress PE, when doing IPv6 encap, uses local IPv6 
loopback address as the source IPv6 address in the outer header. For all 
services (i.e., say for all 100 locally configured VRFs). Based on RFC 2473, 
Section 8, If some transit router would send ICMP error message to the tunnel 
ingress, how the ingress PE could determine, in which VRF context (out of 100 
locally configured VRFs) the to handle it?

This problem is highlighted in Section 2 of 
draft-ali-6man-srv6-vpn-icmp-error-handling, as Zafar already quoted:



   When the packet comes to P1, the hop limit expires at P1.  Without

   ICMP tunneling enabled on P1, P1 implements the standard procedure

   from RFC9259<https://datatracker.ietf.org/doc/html/rfc9259>, and therefore 
sends an ICMPv6 packet towards PE1 as

   follows:



       P1_out : (P1::1, PE1::1, HL=64, NH=ICMPv6)

                (ICMPv6, Time Exceeded,

                [copy of the invoking packet =

                (PE1::1, PE2:DT6::, HL=1, NH=IPv6)

                ((CE1::1, CE2::1, HL=1, NH=UDP)(Traceroute probe))])



the Processing the message at PE1

   requires context that the packet was not sourced at PE1.


Rules described in RFC 2473, Section 8 do not provide such context.

Regards,
--
Krzysztof Grzegorz Szarkowicz, HPE Networking PLM, Solutions Architect | Phone: 
+49 89 203 012 127
Please consider my current time zone, when calling: CEST (UTC+02:00)


On 2025 Jul 24, at 23:01, Mustapha Aissaoui (Nokia) 
<mustapha.aissa...@nokia.com> wrote:


[External Email. Be cautious of content]


Hi Zafar,
As far as I know, RFC 9259 did not cover reporting by SRv6 transit routers of 
ICMP errors when the original probe was for an address of a IPv4/IPv6 prefix 
which is in the SRv6 service overlay (ICMP message has its own IPv4/IPv6 header 
which is then encapsulated into SRv6). It only covered ping/traceroute for an 
IPv6 address of a prefix in the SRv6 underlay (ICMP message encapsulated 
directedly into SRv6).

So, it is a good thing to lay out the procedures of the former case.

I would however point that some of the elements of the procedures have been 
defined in 
https://datatracker.ietf.org/doc/html/rfc2473#section-8<https://urldefense.com/v3/__https://datatracker.ietf.org/doc/html/rfc2473*section-8__;Iw!!NEt6yMaO-gk!CQq_FdKjC1gmIXsGJG4jQ7N1Vqiian8wAqFRv79hihx0kcrkd9DMQMiDKTMEWmjTVjCAp5ToOHpDhefmyEnrsOAOGLTzd08$>.
 This RFC, which builds on a few earlier RFCs, specifies that an ICMP reply 
must always be sent to the ingress of the outer IP tunnel. In addition, the 
ingress of the outer IP tunnel will in some cases “relay” the received ICMP 
error message to the source address of the original payload packet by 
translating it into the proper error code (it is not an exact 1-to-1 
replication of the error code). So, we are dealing with a couple of ICMP error 
reply messages and not one.

The way I interpret this is in the context of SRv6 is as follows:

  1.  A transit SRv6 router must always send an ICMP error message to the 
ingress of the SRv6 tunnel and include the IP header and leading payload octets 
of the original datagram. This is always required.
  2.  The translation and relaying of the ICMP error message could be done in a 
few ways. The ingress of the SRv6 tunnel can perform the relay function as 
described in RFC 2473 or an ICMP tunneling function can perform it at the 
transit SRv6 router along the lines of what you are proposing in your draft.
Regards,
Mustapha.

From: Zafar Ali (zali) 
<zali=40cisco....@dmarc.ietf.org<mailto:zali=40cisco....@dmarc.ietf.org>>
Date: Thursday, July 24, 2025 at 6:45 AM
To: Alexander Vainshtein 
<alexander.vainsht...@rbbn.com<mailto:alexander.vainsht...@rbbn.com>>, 
Krzysztof Szarkowicz <kszarkow...@juniper.net<mailto:kszarkow...@juniper.net>>
Cc: 
draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org<mailto:draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org>
 
<draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org<mailto:draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org>>,
 6...@ietf.org<mailto:6...@ietf.org> <6...@ietf.org<mailto:6...@ietf.org>>, 
Zafar Ali (zali) <z...@cisco.com<mailto:z...@cisco.com>>, SPRING WG List 
<spring@ietf.org<mailto:spring@ietf.org>>
Subject: [spring] Re: draft-ali-6man-srv6-vpn-icmp-error-handling

CAUTION: This is an external email. Please be very careful when clicking links 
or opening attachments. See the URL nok.it/ext<http://nok.it/ext> for 
additional information.


Hi Sasha

Many thanks for a fruitful meeting offline.
As per your suggestion, I am adding Spring.

Re: The situation with MPLS-encapsulated IP-VPN packets is different

This is an excellent observation, and you are right.
The draft acknowledges the fact that IPv6 case is different than MPLS.

“Without ICMP tunneling enabled on P1, P1 implements the standard procedure
   from RFC9259, and therefore sends an ICMPv6 packet towards PE1 as
   follows:

       P1_out : (P1::1, PE1::1, HL=64, NH=ICMPv6)
                (ICMPv6, Time Exceeded,
                [copy of the invoking packet =
                (PE1::1, PE2:DT6::, HL=1, NH=IPv6)
                ((CE1::1, CE2::1, HL=1, NH=UDP)(Traceroute probe))])”

It then lists the motivations for proposing this optional “alternate” procedure 
(to tunnel ICMP messages).

Re: the update tag

The scope of processing is an SRv6 capable node with the capability enabled for 
it.
The processing at P node is also limited to the packets where destination of 
the upper IPv6 header (provide header) is in the SRv6 LOC block, e.g., 
5f00::/16 [rfc9602] (which is known to all SRv6 nodes in any deployment). The 
procedure is never applied to ICMP error handing for packets with destination 
outside SRv6 LOC block.  Therefore, we believe it is backward compatible.
No changes to ICMP error processing are suggested (just adds an optional 
alternate way to “transport” ICMP error message.

Thanks

Regards … Zafar

From: Alexander Vainshtein 
<alexander.vainsht...@rbbn.com<mailto:alexander.vainsht...@rbbn.com>>
Date: Thursday, July 24, 2025 at 4:37 AM
To: Krzysztof Szarkowicz 
<kszarkow...@juniper.net<mailto:kszarkow...@juniper.net>>
Cc: 
draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org<mailto:draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org>
 
<draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org<mailto:draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org>>,
 6...@ietf.org<mailto:6...@ietf.org> <6...@ietf.org<mailto:6...@ietf.org>>
Subject: RE: draft-ali-6man-srv6-vpn-icmp-error-handling
Krzysztof,
Lots of thanks for your email.

I would like to clarify that I do not have any problems with the solution 
proposed in the draft.
I was just trying to say that

  *   The situation with MPLS-encapsulated IP-VPN packets is different
  *   The proposal modifies an existing Standards Track RFC  - with all the 
implications (text, process etc.).

My 2c,
Sasha

From: Krzysztof Szarkowicz 
<kszarkow...@juniper.net<mailto:kszarkow...@juniper.net>>
Sent: Wednesday, July 23, 2025 10:14 PM
To: Alexander Vainshtein 
<alexander.vainsht...@rbbn.com<mailto:alexander.vainsht...@rbbn.com>>
Cc: 
draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org<mailto:draft-ali-6man-srv6-vpn-icmp-error-handl...@ietf.org>;
 6...@ietf.org<mailto:6...@ietf.org>
Subject: [EXTERNAL] Re: draft-ali-6man-srv6-vpn-icmp-error-handling
Importance: High

Hi Sahsa,

Indeed, that are good comments. Thank you for providing them.

We will be taking these comments in the next version of the draft.

Please see as well my one comment inline.
--
Krzysztof Grzegorz Szarkowicz, HPE Networking PLM, Solutions Architect | Phone: 
+49 89 203 012 127
Please consider my current time zone, when calling: CEST (UTC+02:00)

On 2025 Jul 22, at 17:30, Alexander Vainshtein 
<alexander.vainsht...@rbbn.com<mailto:alexander.vainsht...@rbbn.com>> wrote:


[External Email. Be cautious of content]


Hi,
I have watched the presentation of the 
draft<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/draft-ali-6man-srv6-vpn-icmp-error-handling-00__;!!NEt6yMaO-gk!AGUwJRsj-OEw3JuEo5_a5D_zet7e9jK64lzPkSjSJeO2kUwWMXdrxPamVAcN1_roA4oDKbLt0v6-hHLRNepvkvyT5uN7QZc$>
 at the 6MAN WG session in Madrid today, and I have also looked up the draft 
after the session was over.

I think that the analogy with using the uniform model for TTL handling in MPLS 
that the draft acknowledges is problematic:

When the TTL in the top label in the label stack of an MPLS-encapsulated 
customer IP packet used for traceroute and this packet is trapped to the CP, 
the CP knows that this is a labeled packet. It can then look up at the first 
nibble of the payload (immediately following the BOS), recognize the packet as 
IPv4 or IPv6, generate a suitable ICMP error message with the destination IPv4 
or IPv6 address taken from the MPLS-encapsulated IP header and tunnel it to the 
remote PE by pushing the label stack of the trapped labeled packet and using 
the top label to identify the egress interface and the next hop. (The CP does 
not have any alternatives because MPLS LSPs are unidirectional and does not use 
any kind of ICMP)

[Krzysztof] Not sure, what exactly problem you see. In the draft, the text 
says, that destination destination IPv4 or IPv6 address from the most inner 
header is taken (in case, there are more headers), and the packet is tunneled 
to the remote PE by pushing the original stack of IPv6 headers (just modifying 
the top header: changing the source address to local address, and initializing 
HL). Destination IPv6 address of top header is used to identify  the egress 
interface and the next hop. Not sure, what problems you see here.




When the HL in the IPv6 header pushed by the ingress PE on the customer IP 
packet used for traceroute expires and this packet is trapped to the CP, the CP 
sees just an IPv6 packet with HL expired. There is source IPv6 address in the 
IPv6 header, so that the normal reaction of the CP would be to create an ICMPv6 
error message with the destination address taken from the source IP address in 
this header, i.e., IP address of the ingress PE.  This is standardized in 
Section 3.3 of RFC 
4443<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/rfc4443*section-3.3__;Iw!!NEt6yMaO-gk!AGUwJRsj-OEw3JuEo5_a5D_zet7e9jK64lzPkSjSJeO2kUwWMXdrxPamVAcN1_roA4oDKbLt0v6-hHLRNepvkvyTkyjjX4k$>
 – but this is not what you would like to see.

From my POV the draft proposes (without explicitly stating that) to change the 
standard processing of the HL Expired events in IPv6 along the following lines:

If the Next Header value in the IPv6 header of an IPv6 packet trapped due to HL 
expiration is IPv6 or IPv4,  consider this packet as an received a 
SRV6-encapsulated packet used for CE-to-CE traceroute, generate a suitable 
ICMPv6/ICMP error message, push the IPv6 header  with high enough HL value and 
the rest of the fields copied from the UIPv6 header of the trapped packet and 
subject it to IPv6 forwarding.

If f the above understanding is correct, then:

The draft:

Indeed should be handled by the 6MAN WG

The intended status should remain Standards Track

The metadata should say that the draft updates RFC 443 (if approved)

The text should be augmented with appropriate IETF terms expressing requirement 
levels and explicitly define the desired behavior using these terms (instead of 
or in addition to) illustrations. It should also address the situations in 
which the IPv6 header is following by the SRH header etc.

Hopefully, these notes will be useful.

Regards,
Sasha



Disclaimer

This e-mail together with any attachments may contain information of Ribbon 
Communications Inc. and its Affiliates that is confidential and/or proprietary 
for the sole use of the intended recipient. Any review, disclosure, reliance or 
distribution by others or forwarding without express permission is strictly 
prohibited. If you are not the intended recipient, please notify the sender 
immediately and then delete all copies, including any attachments.

_______________________________________________
spring mailing list -- spring@ietf.org
To unsubscribe send an email to spring-le...@ietf.org

Reply via email to