Hi Mark,
I do not want to use “router” terminology here, because the router has the 
control plane where all requirements to IP stack (including EMTU_R) are fully 
applicable.
Moreover, some routers could have service card and could have even real 
“application” where EMTU_R is applicable too.
How buffer should look like is very much regulated for traffic source and 
destination.
A router has the data plane for transit traffic where nobody did believe that 
buffers for reassembly are regulated by any rules. It is just Boolean “Yes/No” 
in all tunneling RFCs: fragmentation & reassembly “supported/not_supported”. 
Nobody did explain how – up to a vendor.
Hence, “router” is not good terminology here.

The “Host” in this context is more usable terminology – it is always “the end”. 
But tunnel directly from the host is the corner case.
Yes, it could be. Then the draft-ietf-intarea-tunnels is right and applicable.
OK. Rename it to: “IP Tunnels in the Internet Architecture Originated from 
Hosts”.
Well, would be the question for other end of such tunnel that is probably 
terminated “in transit” (in the data plane of some “access concentrator”).
Hence, it would be not possible to make draft-ietf-intarea-tunnels valid just 
by decreasing the scope.
Eduard
From: Mark Smith [mailto:[email protected]]
Sent: Wednesday, March 24, 2021 12:27 AM
To: Vasilenko Eduard <[email protected]>
Cc: Joseph Touch <[email protected]>; v6ops list <[email protected]>; int-area 
<[email protected]>
Subject: Re: [v6ops] Proxy function for PTB messages on the tunnel end


On Wed, 24 Mar 2021, 07:53 Vasilenko Eduard, 
<[email protected]<mailto:[email protected]>> wrote:
Hi Joseph,

Currently, vendors have chosen some undisclosed big numbers for the reassembly 
buffer on the tunnel interface
Or no buffer at all for tunnels that do not support reassembly.
That does not create any additional restriction for MTU.
Nobody did believe (IPv4 or IPv6 – does not matter) that buffer requirements 
for end nodes are applicable for transit nodes.

I don't think you're not fully understanding the difference between hosts and 
routers. I'm guessing you're thinking and imagining them as physical devices. 
The definitions are actually functional (and the dictionary definition of the 
word "device" is not a physical device.)

Outer tunnel packet header DAs are obviously the tunnel end-point IP addresses.

Which of these definitions from RFC 8200 describes what type of IPv6 node a 
tunnel end point is?

" router       a node that forwards IPv6 packets not explicitly
                addressed to itself.

   host         any node that is not a router."

Tunnel packets *are* explicitly addressed to a node, so tunnel endpoints are 
performing host functions on packets. If those host functions being performed 
on tunnel packets at the tunnel endpoints require buffers, then buffers need to 
be available.

Internally, a router as a device (your "transit node") is performing both host 
and routing functions. The forwarding plane component is:

"a node that forwards IPv6 packets not explicitly addressed to itself" - a 
router

The control plane, and other functions like tunnel endpoints, in a router as a 
device, is:

"any node that is not a router" - a host

This is the same for IPv4:

RFC791,

"The internet protocol provides for transmitting blocks of data called 
datagrams from sources to destinations, where sources and destinations are 
*hosts* identified by  fixed length addresses."

(And as another example of device verses function. If you buy a router as a 
device from a router vendor (rack mount, multiple interfaces, limited LCD/LED 
display, console port), and then use it as a BGP Route Reflector, such that it 
never forwards packets because it is never in a forwarding path, is it still a 
"router"? It might look like one, but it is only performing host packet 
processing of the BGP protocol.)


Your liberty to apply the requirements and terminology of one to the other is 
not a good idea.
draft-ietf-intarea-tunnels propose to decrease reassembly buffer to “typical 
host EMTU_R (1500B) minus tunnel outer headers overhead” that would cause 
additional fragmentation.

As the compromise:
Could you change the default for “draft-ietf-intarea-tunnels Tunnel MTU” 
(reassembly buffer) to 9k? (to reflect reality)
I would still be not happy in the mail to any alias about calling parameters of 
transit node buffer by the terminology of end node buffer.
But if you would not create additional fragmentation – I would not have any 
complains in my draft in regards to draft-ietf-intarea-tunnels.
It could be the resolution.

Well, probably it is not a good compromise, because you have the logic through 
all your document. 9k (reality) would protrude out of your logic.
The logic itself is good. It is broken because the most basic assumption is 
wrong (before you did apply any logic).

The Data Plane on transit nodes should not behave
as the Control Plane on transit nodes or Transport Layer on end nodes!
It was the wrong assumption initially. Buffers should be different. Names 
should be different. Unification here is not possible.
It would be rejected by vendors anyway because reassembly is expensive, the one 
who would increase it – would get a competitive disadvantage.
It is easy to translate additional reassembly to $$ losses.

