Re: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt

Nitin Bahadur <nitinb@juniper.net> Fri, 22 October 2010 20:46 UTC

Return-Path: <nitinb@juniper.net>
X-Original-To: mpls@core3.amsl.com
Delivered-To: mpls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A48D03A693E for <mpls@core3.amsl.com>; Fri, 22 Oct 2010 13:46:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Q7EUZRlk56Mw for <mpls@core3.amsl.com>; Fri, 22 Oct 2010 13:46:31 -0700 (PDT)
Received: from exprod7og120.obsmtp.com (exprod7og120.obsmtp.com [64.18.2.18]) by core3.amsl.com (Postfix) with ESMTP id 2ECF23A68E6 for <mpls@ietf.org>; Fri, 22 Oct 2010 13:46:31 -0700 (PDT)
Received: from source ([66.129.224.36]) (using TLSv1) by exprod7ob120.postini.com ([64.18.6.12]) with SMTP ID DSNKTMH4iDNAUQ0ABYoRTPdsvdDT2LjoqV61@postini.com; Fri, 22 Oct 2010 13:48:10 PDT
Received: from EMBX02-HQ.jnpr.net ([fe80::18fe:d666:b43e:f97e]) by P-EMHUB02-HQ.jnpr.net ([fe80::88f9:77fd:dfc:4d51%11]) with mapi; Fri, 22 Oct 2010 13:45:41 -0700
From: Nitin Bahadur <nitinb@juniper.net>
To: "Shaleen Saxena (ssaxena)" <ssaxena@cisco.com>, Shivakumar Channalli <shivakumar@juniper.net>
Date: Fri, 22 Oct 2010 13:45:39 -0700
Thread-Topic: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
Thread-Index: Acr97fovWGELdmbmzEeKyK2GG/RPxQAPfh+gAA7zTAAACB51UAADMoBgAArX9yAAAVdKwAAetk9gAJBjYkAAAOyKIBtzHt5wAAtTD7AAARimwAA7YTFAABuvKrAAD7yvkAA20yigAAbYNzAABQwO+w==
Message-ID: <C8E74603.1E376%nitinb@juniper.net>
In-Reply-To: <C6921F0EC3DEDB419A67B42AB1EA213802DE9807@XMB-RCD-206.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-Entourage/13.4.0.100208
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "mpls@ietf.org" <mpls@ietf.org>
Subject: Re: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Fri, 22 Oct 2010 20:46:33 -0000

Hi Shaleen,

> Good to know that responder-identifier will work for you at the bud
> nodes. Now for the new point you raised, regarding DDMAP label
> validation, please refer to section 4.3.4. "Use of Downstream Detailed
> Mapping TLV in Echo Request"
> (http://tools.ietf.org/html/draft-ietf-mpls-p2mp-lsp-ping-12#section-4.3
> .4). It states:
>
>    In the echo request packet, the "Downstream IP Address" field,
>    of the Downstream Detailed Mapping TLV, SHOULD be set to the
>    ALLROUTERS multicast address.

But if one sets that, then validation will not be performed by downstream
router. So it's not a good option.

> Let's consider the new topology you sent:
> -----LSP1----
> -----------LSP2---------
> A-----B------C----D----E
>             BUD
>
> So after B has sent its response, the new request should contain the
> ALLROUTERS address. This will prevent the DDMAP label validation
> failures you are referring to. Moreover, if you have a responder
> identifier, then you will not run into the label validation issue.
>
>
> BTW I see another issue with your suggestion. There are other possible
> implementations for PHP. Let's go back to your first topology.
>
>   H - M1 - B - M2 - T
>
> Here:
>  H: Head
>  M1, M2: Two mid-point nodes
>  B: Bud
>  T: Tail
>
> In your implementation, B has offloaded the packet duplication to M1.
> Now M1 has to take in one packet and send out two copies. One copy will
> have label and the other without label. (Hence, there will be double
> bandwidth usage on M1-B link.) Now B will consume the unlabeled packet
> and forward the labeled packet. Your suggestion will prevent B from
> responding to the unlabeled packet at all.
>
> A different vendor can have a different implementation with PHP where B
> does the packet duplication itself. So M1 sends an unlabeled packet to
> B.

This is not possible. It breaks P2MP MPLS forwarding model. If B receives an
unlabeled packet, then it needs to do 2 things:
- Consumes one packet
- Push a label (by doing an IP lookup).

