Re: [pim] WG Query: draft-farinacci-pim-pop-count-00.txt

Dino Farinacci <dino@cisco.com> Wed, 03 November 2004 07:05 UTC

Received: from megatron.ietf.org (megatron.ietf.org [132.151.6.71]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id CAA11685 for <pim-archive@lists.ietf.org>; Wed, 3 Nov 2004 02:05:55 -0500 (EST)
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CPF4t-0002As-Nr; Wed, 03 Nov 2004 01:57:07 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CPExj-000817-9d for pim@megatron.ietf.org; Wed, 03 Nov 2004 01:49:43 -0500
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id BAA04329 for <pim@ietf.org>; Wed, 3 Nov 2004 01:49:42 -0500 (EST)
Received: from sj-iport-2-in.cisco.com ([171.71.176.71] helo=sj-iport-2.cisco.com) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CPFCy-0003Tm-Kd for pim@ietf.org; Wed, 03 Nov 2004 02:05:30 -0500
Received: from sj-core-2.cisco.com (171.71.177.254) by sj-iport-2.cisco.com with ESMTP; 02 Nov 2004 22:59:34 -0800
Received: from dino-lnx.cisco.com (dino-lnx.cisco.com [171.71.54.55]) by sj-core-2.cisco.com (8.12.10/8.12.6) with ESMTP id iA36n5nC012857; Tue, 2 Nov 2004 22:49:06 -0800 (PST)
Received: (from dino@localhost) by dino-lnx.cisco.com (8.11.6/8.11.6) id iA36n8H28777; Tue, 2 Nov 2004 22:49:08 -0800
Date: Tue, 02 Nov 2004 22:49:08 -0800
Message-Id: <200411030649.iA36n8H28777@dino-lnx.cisco.com>
From: Dino Farinacci <dino@cisco.com>
To: pavlin@icir.org
In-reply-to: message from Pavlin Radoslavov on Mon, 18 Oct 2004 14:00:17 -0700
Subject: Re: [pim] WG Query: draft-farinacci-pim-pop-count-00.txt
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 2bf730a014b318fd3efd65b39b48818c
Cc: shep@cisco.com, pavlin@icir.org, pusateri@juniper.net, pim@ietf.org
X-BeenThere: pim@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Protocol Independent Multicast <pim.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/pim>, <mailto:pim-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:pim@ietf.org>
List-Help: <mailto:pim-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/pim>, <mailto:pim-request@ietf.org?subject=subscribe>
Sender: pim-bounces@ietf.org
Errors-To: pim-bounces@ietf.org

    This response will address the comments from each of Pavlin, Marshall,
    and Pekka, respectively. See my responses inline.

Pavlin>> At the very high level I think it is a very good idea of having a
Pavlin>> mechanism for multicast tree accounting, etc.

    Thanks Pavlin.

Pavlin>> 
Pavlin>> Implementation/design-wise I have few comments:
Pavlin>> 
Pavlin>>  * Have you looked into related work such as the following paper:
Pavlin>>    "Tracetree: A Scalable Mechanism to Discover Multicast Tree
Pavlin>>    Topologies in the Internet" by Kamil Sarac and Kevin Almeroth:
Pavlin>>    http://www.nmsl.cs.ucsb.edu/publications.html
Pavlin>>    It has a number of interesting ideas including a mechanism to
Pavlin>>    deal with incremental deployment, it is not protocol-specific,
Pavlin>>    etc.

    No, we did not see this. But both Shep and I will have a look at it.
    Ditto for the GRA stuff too. Thanks Tony for the reference.
   
Pavlin>> 
Pavlin>>  * We need to deal with incremental deployment, otherwise there is
Pavlin>>    no initiative to even start deploying this new scheme. E.g.,
Pavlin>>    ideas from the above paper can be helpful in this aspect.

    People can deploy this when they get new software releases. And since
    the accounting can be obtained per sub-tree, within a domain, you can
    acquire some information about your relative fanout. So we never believe
    it's an all or nothing situation.

Pavlin>>  * In your proposal you overload the Join messages with accounting
Pavlin>>    information.

    We augmented the Encoded Source Address. And yes, since the Joins are
    already going upstream, we piggyback to reduce CPU overhead and an
    addition of new protocols.

Pavlin>>    The advantage of doing that is that you save some network
Pavlin>>    bandwidth and processing cycles, but the result solution becomes
Pavlin>>    a bit too complicated and lacks flexibility. For example, if

    It is not complicated, you simply fill in the fields per route you insert
    in the Join (fields that are stored in the multicast route).

    In terms of a inflexible encoding, that was done on purpose. If we 
    generalized it, then implementations could drastic increase Join sizes
    which would affect tree building. We want it lean and mean. Remember this
    mechanism is not precise in obtaining accounting data. It gives a rough
    feel of "tree attributes". A more comprehensive/precise could be put on
    top of this in the management plane.

Pavlin>>    someone wants to define a new counter, adding such counter to the
Pavlin>>    fixed  message format is impossible without redefining the whole
Pavlin>>    format again.
Pavlin>>    I would rather see those two functionalities separated:
Pavlin>>    the tree management (i.e., the Join/Prune messages), and the
Pavlin>>    tree accounting. By that I mean using a new type control message
Pavlin>>    (for accounting purpose only) which is designed to have
Pavlin>>    extensible format, etc. Then, each counter for example, can be
Pavlin>>    added as an option to the message.

    We did consider another message type but would require using a set of
    resources which are already used for sending periodic JP messages. That
    will certainly use more CPU for traversing the routing table another time
    more messages, more receive processing, etc. 

    I've done some meaurements for 100K routes being periodically joined on
    10 interfaces with 10 neighbors on each (i.e. 100 RPF neighbors 
    distributed eveningly across 100K routes). With either a preemptive or run-
    to-completion scheduling model for your PIM process, it can take up to 10
    seconds to get all the data out. This is assuming a set of routes which
    are all ASM based ((*,G,join-list & prune-list) entries as well as (S,G,
    join-list) entries).

    So we felt the piggybacking would give a better performance/benefit ratio.

Pavlin>> 
Pavlin>>  * Currently, it appears that the mechanism is PIM-SM
Pavlin>>    specific. Rather than redefining the mechanism for PIM-DM, etc,

    I tried to be practical and concluded there is so much more deployment 
    of SM then as DM. But if you needed to send Joins in DM mode for sake of 
    accounting, than, in essence, is your seperate protocol.

    I did this for Multicast Tagswitching a long time ago. That is, for DM
    groups, Joins could be sent for purposes of label binding.

Pavlin>>    I'd prefer to have a protocol-independent mechanism.
Pavlin>>    After all, it appears that the only major thing that currently
Pavlin>>    ties the mechanism to PIM-SM is the message format overloading of
Pavlin>>    the PIM-SM Join messages.

    It's a performance/benefit tradeoff. We chose to have this highly
    performing.

Pavlin>> 
Pavlin>>  * Some of the fields are probably not large enough. E.g.,
Pavlin>>    max. value of 255 for "Node Count" is one that comes to mind.
Pavlin>>    Another example is the link speed where everything below 1Mbps
Pavlin>>    becomes 0. If we are to consider the last-mile multicast, then we
Pavlin>>    need better granularity.

    I didn't think we needed that much granularity for link-speed. For node
    count we can increase the size. That was the reason for review, to get
    opinions from people about the types of accounting data they would see
    useful.

Marshall>> Hello;
Marshall>> 
Marshall>> I would basically agree with Pavlin - should this really be a PIM-SM
Marshall>> overlay, or a separate
Marshall>> protocol describing accounting messages and use ?

    Same comment as above.

Marshall>> And, of course, if its decided NOT to overlay the PIM join message,
Marshall>> shouldn't  this
Marshall>> be done by a separate WG, such as MAGMA ? So I would support moving this
Marshall>> forward, but maybe not in PIM.

    I think it all depends where the solution goes. We decided PIM was the
    right place to put the functionality so hence bringing it to the PIM
    working group was the obvious choice.

Marshall>> 
Marshall>> A suggestion
Marshall>> 
Marshall>> - I did not see a mechanism to provide feedback if certain trees
Marshall>> downstream do NOT support the protocol.
Marshall>> There should be a flag propagated upstream, I think, to indicate that
Marshall>> "this tree has partial
Marshall>> information because routers below me do not support accounting."
Marshall>> This would be very useful I think in real world partial deployment
Marshall>> scenarios (and
Marshall>> in debugging deployments), and is only a bit.

    I think this is a good idea. I can add this in the next rev of the draft.
    Thanks Marshall.

Marshall>> 
Marshall>> Also, (a pet peeve) " it's Join/Prune messages" and "it's accounting"
Marshall>> should be "its".

    Will fix. Thanks.  ;-)

