Re: [Agentx] Empty context in rfc2742

Magnus Fromreide <magfr@lysator.liu.se> Tue, 01 September 2009 22:40 UTC

Return-Path: <magfr@lysator.liu.se>
X-Original-To: agentx@core3.amsl.com
Delivered-To: agentx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 43BFA28C68B for <agentx@core3.amsl.com>; Tue, 1 Sep 2009 15:40:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.047
X-Spam-Level:
X-Spam-Status: No, score=-1.047 tagged_above=-999 required=5 tests=[AWL=0.002, BAYES_00=-2.599, HELO_EQ_SE=0.35, J_CHICKENPOX_15=0.6, J_CHICKENPOX_17=0.6]
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 NWErSx-OudNk for <agentx@core3.amsl.com>; Tue, 1 Sep 2009 15:40:25 -0700 (PDT)
Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by core3.amsl.com (Postfix) with ESMTP id 2518C3A6C55 for <agentx@ietf.org>; Tue, 1 Sep 2009 15:40:25 -0700 (PDT)
Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id 3D65340003; Wed, 2 Sep 2009 00:39:56 +0200 (CEST)
Received: by mail.lysator.liu.se (Postfix, from userid 1674) id 3105F40011; Wed, 2 Sep 2009 00:39:56 +0200 (CEST)
Received: from [83.252.226.253] (c83-252-226-253.bredband.comhem.se [83.252.226.253]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTP id D1DDE40003; Wed, 2 Sep 2009 00:39:55 +0200 (CEST)
From: Magnus Fromreide <magfr@lysator.liu.se>
To: Randy Presuhn <randy_presuhn@mindspring.com>
In-Reply-To: <007801ca2a6e$2bc23f00$6801a8c0@oemcomputer>
References: <1251623843.6043.6.camel@sara.home> <8a0268750908301048i2b4a477dod97e582238098bbe@mail.gmail.com> <1251668476.3736.14.camel@sara.home> <8a0268750908301523o390d9ff1kc951bfb24d49c9e1@mail.gmail.com> <1251750777.5149.52.camel@sara.home> <007801ca2a6e$2bc23f00$6801a8c0@oemcomputer>
Content-Type: text/plain
Date: Wed, 02 Sep 2009 00:40:31 +0200
Message-Id: <1251844831.3745.13.camel@sara.home>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV using ClamSMTP
Cc: agentx@ietf.org
Subject: Re: [Agentx] Empty context in rfc2742
X-BeenThere: agentx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SNMP Agent Extensibility <agentx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/agentx>, <mailto:agentx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/agentx>
List-Post: <mailto:agentx@ietf.org>
List-Help: <mailto:agentx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/agentx>, <mailto:agentx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 01 Sep 2009 22:40:26 -0000

On Mon, 2009-08-31 at 12:06 -0700, Randy Presuhn wrote:
> Hi -
> 
> > From: "Magnus Fromreide" <magfr@lysator.liu.se>
> > To: "Mark Ellison" <ellison@ieee.org>
> > Cc: <agentx@ietf.org>
> > Sent: Monday, August 31, 2009 1:32 PM
> > Subject: Re: [Agentx] Empty context in rfc2742
> ...
> > While this is true it is also true that the agent is free to map the
> > AgentX-contexts to SNMP-contexts however it wish so I think this impose
> > no limits on the values of AgentX-contexts.
> 
> This would be an incredibly bad idea.  Perhaps section 6.1.1 of RFC 2741
> could be more explicit, but to my knowledge no one has ever come to a
> different conclusion in deciding how to implement this.

Oh well, my mind must be twisted.

I would probably have treated the default context as the default value
for all contexts and then each distinct context would override it but I
haven't given the consequences of that much thought.

Now I am aware of the intended way.

> Furthermore, 6.1.1 of RFC 2741 says:
>    If the NON_DEFAULT_CONTEXT bit in the AgentX header field h.flags is
>    clear, then there is no context field in the PDU, and the operation
>    refers to the default context.  (This does not mean there is a zero-
>    length Octet String, it means there is no Octet String present.)  If
>    the NON_DEFAULT_CONTEXT bit is set, then a context field immediately
>    follows the AgentX header, and the operation refers to that specific
>    context.  The context is represented as an Octet String.  There are
>    no constraints on its length or contents.
> 
> What does this mean?  It means that there happen to be two ways
> to encode the default context. 
>    (1) set the NON_DEFAULT_CONTEXT bit to 0, and omit the
>          context field which would otherwise immediately follow.
>    (2) set the NON_DEFAULT_CONTEXT bit to 1,  and follow it
>          with the properly encoded zero-length string.
> 
> Obviously, (2) is not encouraged, since (1) provides a more efficient
> encoding and we all know how parsimonious AgentX encodings are.  :-)

Well, from the discussion I think it is obvious that I think that could
be stated clearer.

Thanks for your patience.

> > 
> > EXAMPLE:
> > 
> > Assume that two AgentX registrations are made to a master agent that
> > implements rfc 2741 and rfc 2742.
> > 
> > 1: { r.flags = 0, <no r.context>, ... }
> > 2: { r.flags = NON_DEFAULT_CONTEXT, r.context = "", ... }
> > 
> > Now as I read 2742 the value of the agentxRegContext column for
> > registration #1 is ""
> > 
> > The question is what the value of the agentxRegContext column for
> > registration #2 should be?
> 
> Exactly the same.  These are two attempts to register for the same
> context.
> 
> I seem to recall a long-ago discussion about whether the latter should
> be treated as a protocol error.  I don't recall the outcome of that discussion.
> As an implementor, my inclination would be to accept it, but never generate it.

I would prefer to generate an error in order to make for a less
forgiving protocol so that errors are caught earlier and the protocol is
kept smaller but I know that is against the "be lenient in what you
accept" motto.  

/MF