Re: [mpls] Last Call: <draft-ietf-mpls-in-udp-04.txt> (Encapsulating MPLS in UDP) to Proposed Standard

Curtis Villamizar <curtis@ipv6.occnc.com> Tue, 14 January 2014 01:33 UTC

Return-Path: <curtis@ipv6.occnc.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E3EA1ADFC3; Mon, 13 Jan 2014 17:33:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.44
X-Spam-Level:
X-Spam-Status: No, score=-2.44 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.538, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D_pBWGmJUxAC; Mon, 13 Jan 2014 17:33:22 -0800 (PST)
Received: from maildrop2.v6ds.occnc.com (maildrop2.v6ds.occnc.com [IPv6:2001:470:88e6:3::232]) by ietfa.amsl.com (Postfix) with ESMTP id 673321A8028; Mon, 13 Jan 2014 17:33:22 -0800 (PST)
Received: from harbor3.ipv6.occnc.com (harbor3.v6ds.occnc.com [IPv6:2001:470:88e6:3::239]) (authenticated bits=128) by maildrop2.v6ds.occnc.com (8.14.7/8.14.7) with ESMTP id s0E1Wkit084822; Mon, 13 Jan 2014 20:32:47 -0500 (EST) (envelope-from curtis@ipv6.occnc.com)
Message-Id: <201401140132.s0E1Wkit084822@maildrop2.v6ds.occnc.com>
To: "Joel M. Halpern" <jmh@joelhalpern.com>
From: Curtis Villamizar <curtis@ipv6.occnc.com>
In-reply-to: Your message of "Mon, 13 Jan 2014 10:51:45 -0500." <52D40B91.8040101@joelhalpern.com>
Date: Mon, 13 Jan 2014 20:32:46 -0500
Cc: "mpls@ietf.org" <mpls@ietf.org>, "Eggert, Lars" <lars@netapp.com>, IETF <ietf@ietf.org>, Scott Brim <scott.brim@gmail.com>
Subject: Re: [mpls] Last Call: <draft-ietf-mpls-in-udp-04.txt> (Encapsulating MPLS in UDP) to Proposed Standard
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: curtis@ipv6.occnc.com
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Jan 2014 01:33:25 -0000

In message <52D40B91.8040101@joelhalpern.com>
"Joel M. Halpern" writes:
 
> Lars, are you really asking that the document say:
> 1) That the UDP encapsulation of MPLS can only be used when the devices
> performing the encapsulation and decapsulation know what protocol (above
> IP, if IP is being carried; above Ethernet and IP if the frame is
> Ethernet carrying IP) is being used
> 2) That those devices need to engage in a congestion control protocol if
> the carried packets are not TCP, SCTP, or DCCP?
>  
> Those both look like excessive and difficult requirements.  Which is
> fine if our goal is to pretend we are telling folks not to use UDP
> encapsulation of MPLS.  (I had not thought that was our goal.)
>  
> In practice, I simply do not see how anyone implementing this will pay
> any attention to either requirement.
>  
> Yours,
> Joel


Joel,

I agree that the requirement for the equipment to "know" what is in
the MPLS traffic is ridiculous.  A provider generally does know
whether the traffic will be mostly IP or mostly PW and if PW mostly IP
inside the PW.

If stating that implementations SHOULD support a form of congestion
control satisfies Lars, then its fine to add it.  And then ignore it.

Even if the document said MUST it is likely to be ignored in practice
through a non-RFC compliant configuration knob.

As to whether MPLS tunneled traffic in UDP could end up on the plain
old Internet, that is exactly what most providers in effect do today
with MPLS.  The high margin legacy L2 protocols, such as TDM, ATM, FR,
all ride on PW and MPLS over the very same infrastructure as plain IP.
The low traffic volume high paying traffic gets queueing priority
based on paying so much for it and an expectation of good or perfect
service and the traffic volume is so low that the plain IP traffic
doesn't notice.  If a UDP and IP header got stuck in there, not much
would change.  And certainly any congestion control would be disabled.

If OTOH, some end customer put their NFSv4 over UDP stream or their
bittorrent stream over MPLS over UDP, it would behave just the same
(just as badly but no worse) as plain NFSv4 over UDP over IP or plain
bittorrent.  No change.  And the network hostile bittorrent site isn't
going to enable congestion control on the UDP tunnel either.

So this whole discussion is over nothing.  But if putting a SHOULD in
a document ends the discussion, it might be worth it.  The technical
sticky point is knowing that the congestion is occuring.  Perhaps a LM
like packet on another UDP port could be exchanged with the same
caveats about inaccuracy if implemented in software and inaccuracy if
reordering occurs, and a recommendation can be made to do something to
introduce drop if congestion is indicated by this method.  How to
introduce drop should be an implementation detail, a form of AQM or
leaky bucket being possible choices, but entirely a local matter.
Since it is a SHOULD and if no real customer ever wants it we can all
just ignore it.