B has to receive a labeled packet for it to send it down towards T.
Only possible way for B to do replication is that it receives a labeled
packet and does 2 things:
- Consumes one copy
- Swaps other copy and sends it downstream

Let me know if Shivakumar's proposal does not address this case.

Thanks
Nitin

> Then B does the duplication: consumes one copy and sends the other
> copy to downstream router. If we go with your suggestion, then B will
> never respond to any OAM packet for this implementation, as it receives
> only unlabeled packets. This is not a valid behavior.
>
>
> Regards,
> Shaleen
>
>
>
> -----Original Message-----
> From: Shivakumar Channalli [mailto:shivakumar@juniper.net]
> Sent: Friday, October 22, 2010 12:15 PM
> To: Shaleen Saxena (ssaxena)
> Cc: mpls@ietf.org; Nitin Bahadur
> Subject: RE: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
>
> Hi Shaleen ,
>
> |I understand that tails do not get two copies the packet. My question
> is
> |about the subsequent iterations in the traceroute. For increasing
> values
> |of TTL, all the tail nodes that have replied previously will keep on
> |responding. If I understand your previous email correctly, you said
> that
> |you want to use Responder-Identifier to limit that. Is it not correct?
> |If this is correct, then won't that solution work for your bud nodes?
>
> It'll work.
> If we have Responder-Identifier , then we might not need "TTL expire
> flag" as well right ?
>
> The suggestion I was proposing prevents a bud node from getting 2 copies
> of the same packet, and replying back twice, which may/may not create
> problems at ingress.
>
> Also, it makes the operation of PHP and UHP modes of tracing at +BUD
> nodes+ almost same, as they now need to respond back, only for labeled
> packets.
>
> I am not saying that, whatever the current draft is saying is wrong. I
> am trying to +improvise+ the BUD node scenario in case of PHP mode,
> Which I think is not thought about in the draft.
>
> The basic idea behind dropping the +unlabelled packet+ at BUD is that,
> it reached due to PHP and not because of TTL expiry.
>
> In tail anyways we get a single copy of the packet, so we should not be
> doing anything.
>
>
> If we don't include this rule, it causes some more problems.
>
> In PHP mode:
>
> -----LSP1----
> -----------LSP2---------
> A-----B------C----D----E
>             BUD
>
> Just consider, when a request reaches B, B +might+ respond in 2 ways
> a) With 2 down maps 1 containing label 3 and another containing actual
> label, As one can reach C, with or without label.
> b) With a single down map containing an actual label.
>
> Both the responses are valid. For simplicity let's consider that B
> replied back with only 1 downmap (b)
>
> Now consider, we send a request to C with a downmap containing actual
> label.
> C ends up receiving 2 copies of the same packet, one with label and
> another without label. (if we don't apply the rule I mentioned)
>
> In this case, label validation will fail for the packet received without
> label. Because the downmap contains a label and we received a packet
> without label.
>
> So we send out success as well as failure responses for the same request
> message received, which is not correct.
>
> The only way we can prevent this scenario is, by applying the suggested
> rule.
>
> This is actually what I trying to prevent.
>
>
>
>
>
>
> $hiv...
>
>
>
> |-----Original Message-----
> |From: Shaleen Saxena (ssaxena) [mailto:ssaxena@cisco.com]
> |Sent: Thursday, October 21, 2010 6:28 PM
> |To: Shivakumar Channalli
> |Cc: mpls@ietf.org; Nitin Bahadur; Shaleen Saxena (ssaxena)
> |Subject: RE: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
> |
> |Hi Shiv,
> |
> |I understand that tails do not get two copies the packet. My question
> is
> |about the subsequent iterations in the traceroute. For increasing
> values
> |of TTL, all the tail nodes that have replied previously will keep on
> |responding. If I understand your previous email correctly, you said
> that
> |you want to use Responder-Identifier to limit that. Is it not correct?
> |If this is correct, then won't that solution work for your bud nodes?
> |
> |Shaleen
> |
> |-----Original Message-----
> |From: Shivakumar Channalli [mailto:shivakumar@juniper.net]
> |Sent: Thursday, October 21, 2010 2:10 AM
> |To: Shaleen Saxena (ssaxena)
> |Cc: mpls@ietf.org; Nitin Bahadur
> |Subject: RE: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
> |
> |Shaleen,
> |
> |For tail nodes we don't get 2 copies of the same packet unlike bud
> |nodes.
> |Its just a particular case of bud nodes that we have to solve here.
> |
> |
> |
> |$hiv...
> |
> |
> |
> ||-----Original Message-----
> ||From: Shaleen Saxena (ssaxena) [mailto:ssaxena@cisco.com]
> ||Sent: Wednesday, October 20, 2010 9:59 PM
> ||To: Shivakumar Channalli
> ||Cc: mpls@ietf.org; Nitin Bahadur; Shaleen Saxena (ssaxena)
> ||Subject: RE: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
> ||
> ||Hi,
> ||
> ||I understand your PHP usage better now. However changing the behavior
> |of
> ||T bit will not prevent multiple responses from tail nodes. If you plan
> ||to use Responder Identifier TLV to limit that, then it will work for
> |bud
> ||nodes as well (unless bud node itself is the target). So changing the
> ||behavior of the T bit for PHP is only a partial solution to the
> |problem.
> ||
> ||Shaleen
> ||
> ||
> ||-----Original Message-----
> ||From: Shivakumar Channalli [mailto:shivakumar@juniper.net]
> ||Sent: Tuesday, October 19, 2010 8:41 AM
> ||To: Shaleen Saxena (ssaxena)
> ||Cc: mpls@ietf.org; Nitin Bahadur
> ||Subject: RE: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
> ||
> ||Shaleen,
> ||
> ||||  H - M1 - B - M2 - T
> ||||
> ||||Here:
> |||| H: Head
> |||| M1, M2: Two mid-point nodes
> |||| B: Bud
> |||| T: Tail
> ||
> |||As per your suggestion, when T flag is used in a PHP scenario:
> |||- Bud nodes will never respond, even if it is their turn to do so,
> ||
> ||Let me explain it again. If a packet is sent with TTL 2
> ||Bud node B receives 2 packets:
> ||1) Labeled packet, due to TTL expiry (for which it would normally
> ||perform a  swap and send it to M2)
> ||2) unlabelled packet, which arrives due to PHP done at M1
> ||
> ||The suggestion is to drop the unlabelled packet(2) at bud, if "TTL
> ||expiry flag" is set, because it landed in B due to PHP done at M1, not
> ||due to label TTL expiry.
> ||
> ||
> |||- Tail nodes will keep responding to all echo requests where TTL is
> |||greater than their depth.
> |||
> |||I am not sure how this behavior can be helpful to traceroute.
> ||
> ||Tail nodes will always get a single copy of the packet unlike bud
> |nodes.
> ||
> ||More ever, if the responder-id tlv is present a node would never
> |respond
> ||back, unless the criterions for responder-id tlv are met correctly.
> ||
> ||
> |||The original problem is that bud and tail nodes keep responding to
> |||traceroute requests, for TTL greater than their depth. The extra
> |||responses can be prevented if the nodes check for label expiry.
> |However
> |||without the label, traceroute packets for various TTL values look the
> |||same. If you have a suggestion on how to solve this problem in a PHP
> |||scenario, I will be willing to put it in the draft.
> ||
> ||
> ||This problem can be solved by dropping +unlabelled packets+ at +bud
> ||node+, if TTL expiry flag is set in the request.
> ||
> ||
> ||
> ||
> ||$hiv...
> ||
> ||
> ||
> |||-----Original Message-----
> |||From: Shaleen Saxena (ssaxena) [mailto:ssaxena@cisco.com]
> |||Sent: Tuesday, October 19, 2010 5:08 PM
> |||To: Shivakumar Channalli
> |||Cc: mpls@ietf.org; Nitin Bahadur; Shaleen Saxena (ssaxena)
> |||Subject: RE: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
> |||
> |||Hi Shivakumar:
> |||
> |||I did not put the suggested text after discussions with other
> authors.
> |||The behavior you suggest does not solve the problem of receiving
> |||multiple responses from various bud and tail nodes during traceroute.
> |||
> |||As per your suggestion, when T flag is used in a PHP scenario:
> |||- Bud nodes will never respond, even if it is their turn to do so,
> |||- Tail nodes will keep responding to all echo requests where TTL is
> |||greater than their depth.
> |||
> |||I am not sure how this behavior can be helpful to traceroute.
> |||
> |||The original problem is that bud and tail nodes keep responding to
> |||traceroute requests, for TTL greater than their depth. The extra
> |||responses can be prevented if the nodes check for label expiry.
> |However
> |||without the label, traceroute packets for various TTL values look the
> |||same. If you have a suggestion on how to solve this problem in a PHP
> |||scenario, I will be willing to put it in the draft.
> |||
> |||Regards,
> |||Shaleen
> |||
> |||-----Original Message-----
> |||From: Shivakumar Channalli [mailto:shivakumar@juniper.net]
> |||Sent: Tuesday, October 19, 2010 2:00 AM
> |||To: Shaleen Saxena (ssaxena)
> |||Cc: mpls@ietf.org; Nitin Bahadur
> |||Subject: [mpls] I-D Action:draft-ietf-mpls-p2mp-lsp-ping-12.txt
> |||
> |||Shaleen,
> |||Please find the mail thread, where in we had a discussed about PHP
> |||scenario.
> |||
> |||
> |||
> |||$hiv...
> |||
> |||
> |||
> |||-----Original Message-----
> |||From: Shivakumar Channalli
> |||Sent: Tuesday, June 01, 2010 6:17 PM
> |||To: 'Shaleen Saxena (ssaxena)'; Santiago Alvarez (saalvare); Nitin
> |||Bahadur
> |||Cc: mpls@ietf.org
> |||Subject: RE: [mpls] Last Calls on P2MP LSP Ping and Enhanced DS Map
> |||
> ||||I will updated the P2MP OAM draft to reflect the PHP scenario.
> ||||
> ||||So does PHP always happen before bud node? Consider the following
> ||||topology:
> ||||
> ||||  H - M1 - B - M2 - T
> ||||
> ||||Here:
> |||| H: Head
> |||| M1, M2: Two mid-point nodes
> |||| B: Bud
> |||| T: Tail
> |||
> |||PHP will happen before tail (T i.e pure egress) also.
> |||In the example T is pure egress, so packet should be processed by T,
> ||but
> |||in case of B (bud node) it should be dropped.
> |||
> |||That's why it should be clearly specified as
> |||
> |||"In p2mp LSP case, if a node (other than ++pure egress++) receives a
> |||+MPLS
> |||LSP trace packet+, without any label, then it should drop the packet
> |||without processing"
> |||
> |||In other words, "if a bud node receives a unlabelled packets , then
> it
> |||should be dropped"
> |||
> |||
> ||||
> ||||So will both M1 and M2 send out unlabelled packets? Will the TTL of
> ||the
> ||||packet cause any different behavior from M1 and M2?
> |||
> |||I guess, there should not be any problems as such.
> |||
> |||
> |||
> ||||Also, your suggestion applies to only packets with T bit turned on,
> ||||correct? If it is for all ping/trace packets, then I foresee some
> ||||issues, where certain nodes will never respond.
> |||
> |||That's correct. The packets should be dropped only if T bit is set.
> |||Other wise in ping mode of operation, we may not get reply at all if
> |we
> |||apply this rule to all packets.
> |||
> |||
> |||
> |||...$hiv
> |||
> |||
> |||
> ||||-----Original Message-----
> ||||From: Shaleen Saxena (ssaxena) [mailto:ssaxena@cisco.com]
> ||||Sent: Tuesday, June 01, 2010 5:51 PM
> ||||To: Shivakumar Channalli; Santiago Alvarez (saalvare); Nitin Bahadur
> ||||Cc: mpls@ietf.org; Shaleen Saxena (ssaxena)
> ||||Subject: RE: [mpls] Last Calls on P2MP LSP Ping and Enhanced DS Map
> ||||
> ||||Hi Shiv, Nitin,
> ||||
> ||||I will updated the P2MP OAM draft to reflect the PHP scenario.
> ||||
> ||||So does PHP always happen before bud node? Consider the following
> ||||topology:
> ||||
> ||||  H - M1 - B - M2 - T
> ||||
> ||||Here:
> |||| H: Head
> |||| M1, M2: Two mid-point nodes
> |||| B: Bud
> |||| T: Tail
> ||||
> ||||So will both M1 and M2 send out unlabelled packets? Will the TTL of
> ||the
> ||||packet cause any different behavior from M1 and M2?
> ||||
> ||||Also, your suggestion applies to only packets with T bit turned on,
> ||||correct? If it is for all ping/trace packets, then I foresee some
> ||||issues, where certain nodes will never respond.
> ||||
> ||||Thanks,
> ||||Shaleen
> ||||
> ||||
> ||||> -----Original Message-----
> ||||> From: Shivakumar Channalli [mailto:shivakumar@juniper.net]
> ||||> Sent: Saturday, May 29, 2010 11:13 AM
> ||||> To: Santiago Alvarez (saalvare); Nitin Bahadur; Shaleen Saxena
> ||||> (ssaxena)
> ||||> Cc: mpls@ietf.org
> ||||> Subject: RE: [mpls] Last Calls on P2MP LSP Ping and Enhanced DS
> Map
> ||||>
> ||||>
> ||||> |> 1. precluding bud node support
> ||||> Another way is to try to solve bud node issue in case of PHP
> ||||>
> ||||> |> 2. bud node receiving duplicate traffic (label and unlabeled)
> ||||> |> Cheers.
> ||||> Receiving unlabelled packet in case of PHP can be solved by
> ||following
> ||||a
> ||||> simple rule.
> ||||>
> ||||> "In p2mp LSP case, if a node (other than pure egress) receives a
> |||+MPLS
> ||||> LSP trace packet+, without any label, then we should drop the
> |packet
> ||||> without processing"
> ||||>
> ||||> Reason: In trace route mode we want packets to reach control plane
> |||due
> ||||> to TTL expiry, but in PHP p2mp mode packets are also received by
> |bud
> ||||> nodes due the PHP. As a result we can make an assumption that, the
> ||||> packet received by control plane is not due to TTL expiry, and
> drop
> ||||the
> ||||> packets.
> ||||>
> ||||>
> ||||> ...$hiv
> ||||>
> ||||>
> ||||>
> ||||> |-----Original Message-----
> ||||> |From: Santiago Alvarez (saalvare) [mailto:saalvare@cisco.com]
> ||||> |Sent: Saturday, May 29, 2010 6:03 AM
> ||||> |To: Nitin Bahadur; Shaleen Saxena (ssaxena); Shivakumar Channalli
> ||||> |Cc: mpls@ietf.org; Santiago Alvarez (saalvare)
> ||||> |Subject: RE: [mpls] Last Calls on P2MP LSP Ping and Enhanced DS
> |Map
> ||||> |
> ||||> |It seems to me that, in order to find PHP acceptable for P2MP
> |LSPs,
> ||||> one
> ||||> |the these two need to be acceptable:
> ||||> |1. precluding bud node support
> ||||> |2. bud node receiving duplicate traffic (label and unlabeled)
> ||||> |Cheers.
> ||||> |
> ||||> |SA
> ||||> |--
> ||||> |> -----Original Message-----
> ||||> |> From: mpls-bounces@ietf.org [mailto:mpls-bounces@ietf.org] On
> ||||Behalf
> ||||> |Of
> ||||> |> Nitin Bahadur
> ||||> |> Sent: Friday, May 28, 2010 4:52 PM
> ||||> |> To: Shaleen Saxena (ssaxena); Shivakumar Channalli
> ||||> |> Cc: mpls@ietf.org
> ||||> |> Subject: Re: [mpls] Last Calls on P2MP LSP Ping and Enhanced DS
> |||Map
> ||||> |>
> ||||> |>
> ||||> |> Shaleen,
> ||||> |>
> ||||> |> > I was referring to
> ||||> |> >
> http://tools.ietf.org/html/draft-ietf-mpls-rsvp-te-no-php-oob-
> ||||> |> > mapping-04
> ||||> |>
> ||||> |> This draft does not say that PHP *must not* be used ever for
> |RSVP
> ||||> |P2MP.
> ||||> |> This draft specifies a requirement for non-PHP behavior and
> ||solves
> ||||> |that
> ||||> |> problem.
> ||||> |>
> ||||> |> > . Do you have an application where you use PHP? Is P2MP TE
> ||||> |> > with PHP going to be deployed in service provider networks?
> ||||> |>
> ||||> |> Yes...we have customers (in deployment) using P2MP with PHP.
> ||||> |>
> ||||> |> nitin
> ||||> |> _______________________________________________
> ||||> |> mpls mailing list
> ||||> |> mpls@ietf.org
> ||||> |> https://www.ietf.org/mailman/listinfo/mpls