Eduard
From: Joseph Touch [mailto:[email protected]<mailto:[email protected]>]
Sent: Tuesday, March 23, 2021 10:44 PM
To: Vasilenko Eduard 
<[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>; int-area 
<[email protected]<mailto:[email protected]>>
Subject: Re: Proxy function for PTB messages on the tunnel end



On Mar 23, 2021, at 12:10 PM, Vasilenko Eduard 
<[email protected]<mailto:[email protected]>> wrote:

Hi Joseph,
I am not much interested to discuss IPv4 now. (despite that 2 MTUs for one 
interface is absent there too)
Let’s look at your reference to RFC 8200.

Section 4.5: unlike IPv4, fragmentation in IPv6 is performed only by source 
nodes, not by routers along a packet's delivery path
It means that all these discussions about fragmentation and reassembly are not 
related to transit nodes. It is for the “source and destination nodes”.

Agreed.

The better terminology is “transit node”, “destination node” – like it is in 
RFC 8200, not “host” or “router”.

Please see section 2 of RFC8200 (color added by me):

2<https://tools.ietf.org/html/rfc8200#section-2>.  Terminology





   node         a device that implements IPv6.



   router       a node that forwards IPv6 packets not explicitly

                addressed to itself.  (See Note below.)



   host         any node that is not a router.  (See Note below.)

The term “transit node” does no appear in RFC8200.

The terms “source node” and “destination node” are used in RFC8200 but not 
defined in Sec 2. They are clearly hosts that originate IPv6 packets and hosts 
that consume IPv6 packets, respectively.

In an IPv6 tunnel, the tunnel ingress emits new packets with IP headers it adds 
using its IP address. That makes it a source node. Same for how the egress 
consumes those packets.

From the perspective of the tunnel path, the ingress and egress are hosts and 
intermediate hop relays are routers.

From the perspective of the overall path, the tunnel is a link, either 
host/host, host/router, router/host, or router/router. A tunnel is not itself a 
router, however.


You see – nobody is asking vendors to be compliant with any reassembly buffers 
in transit. Because it was assumed that would be not reassembly at transit.

Reassembly happens at tunnel egresses whether you want it to or not.

Hence, vendors had the freedom to choose a much bigger number than 1500 when 
reassembly did happen in reality (despite IPv6 architecture decisions).

1500 is the IPv5 minimum EMTU_R; vendors can always implement larger reassembly 
when they choose to.

Please, show any evidence (or just claim if you could not disclose) that any 
vendor has 1500B (or less) for reassembly in the data plane (on transit node).

Here’s how to do it:
            - set interfaces to use 1280B packets
            - setup an IPv6 tunnel
            - send a 1280B packet through that tunnel

If you don’t implement reassembly, it won’t work. But it does. Everywhere.

I neither know nor care. That’s a compliance issue, not a standards issue.
It is not a compliance issue, because there is no regulation/standard to comply 
with. Vendors had the freedom and solved the problem easily.

RFC8200 is the standard. Tunnel ingresses and egresses create and consume 
packets, so they act as hosts. I don’t care if they’re implemented on routers; 
routers implement lots of things as hosts (see e.g., RFC4201, Sec 3.1:


   ...A compliant host

   implementation MUST support (a) and (c) and a compliant security

   gateway must support all three of these forms of connectivity, since

   under certain circumstances a security gateway acts as a host

This is described in detail in:
            RFC1858
            RFC4459
            RFC4944
            RFC6946
            RFC6980
            RFC7588
            RFC8021
            RFC8900
I did not ask for a general discussion. Of course, fragmentation is a big topic 
with many publications.

You asked for *specific examples* of what vendors do. Those RFCs provide them.

I did ask for any evidence that there is 2 MTU per 1 virtual interface and 
fragmentation problem as the result of this (when packet would come in between 
of these MTUs).

I don’t see why you’re stuck on this issue.
Because you are trying to introduce additional fragmentation to the area where 
it was absent before. The root cause is the introduction of the second MTU per 
interface (that is in the reality the buffer size).

I have not introduced anything; I am describing an existing requirement of any 
device that consumes IP packets (i.e., acts as an IP destination). When it does 
so, it is a host. Tunnel egresses do that.

2 MTUs for one interface is the innovation. It does not exist in any standard 
or any real implementation. It is invented only in draft-ietf-intarea-tunnels.
It is not just new names and new classification. It new things that does not 
exist in the real world. Harmful, because of additional fragmentation 
introduced..

Draft-tunnels has been discussed and reviewed by int-area for over a decade. 
Nobody else has agreed with your assertions.

Joe
_______________________________________________
v6ops mailing list
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/v6ops
_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area

Reply via email to