Re: [Forces-protocol] RE: GET/SET in one msg ?

"Ligang Dong" <donglg@mail.hzic.edu.cn> Mon, 25 October 2004 09:12 UTC

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 FAA03329 for <forces-protocol-web-archive@ietf.org>; Mon, 25 Oct 2004 05:12:37 -0400 (EDT)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CM17X-0001Dj-H8 for forces-protocol-web-archive@ietf.org; Mon, 25 Oct 2004 05:26:31 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CM0tw-0008EE-Oo; Mon, 25 Oct 2004 05:12:28 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CM0sv-0007ut-Cb for forces-protocol@megatron.ietf.org; Mon, 25 Oct 2004 05:11:26 -0400
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 FAA03251 for <forces-protocol@ietf.org>; Mon, 25 Oct 2004 05:11:22 -0400 (EDT)
Received: from [202.96.99.56] (helo=202.96.99.56) by ietf-mx.ietf.org with smtp (Exim 4.33) id 1CM15S-00019V-GP for forces-protocol@ietf.org; Mon, 25 Oct 2004 05:25:17 -0400
Received: from [202.96.99.59] by 202.96.99.56 with StormMail ESMTP id 99432.341813895; Mon, 25 Oct 2004 17:30:12 +0800 (CST)
Received: from dlg (unverified [202.96.99.60]) by mail.gsu.cn (Rockliffe SMTPRA 6.0.11) with SMTP id <B0000088783@mail.gsu.cn>; Mon, 25 Oct 2004 17:05:52 +0800
Message-ID: <00c601c4ba72$241599d0$8401a8c0@dlg>
From: "Ligang Dong" <donglg@mail.hzic.edu.cn>
To: <hadi@znyx.com>
References: <468F3FDA28AA87429AD807992E22D07E025791E5@orsmsx408> <002d01c4b50b$1ecc9c10$020aa8c0@wwm1> <1098102734.1042.134.camel@jzny.localdomain> <013101c4b51d$a50761e0$020aa8c0@wwm1> <1098134060.1077.446.camel@jzny.localdomain> <5.1.0.14.0.20041019093826.0232d418@mail.megisto.com> <055401c4b669$97a1c840$845c21d2@Necom.hzic.edu.cn> <1098383190.2883.386.camel@localhost.localdomain> <00dd01c4b803$806bd620$8401a8c0@dlg> <1098442868.1112.38.camel@jzny.localdomain>
Subject: Re: [Forces-protocol] RE: GET/SET in one msg ?
Date: Mon, 25 Oct 2004 17:08:06 +0800
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
X-Spam-Score: 1.4 (+)
X-Scan-Signature: b045c2b078f76b9f842d469de8a32de3
Cc: "Khosravi, Hormuzd M" <hormuzd.m.khosravi@intel.com>, ram.gopal@nokia.com, "Steven Blake \(petri-meat\)" <slblake@petri-meat.com>, Zsolt Haraszti <zsolt@modularnet.com>, "Joel M. Halpern" <jhalpern@megisto.com>, forces-protocol@ietf.org, "Wang, Weiming" <wmwang@mail.hzic.edu.cn>
X-BeenThere: forces-protocol@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: forces-protocol <forces-protocol.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/forces-protocol>, <mailto:forces-protocol-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/forces-protocol>
List-Post: <mailto:forces-protocol@ietf.org>
List-Help: <mailto:forces-protocol-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/forces-protocol>, <mailto:forces-protocol-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1856779557=="
Sender: forces-protocol-bounces@ietf.org
Errors-To: forces-protocol-bounces@ietf.org
X-Spam-Score: 1.4 (+)
X-Scan-Signature: 162d87dc0b780d17da9b1934777fd451

hi, Jamal, 
Sorry for the delay because of my holiday.
I like your example although I have not used ASIC in my implementation prototype.
My current experiences tell me that multicast addressing can make the message simpler and have better transmission efficiency.

In your design about the multicast, I notice that you use "LFBInstanceMask". It means that you use multicast address. It is obviously an approach. Another approach is to use a list of included LFB instance addresses.

best regards
Ligang


