Subject: Specifying algorithm for creating bundles

From: Dave Fowler <[email-masked]>
Date: Tue, 03 Feb 1998 16:53:53 -0500

Gary,

I think you suggestion here is clearer.  I think I'll use it unless
there are objections.

David

> >           dsx0BundleNextIndex OBJECT-TYPE
> >               SYNTAX  TestAndIncr
> >               MAX-ACCESS  read-write
> >               STATUS  current
> >               DESCRIPTION
> >                       "This object is used to assist the manager in
> >                       selecting a value for dsx0BundleIndex.
> >                       Because this object is of syntax TestAndIncr (see
> >                       the SNMPv2-TC document, RFC1903) it can also be
> >                       used to avoid race conditions with multiple
> >                       managers trying to create rows in the table.
> > 
> >                       If the result of the SET for dsx0BundleNextIndex
> >                       is not success, this means the value has been
> > changed
> >                       from index (i.e. another manager used the value). 
> > Also
> >                       the agent will not proceed with the second SET for
> >                       dsx0BundleRowStatus.
> > 
> >                       The algorithm is:
> >                       while done == false
> >                           index = GET (dsx0BundleNextIndex.0)
> >                           SET (dsx0BundleNextIndex.0=index,
> >                                dsx0BundleRowStatus.index=createAndGo)
> >                           if (set of first variable failed)
> >                             done = false
> >                           else
> >                             done = true
> >                             other error handling"
> 
> Another way to show this might be appropriate, in order to ensure that
> it is understood that a multi-varbind SET operation is NOT necessarily
> intended:
> 
>                       The algorithm is:
>                       while done == false
>                           index = GET (dsx0BundleNextIndex.0)
>                           SET (dsx0BundleNextIndex.0=index)
>                           if (set failed)
>                             done = false
>                           else
>                             SET (dsx0BundleRowStatus.index=createAndGo)
>                             if (set failed)
>                               done = false
>                             else
>                               done = true
>                               other error handling"
> 
> >               ::= { ds0Bundle 2 }
> > 

-- 
David Fowler                                   email:
[email-masked]
Newbridge Networks Corporation                 voice: (613) 599-3600 
ext.6559
600 March Rd, Kanata, Ontario, Canada K2K 2E6  fax:   (613) 599-3619