Curtis


> On 1/13/14 3:50 AM, Eggert, Lars wrote:
> > Hi,
> > 
> > On 2014-1-13, at 4:40, Xuxiaohu <xuxiaohu@huawei.com> wrote:
> >>> I don't think it's right to try to solve this in MPLS, because
> >>> MPLS is not a forwarding protocol - it's a connectivity
> >>> protocol.
> > 
> > right, MPLS is the wrong place to address is. The UDP encaps/decaps
> > function needs to have this functionality.
> > 
> >>> In any use of UDP, congestion control is either left to something
> >>> above UDP or ignored (left to queue management).
> > 
> > There are several cases, see Section 3.1.3 of RFC5405. MPLS-over-UDP
> > can fall into any of the three cases, depending on what traffic is
> > inside the LSP being encapsulated.
> > 
> > You'll notice that RFC5405 for the first case - encapsulation of
> > IP-based congestion controlled "normal" Internet traffic - even says
> > that the tunnel SHOULD NOT employ any congestion control scheme of
> > its own. Having layered control loops fighting is not productive.
> > 
> > The issue with MPLS-in-UDP (and GRE-in-UDP, and any other encaps
> > scheme that can carry non-IP traffic) are with cases two and three.
> > When the workload that is being encapsulated isn't known to be
> > congestion controlled by its endpoints, it is the obligation of the
> > tunnel to detect congestion and react to it by reducing the traffic
> > volume. Because for the rest of the network, that tunnel is the UDP
> > sender, and we have IETF consensus that we don't want UDP senders
> > that don't react to congestion on the net. (That's one of the main
> > reasons for the existence of the RMCAT WG - we don't want
> > non-congestion-controlled RTP media traffic on the net.)
> > 
> > The key difference between putting MPLS e.g. into IP compared to
> > putting it into UDP is that once it's in UDP, it can go pretty much
> > anywhere on the net, because UDP traverses NATs and firewalls much
> > more easily than IP traffic with a rare protocol number does.
> > 
> >>> Similarly, you want the client of MPLS to be responsible for 
> >>> managing its traffic. MPLS gives you paths, it doesn't push
> >>> packets over them.
> > 
> > Right. However, once you slap a UDP header on a packet during
> > encapsulation, you now subjected yourself to the rules for Internet
> > UDP senders. Those are documented in RFC5405, and require the tunnel
> > to implement some sort of congestion detection and control. I'd
> > personally consider a circuit breaker mechanism sufficient, like RTP
> > and I think PWE are using.
> > 
> >> Fully agree. The congestion control should be performed either by
> >> the UDP tunnel itself or the client of MPLS. In the former case,
> >> it'd better to specify the practical congestion control mechanisms
> >> (if there were any) in a generic draft (e.g., RFC5405bis) and then
> >> any use of the UDP tunnel could refer to that generic draft with
> >> regard to congestion control.
> > 
> > The general concept of a circuit breaker is easy enough that it
> > doesn't really need to be written down. And it wouldn't be possible
> > to describe it in a generic fashion, because congestion detection is
> > typically specific to the protocol being encapsulated (e.g., RTP uses
> > RTCP feedback to derive loss information, etc.) And the reaction to
> > congestion is also dependent on the protocol being encapsulated (does
> > it support multiple rates or only on/off, what timescales are OK for
> > reaction, etc.)
> > 
> >> In the latter case, if the client of MPLS is TCP-friendly, that is
> >> great. Otherwise (e.g., circuit emulation service), it shouldn't be
> >> deployed on the Internet at all, just as has been pointed out in
> >> RFC3985, therefore there is no need for any specific congestion
> >> control mechanism on the client.
> >> 
> >> "... In essence, this requirement states that it is not acceptable
> >> to deploy an application (using PWE3 or any other transport
> >> protocol) on the best-effort Internet, which consumes bandwidth
> >> arbitrarily and does not compete fairly with TCP within an order of
> >> magnitude." (quoted from Section 6.5 of RFC3985)
> >> 
> >> The above choice seems no conflict with the following congestion
> >> control guidelines as quoted from Section 3.1.1 of RFC5405, as
> >> those non-TCP-friendly traffic would be transported over a
> >> provisioned path, rather than on the Internet.
> >> 
> >> "...Finally, some bulk transfer applications may choose not to
> >> implement any congestion control mechanism and instead rely on
> >> transmitting across reserved path capacity.  This might be an
> >> acceptable choice for a subset of restricted networking
> >> environments, but is by no means a safe practice for operation in
> >> the Internet."
> > 
> > How is that in conflict? Both quotes say that Internet traffic needs
> > congestion control, which is a restatement of RFC2914.
> > 
> > Lars
> > 
> _______________________________________________
> mpls mailing list
> mpls@ietf.org
> https://www.ietf.org/mailman/listinfo/mpls