Re: [forces] I-D Action: draft-djjhs-forces-lfbstate-00.txt

Jamal Hadi Salim <hadi@mojatatu.com> Wed, 17 October 2012 11:00 UTC

Return-Path: <hadi@mojatatu.com>
X-Original-To: forces@ietfa.amsl.com
Delivered-To: forces@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A7C5B21F8754 for <forces@ietfa.amsl.com>; Wed, 17 Oct 2012 04:00:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.014
X-Spam-Level:
X-Spam-Status: No, score=-103.014 tagged_above=-999 required=5 tests=[AWL=-0.037, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HBRguQEaRPCM for <forces@ietfa.amsl.com>; Wed, 17 Oct 2012 04:00:04 -0700 (PDT)
Received: from mail-ob0-f172.google.com (mail-ob0-f172.google.com [209.85.214.172]) by ietfa.amsl.com (Postfix) with ESMTP id A7C9D21F874C for <forces@ietf.org>; Wed, 17 Oct 2012 04:00:04 -0700 (PDT)
Received: by mail-ob0-f172.google.com with SMTP id v19so8681202obq.31 for <forces@ietf.org>; Wed, 17 Oct 2012 04:00:04 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:x-gm-message-state; bh=5XVJVwqbsvz+z+09pTNzAfNQfhGksnSIjfVgkEqU1sM=; b=IaMWdwpiMjJJhKDdD7XPPKOGQEGEuhiN5iJh8iGyC7Jw/q3dMDdfzRDYgAO3NxVelr 59Khy1k4tbEpqLvpu7WFL6mzhxBYrAXOduWTtY0on2RbHQeBHvPqxUnrER6kIC4ULYHq Zu4W4VeJyNtHLpYtZFx9YV7SHDetJyMFAKFxf1lYSz+LM5fEgpjWunCdr3MuvONV0bx7 0alJfqZ8X5E6NoB4+XWBu9SZfZYfFQJCTo03EZMAFlTivCPYiLvTXCVrNVfg6Hw6XPn2 Sx+gmsT2nHqnhx1n4ixKleTCRGHvu19prUlU3SehErgoAbbYjvZAcOmuXucjDL9CHB1T Unnw==
Received: by 10.182.216.71 with SMTP id oo7mr14685115obc.70.1350471604151; Wed, 17 Oct 2012 04:00:04 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.95.226 with HTTP; Wed, 17 Oct 2012 03:59:43 -0700 (PDT)
In-Reply-To: <507D65F4.7030604@joelhalpern.com>
References: <20121013151956.19317.96789.idtracker@ietfa.amsl.com> <5079F9DC.9020807@joelhalpern.com> <CAAFAkD_dnCrEij2E28ec8cYU2qS_2dMui+5ev7yUL+KHHVSngQ@mail.gmail.com> <507AEB61.1050709@joelhalpern.com> <CAAFAkD8wQicgTgm6nH6W5JkB3eAi+e+yvHvoQ+PV1+Z+Y_wuPg@mail.gmail.com> <507C1DA8.2040509@joelhalpern.com> <CAAFAkD_9GNKkY9CnyB4n9iD4n+U8vOyVFQq6=qt6TP0d_NOeWA@mail.gmail.com> <507D65F4.7030604@joelhalpern.com>
From: Jamal Hadi Salim <hadi@mojatatu.com>
Date: Wed, 17 Oct 2012 06:59:43 -0400
Message-ID: <CAAFAkD-A3rXa+9RbygGE7C4B9=65eX0W6McM4FVK1Qn1ZEazZg@mail.gmail.com>
To: "Joel M. Halpern" <jmh@joelhalpern.com>
Content-Type: text/plain; charset="ISO-8859-1"
X-Gm-Message-State: ALoCoQkRzo58b03zZExukpiJx+gDGE/pdI9YN0vOvfbOuYPNmP5MHaRpxuZa3Z15Q7Feps+x80jA
Cc: forces <forces@ietf.org>
Subject: Re: [forces] I-D Action: draft-djjhs-forces-lfbstate-00.txt
X-BeenThere: forces@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: ForCES WG mailing list <forces.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/forces>, <mailto:forces-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/forces>
List-Post: <mailto:forces@ietf.org>
List-Help: <mailto:forces-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/forces>, <mailto:forces-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Oct 2012 11:00:05 -0000

Joel,

Lets defer this discussion to th meeting time; you may be able
to  convince us or us convince you.
Ignoring the non-modifiable topology issue...
It becomes a usability issue if an LFB instanc  belongs to more than one
topology (more messages).
The maybe purist arguement is : if a node in a graph is tagged "down"
that implies in every topology where this node participates there is no
connectivity to it.

cheers,
jamal

On Tue, Oct 16, 2012 at 9:49 AM, Joel M. Halpern <jmh@joelhalpern.com> wrote:
> I am sorry, I still don't see the problem.
>
> Suppose we have an FE with a non-modifiable topology.  Suppose that there is
> some LFB in the topology that we want to configure, but do not want to use.
>
> Fine, do so.
>
> By definition, if we are not using that LFB, we are not directing any
> packets to it.  If the upstream  never sends an packets to it, then whether
> the LFB is administratively enabled or administratively disabled is
> irrelevant.  Remember, the CE knows what it wants, and what it is doing.
> The admin state of the LFB won't tell it anything it doesn't know.
>
> In essence, this is a mathematical statement.  If we want a predictable
> behavior, then the graph has to avid sending any packets to any non-used
> LFBs.  enabled or disabled is irrelevant.
>
> Yours,
> Joel
>
>
> On 10/16/2012 7:57 AM, Jamal Hadi Salim wrote:
>>
>> Joel,
>>
>> We may have digressed given i hardly disagree with what you said in
>> your email below (and it may be orthogonal to our
>> goals). Here's what we mainly want to achieve:
>> Send config info to a specific LFB Instance. Decide when that info
>> becomes active or inactive in the datapath. We want to do
>> this in presence of many active graphs within an active FE
>> (which receives traffic). Willing to have the LFB instance of
>> interest to belong to only one service graph, but more importantly we
>> want to achieve this in as fewer steps as possible (on the message
>> exchange level).
>>
>> The disagreement i have is i think you are describing an
>> implementation approach. Maybe this is left up to a face to face
>> discussion at the meeting.
>> Again, our goal is to take the FEState semantic and express
>> it at the LFB instance level.
>> With FEState there is an equivalent semantic at the coarse granularity
>> of the FE i.e CE can update the config and when ready send a single
>> message which says "activate" . How the isolation of the FE is
>> achieved is up to the implementer. You describe isolation of the FE as
>> being achieved by turning off physical ports on the datapath. I
>> described an ASIC that could be sent a single message at the register
>> level to achieve that same goal.
>> As it stands right now, the interpretation of activate/deactivate
>> is left up to the implementation. Thats where we draw our
>> motivation.
>>
>> cheers,
>> jamal
>>
>>
>>
>> On Mon, Oct 15, 2012 at 10:28 AM, Joel M. Halpern <jmh@joelhalpern.com>
>> wrote:
>>>
>>> I have to strongly disagree.
>>>
>>> With regard to turning off physical ports, there are two reasons that
>>> apply
>>> to physical ports, and do not apply to the logical input ports of LFBs.
>>> 1) This is a semantic that human beings express.
>>> 2) More importantly, the upstream of these physical ports is in general
>>> not
>>> under the control of the CE.  So the CE & FEs have to be prepared for it
>>> doing unexpected things.
>>>
>>> With regard to CE operation, there is no need for admin-disabling  port.
>>> In
>>> fact, doing so will add needless steps to the operation of setting up a
>>> new
>>> or changed configuration.  When making any configuration change to LFBs,
>>> the
>>> CE has to
>>> a) determine what changes it wants to make.  For modifiable topologies,
>>> this
>>> may mean planning to create some LFB instances and / or planing to create
>>> some links.  For any FE, this will meaning determining what LFB
>>> parameters
>>> changes it wants to make.
>>> b) The CE then evaluates the dependencies between this changes.  It
>>> arranges
>>> them into a dependency graph.  And then applies the changes from the root
>>> of
>>> the graph towards the leaves.  If the CE does not do this, then there
>>> will
>>> be times when the FE will behave in unpredictable and probably
>>> undesirable
>>> ways.  If the CE does do this, there is never a need to turn off an LFB
>>> port.
>>>
>>> With regard to (b), if that sort can ot be done, the adding admin-disable
>>> to
>>> individual LFB logical input ports will not help make it possible.
>>>
>>> As a minor note, there are cases where, n order to preserve te dependency
>>> properly, one may have to make certain temporary config changes.  As a CE
>>> coder, one can choose between the more complex math to find the stable
>>> behavior or having the transient improper behavior. Again, the
>>> admin-disable
>>> will not help.
>>>
>>> I will admit that in the above I am assuming that it is irrelevant to try
>>> to
>>> determine the "meaning" of a topology and configuration in the middle of
>>> a
>>> change.  With or without admin-disable on logical LFB input ports, such
>>> interpretation of what was actually intended as a transient state is
>>> probably very hard.
>>>
>>> Yours,
>>> Joel
>>>
>>> PS: I am happy to discuss this in the meeting in Atlanta if we need to.
>>>
>>>
>>> On 10/15/2012 6:47 AM, Jamal Hadi Salim wrote:
>>>>
>>>>
>>>> On Sun, Oct 14, 2012 at 12:42 PM, Joel M. Halpern <jmh@joelhalpern.com>
>>>> wrote:
>>>>>
>>>>>
>>>>> The issue of a non-modifiabe topology requires some though.  In > my
>>>>> experiece, one usually can't turn individual LFBs on and off >in such
>>>>> setup.
>>>>> Rather, with non-modifiable topologies the input
>>>>> ports tot eh FE sre rutnred off, the whole set of LFBs is >configured,
>>>>> and then the input ports are turned on.
>>>>
>>>>
>>>>
>>>> What you just described with "the input ports turned off"
>>>> is essentially meant to be signalled by the FEO::FEState being put in
>>>> AdminDisable. And i think in this case that would be an
>>>> implementation approach (which is of course reasonable).
>>>> There are ASICs where you dont have to turn off ports.
>>>> You need to bang some registers to turn/off the datapath.
>>>> And in that case I would rather set some bits in registers
>>>> instead iterating the port list and turn off ports.
>>>>
>>>> If you assumed we can ignore non-modifiabe topology semantics,
>>>> it still looks different and complex (youd have to scan the LFB
>>>> topology and turn off every link to that LFB instance).
>>>> It will solve one of our stated goals (the race condition aspect)
>>>> but would be cumbersome for the HA aspect.
>>>>
>>>>> My big problem with turning off an LFB is that it is completely
>>>>> unclear what it means for the packet flow.
>>>>
>>>>
>>>>
>>>> The semantics are the same as FEO::FEState
>>>> If the FEState is Admin/OperDisable it provides the illusion that
>>>> all LFB instances are inactive on the datapath.
>>>>
>>>>> What are we telling an upstream LFB to do
>>>>> when the downstream LFB is disabled?  Drop the packet?
>>>>> Or is the CE
>>>>> supposed to assume that disabled LFBs are transparent?  Both choices
>>>>> can
>>>>> produce extremely improper behavior.
>>>>
>>>>
>>>>
>>>> Agreed - the FE advertising this capability must be able to handle
>>>> the configuration.
>>>> Implementation  specific perhaps, but one way is to empty any
>>>> control components related to the LFB instance from the datapath.
>>>> In our case the FE would store the inactive Instance information in
>>>> software
>>>> (but not in the datapath) and activation implies storing it into the
>>>> datapath.
>>>>
>>>>> Put differently, it is not at all clear to we that a instantiated,
>>>>> connected, LFB can be meaningfully and safely disabled.
>>>>
>>>>
>>>>
>>>> It may end up being implementation specific as is the
>>>> case of FEO::FEState.
>>>>
>>>> cheers,
>>>> jamal
>>>>
>>>
>>
>