Subject: draft-ietf-6man-icmp-limits-05

From: Ron Bonica <[email-masked]>
Date: Mon, 16 Sep 2019 18:48:12 +0000

Tom,

In draft-ietf-6man-icmp-limits-05, you propose sending and ICMP Parameter Problem message when the following errors occur:

         - Extension header too big
         - Extension header chain too long
         - Too many options in extension header
         - Option too big

However, you send an ICMP Destination Unreachable message in response to aggregate header limits.

Why not send an ICMP Parameter Problem message in cases?

                                                                                         Ron

Juniper Business Use Only

---

From: Bob Hinden <[email-masked]>
Date: Mon, 16 Sep 2019 14:10:06 -0700

> On Sep 16, 2019, at 11:48 AM, Ron Bonica <rbonica=[email-masked]> wrote:
> 
> Tom,
> 

Good question.  It would make the draft simpler and avoid having to create RFC4884 extension headers.

Bob

> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> [email-masked]
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------

---

From: Tom Herbert <[email-masked]>
Date: Mon, 16 Sep 2019 15:00:25 -0700

> Good question.  It would make the draft simpler and avoid having to create RFC4884 extension headers.

Ron, Bob,

There was already discussion of this on the list.

Originally, Parameter Problem code was defined for this, however that
was considered inconsistent with the definition of Parameter Problem
(RFC4443):

"If an IPv6 node processing a packet finds a problem with a field in
the IPv6 header or extension headers such that it cannot complete
processing the packet"

Aggregate header limits can apply to headers other than just IP header
and extension headers (e.g. UDP encapsulation headers). Hence, we went
with Destination Unreachable and subsequently why we need to invoke
the ICMP extended header format to get the error pointer.

Tom

---

From: Ron Bonica <[email-masked]>
Date: Tue, 17 Sep 2019 00:28:20 +0000

Tom, 

When you send an ICMP Destination Unreachable with code equal to aggregate header limit exceeded, does the pointer always point beyond the end of the IPv6 header chain?

                                                                                            Ron

-----Original Message-----
From: Tom Herbert <[email-masked]> 
Sent: Monday, September 16, 2019 6:00 PM
To: Bob Hinden <[email-masked]>
Cc: Ron Bonica <[email-masked]>; 6man <[email-masked]>
Subject: Re: draft-ietf-6man-icmp-limits-05

Ron, Bob,

Originally, Parameter Problem code was defined for this, however that was considered inconsistent with the definition of Parameter Problem
(RFC4443):

"If an IPv6 node processing a packet finds a problem with a field in the IPv6 header or extension headers such that it cannot complete processing the packet"

Aggregate header limits can apply to headers other than just IP header and extension headers (e.g. UDP encapsulation headers). Hence, we went with Destination Unreachable and subsequently why we need to invoke the ICMP extended header format to get the error pointer.

Tom

> > IETF IPv6 working group mailing list [email-masked] Administrative 
> > Requests: 
> > https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/ip
> > v6__;!8WoA6RjC81c!Tr9t_Imk6fHhld_RTnhilL4gppaKBxhvwff7Y6ZeeMo_eoEjPT
> > TXdBfNvMophbc9$

---

From: Tom Herbert <[email-masked]>
Date: Mon, 16 Sep 2019 17:53:23 -0700

> When you send an ICMP Destination Unreachable with code equal to aggregate header limit exceeded, does the pointer always point beyond the end of the IPv6 header chain?

Not always. Consider this example: a device has a parsing buffer of
128 bytes. It starts parsing the packets, IP header, extension
headers, encapsulations, transport, headers, etc. For some packet it
finds that it needs parse beyond 128 bytes to get the information it
needs. If it drops the packet, then it sends Unreachable with point
equal to 128. In this case the pointer might be at an EH, an IP
header, transport header, encap header, ...

Note that this error has the lowest precedence so that Parameter
Problem is reported for any limits exceeded relating to EH.

Tom