----- Original Message ----- 
From: "Jamal Hadi Salim" <hadi@znyx.com>
To: "Ligang Dong" <donglg@mail.hzic.edu.cn>
Cc: "Zsolt Haraszti" <zsolt@modularnet.com>om>; "Wang,Weiming" <wmwang@mail.hzic.edu.cn>cn>; "Khosravi, Hormuzd M" <hormuzd.m.khosravi@intel.com>om>; "Joel M. Halpern" <jhalpern@megisto.com>om>; <ram.gopal@nokia.com>om>; "Steven Blake (petri-meat)" <slblake@petri-meat.com>om>; "Alan DeKok" <alan.dekok@idt.com>om>; <forces-protocol@ietf.org>rg>; "Ellen M Deleganes" <ellen.m.deleganes@intel.com>om>; "Yang,Lily L" <lily.l.yang@intel.com>
Sent: Friday, October 22, 2004 7:01 PM
Subject: Re: [Forces-protocol] RE: GET/SET in one msg ?


> Ligang,
> 
> Lets continue this discussion assuming we dont need to update anything
> in the draft for now.
> 
> Can you explain under which circumstances it was desirable to do
> multicast to several instances?
> I can give you an example where this would be valuable to me:
> Two of the (commodity) ASICs we use have a table per set of ports
> ranging from 1-8 ports per table. So I could have anywhere
> 6-24 LPM tables for example on the same FE - depending on the chip port
> enumeration or board layout. To me these are 6-48 instances of the same
> (LPM) LFB. when i look at all of them as part of a single NE, I have
> done some rough calculation and anywhere between 90-80% of the time
> i would send the _same_ table values. The rest of the time they will
> vary. 
> So to me the mutlicast/broadcast/port range is valuable. I dont think
> this is only valuable to me or you (Sorry i missed the reasoning on your
> and Weiming part in the email thread), rather these are commodity ASICs
> which i expcte to be used a lot to help ForCES become ubiquitous. Folks,
> We cant just ignore the fact they exist and hope they will go away.
> 
> My opinion, since we are discussing this post draft release:
> To bring back old discussions (Apologies in advance), to meet the above
> requirements, one would need to split the grammar so we have a Instance
> selector level where we could have specific instances within a class; as
> well ability to select multiple in one instance selection; i.e something
> along the lines of (hopefully diagrams look right):
> 
> 
>      +--- T = LFBselect
>      |        |    
>      |        |
>      |        +-- LFBCLASSID = 0x45 
>      |        |
>      |        +---T = LFBTARGET_UNICAST
>      |        |     |
>      |        |     +-- LFBInstance = 0x4321
>      |        |     |
>      |        |     +-- T = ADD
>      |        |     |   |
>      |        |     |   +--  // path-data 
>      |        |     |        
>      |        |    
>      |        +---T = LFBTARGET_MCAST
>      |        |     |
>      |        |     +-- LFBInstance = 0x1234
>      |        |     |
>      |        |     |
>      |        |     +-- LFBInstanceMask = 0xf
>      |        |     |
>      |        |     +-- T = ADD
>      |        |     |   |
>      |        |     |   +--  // path-data
>      |        |     |      
>      |        |     |
>      |        |    
>      |        +---T = LFBTARGET_UNICAST
>      |        |     |
>      |        |     +-- LFBInstance = 0x5678
>      |        |     |
>      |        |     +-- T = DEL
>      |        |     |   |
>      |        |     |   +--  // path-data
>      |        |     |      
>      |        |     |
> 
> Apologies if this is what is being discussed already in thread
> involving Steve/Robert/Weiming.
> Again, I may have miscontrued your need, but please chip in.
> 
> cheers,
> jamal
> 
> 
> On Fri, 2004-10-22 at 02:51, Ligang Dong wrote:
> > hi,
> > 
> > The following is my opinion about the debate whether multicast (i.e., multiple addressing) of LFB Instance is required or not. 
> > 
> > (1) In past several months, I am engaged in the implementation of ForCES & GRMP. Till now, a basic prototype is already constructed. Also it has been shown to several guys in this research field. From the view of implementation, the multicast of LFB instance is easy. 
> > (2) Furthermore, multicast of LFB instance is more efficient than the "unicast" approach and the "virtualID" approach. Therefore, why not adopt multicast of LFB instance in the protocol. 
> > best regards
> > Ligang
> > ----- Original Message ----- 
> > From: "Zsolt Haraszti" <zsolt@modularnet.com>
> > To: "Wang,Weiming" <wmwang@mail.hzic.edu.cn>
> > Cc: "Khosravi, Hormuzd M" <hormuzd.m.khosravi@intel.com>om>; "Joel M. Halpern" <jhalpern@megisto.com>om>; <ram.gopal@nokia.com>om>; "Steven Blake (petri-meat)" <slblake@petri-meat.com>om>; "Alan DeKok" <alan.dekok@idt.com>om>; "Jamal Hadi Salim" <hadi@znyx.com>om>; <forces-protocol@ietf.org>rg>; "Ellen M Deleganes" <ellen.m.deleganes@intel.com>om>; "Yang,Lily L" <lily.l.yang@intel.com>
> > Sent: Friday, October 22, 2004 2:26 AM
> > Subject: Re: [Forces-protocol] RE: GET/SET in one msg ?
> > 
> > 
> > > Weiming,
> > > 
> > > I have a very hard time to resonate with your examples, and therefore
> > > with your reasoning.
> > > 
> > > For one, if you end up needing 64k LFBs from the same class, I think
> > > you or we did something wrong with the model.  Sure you mean it an
> > > extreme case, but I think it is a misleading one.  I envision
> > > practical LFB models having up to a few hundred LFB instances, where
> > > multiple instances of the same class will be in very different roles
> > > (e.g., a Classifier LFB supporting Diffserv versus a Classifier
> > > LFB supporting IPsec, etc.), hence more often not sharing any config
> > > data than sharing some.
> > > 
> > > For two, displacing the two parts of the LFB address (class ID and
> > > instance ID) in the protocol is a much bigger concern to me than to
> > > allow ad-hoc/state-less multicast addressing.  It would be in some
> > > sense similar to if in the IP header the (sub-)network address and
> > > host-address part of the IP address were placed in distant offsets.
> > > 
> > > For three, on state-less versus state-ful multicast:  Your example
> > > below is based on the very extreme case when you have a SINGLE
> > > config message addressed to a VERY LARGE number of LFB instances
> > > of the same class.  I have not yet seen a practical case for this
> > > scenario.  I reiterate that multicast groups are not ad-hoc, and
> > > there will be typically a large number of config updates sent to a
> > > group after the group is formed.
> > > 
> > > Regards,
> > > Zsolt
> > > 
> > > On Wed, 2004-10-20 at 01:56, Wang,Weiming wrote:
> > > > Joel,
> > > > 
> > > > ----- Original Message -----
> > > > From: "Joel M. Halpern" <jhalpern@MEGISTO.com>
> > > > Subject: Re: [Forces-protocol] RE: GET/SET in one msg ?
> > > > 
> > > > 
> > > > > I do think that there may be thousands of instances.
> > > > > I do not think that this requires multiple addressing.
> > > > >
> > > > > I think that there are some interesting cases prompted by the possibility
> > > > > of very large numbers of LFBs, but they do not drive multiple addressing.
> > > > >
> > > > > My reasoning is based on the following premise.
> > > > > Firstly, if there are many LFBinstances s of a class, then it is likely
> > > > > that many fields of the LFB instances will be the same, but it is extremely
> > > > > unlikely that all fields of the LFB instances will be the same.
> > > > [Weiming]That's just why explicit multipul addressing is needed. For the case of
> > > > fields of all LFBinsatnces are the same, we can simply use a broadcast to do so.
> > > > Let me try to show a scenario why multipul addressing is needed for different
> > > > fields case.
> > > > 
> > > > Firstly, because we have assumed the 16bit insatnce Id is not enough, we can
> > > > reasonably assmue there is a case where there are 64k or more instances (say
> > > > 64k). Further, we suppose Id1 to Id32k need to config parameter 1, Id(32k+1) to
> > > > Id 64k to set parameter2.
> > > > 
> > > > Then, by using single instance addressing, the protocol becomes horrible, either
> > > > using one message or using separate messages. I just show the one message case.
> > > > The message format would like like:
> > > > 
> > > > Msghdr
> > > > LFBselect
> > > > LFBClassID
> > > > Instance ID1
> > > > Parameter1
> > > > Instance ID2
> > > > Parameter1
> > > > ...
> > > > ...
> > > > Instance ID 32k
> > > > Parameter1
> > > > Insatnce ID (32k+1)
> > > > Parameter2
> > > > ....
> > > > Instance ID 64k
> > > > Parameter 2
> > > > 
> > > > Remember we then have 64k pair of instance and parameter in the protocol text.
> > > > In some cases, I'm just worried this make protocol unpractical.
> > > > 
> > > > By using multipul addressing, the only text is as:
> > > > Msghdr
> > > > LFBselect
> > > > LFBClassID
> > > > Instance ID1 to ID 32k
> > > > Parameter1
> > > > Instance ID (32k+1) to ID 64k
> > > > Parameter2
> > > > 
> > > > By using multicast scheme supposed by Zsolt, I suppose we need following steps:
> > > > 1. send a FE attribute to FE object to setup a virtualID1 for Instance 1 to
> > > > Instance 32k
> > > > 2. send a FE attribute to FE object to setup a virtualID2 for Instance (32k+1)
> > > > to Instance 64k
> > > > 3. config:
> > > > Msghdr
> > > > LFBselect
> > > > LFBClassID
> > > > Virtual ID1
> > > > Parameter1
> > > > Virtual ID2
> > > > Parameter2
> > > > 4. send a message to release virtual ID1
> > > > 5. send a message to release virtual ID2
> > > > 
> > > > I can see the advatage of above explicit multipul addressing scheme very
> > > > clearly.
> > > > 
> > > > > The simplest case to understand when one would need to setup all those LFBs
> > > > > at once is in a power recovery situation  (the FE lost power, then
> > > > > recovered to an empty state.)  The CE needs to send the configuration
> > > > > information to the FE.
> > > > [Weiming]Yes, that's the one case but not the only.
> > > > 
> > > > > Secondly, I believe that transaction count is much more important than data
> > > > > volume.  The FE is going to have to set every field in every LFB.  Encoding
> > > > > is not going to change that.
> > > > [Weiming]I'm not sure if you mean for every operation, we should maintain a
> > > > transaction count. If is, then I have to say our current one message with
> > > > multiple Operation definitions has already be against the requirement. My
> > > > opinion is transaction maintenance is moderate, while multicast and multiple
> > > > operation are more important.
> > > > 
> > > > > Given that there are distinct values in each LFB instance, there must be an
> > > > > operation against each LFB instance.
> > > > I don't think multicast will loose operation individuality.
> > > > >
> > > > > The marginal gain from having a single transaction to update the identical
> > > > > fields, and then individual transactions for the distinct fields is very
> > > > > small.  It does not reduce the number of IOs or the core transaction rate.
> > > > [Weiming]At least it saves bits greatly and makes protocol practical. Remember
> > > > the capability between CE and FE are quite limited, especially in muli-hop
> > > > ForCES application.
> > > > >
> > > > > If it is desired to optimize for this case, we may want to introduce (in a
> > > > > future version of the protocol) some kind of block checkpoint / restart
> > > > > mechanism.  The CE would record its full state about the FE, and then ask
> > > > > the FE for a dump suitable for restoral of the FE state.  Upon restart, the
> > > > > CE would rebuild its state from its stored representation, and would ship
> > > > > the dump back to the FE to enable efficient rebuilding there.  I can see
> > > > > significant value in such a mechanism.  I do not however see a need to
> > > > > include this in the first deliverable of the protocol.
> > > > [Weiming]I suppose this is only for restart case, I can see many cases where
> > > > multiple addressing can apply, such as delete, change of LFB parameter, load and
> > > > unload of LFBs, etc. And also I think the scheme above is much more complex than
> > > > multiple addressing. So, my conclusion is, with a little bit expansion, we can
> > > > gain much, then why not we adpot it?
> > > > 
> > > > Best regards,
> > > > Weiming
> > > > >
> > > > > Yours,
> > > > > Joel M. Halpern
> > > > 
> > > -- 
> > > Zsolt Haraszti                Phone:  +1 919-765-0027/2017
> > > Modular Networks              Mobile:      +1 919-522-2337
> > >                               Email:  zsolt@modularnet.com
> > > 
> > > 
> > > _______________________________________________
> > > Forces-protocol mailing list
> > > Forces-protocol@ietf.org
> > > https://www1.ietf.org/mailman/listinfo/forces-protocol
> > > 
> 
_______________________________________________
Forces-protocol mailing list
Forces-protocol@ietf.org
https://www1.ietf.org/mailman/listinfo/forces-protocol