Pekka>> This is coming late, but if it matters..

    It sure does to me (and Shep). Thanks Pekka.

Pekka>> I'm uncomfortable with the approach.  We need to make multicast 
Pekka>> routing less, not more complex.  This seems to be putting a external, 
Pekka>> though useful, function in the protocol where it shouldn't be.

    The proposal does not change the elements of operation for the protocol.
    There is a strong attempt to make this inline with the protocol so it is
    easy to deploy without having to plan deployment for a new mechanism as
    well as not affecting the performance of the control plane of the system.

Pekka>> 
Pekka>> Hence, I'd rather see that we tried to address the problems in a more 
Pekka>> 'conventional' manner.

    If "a more conventional manner" is SNMP, we'd like to see it perform a bit
    better. Don't you think it's more scalable to poll a single router to find 
    information for a tree at that point in the topology? Versus, having to
    find all branches and poll each one, compile the data, and then display it.

    For the NOC guys who want a quick and easy way to find some tree 
    accounting, all they would have to do is ssh to one of their routers and
    do a show command.

    Of course, once the proposal is more widely accepted, we could MIB the
    new accounting data so you can get SNMP access to the *single* router.

    All, thanks for your comments.

Dino   





_______________________________________________
pim mailing list
pim@ietf.org
https://www1.ietf.org/mailman/listinfo/pim