Subject: RE: proposed text for textual conventions...

From: Muly Ilan <[email-masked]>
Date: Wed, 8 May 2002 00:25:03 +0200

Mike,

The exercise command has a different behavior than the other commands in the
sense that it's instantaneous. The test is performed by the APS algorithm in
a period on the order of mili-seconds (including built-in timeout R5-94).
Thus, the test result can be returned as the SNMP response code to the
command. Exercise succeeded --> SNMP response no error, exercise failed -->
SNMP response with genErr.

The above refers to exercise failure due to remote LTE does not respond
according to the protocol. An exercise failure because an equal or higher
priority request is in effect should return inconsistentValue error.

I suggest to modify the exercise description
          Exercises the protocol for a protection switch of the specified
          channel by issuing an Exercise request for that channel and
          checking the response on the APS channel. If the test failed
          a genErr is returned.	

Muly Ilan

-----Original Message-----
From: Mike Thatcher [mailto:[email-masked]]
Sent: Tuesday, May 07, 2002 7:20 PM
To: [email-masked]
Subject: proposed text for textual conventions...

The following is the proposed text for ApsSwitchCommand & ApsControlCommand
which now includes snmp error codes to use, followed by a diff between this
and 
the -07 draft.

ApsSwitchCommand ::= TEXTUAL-CONVENTION
      STATUS       current
      DESCRIPTION
          "An APS switch command allows a user to perform protection
           switch actions.

           If the APS switch command cannot be executed because an
           equal or higer priority request is in effect, an
           inconsistentValue error is returned.

           The Switch command values are:

           noCmd

           This value should be returned by a read request when no switch
           command has been written to the object in question since
           initialization. This value may not be used in a write operation.
           If noCmd is used in a write operation a wrongValue error is
           returned.

           clear

           Clears all of the switch commands listed below for the specified
           channel.

           lockoutOfProtection

           Prevents any of the working channels from switching to the
protection
           line. The specified channel should be the protection channel,
           otherwise an inconsistentValue error is returned.

           forcedSwitchWorkToProtect

           Switches the specified working channel to the protection line.
           If the protection channel is specified an inconsistentValue
           error is returned.

           forcedSwitchProtectToWork

           Switches the working channel back from the protection
           line to the working line. The specified channel should be
           the protection channel, otherwise an inconsistentValue
           error is returned.

           manualSwitchWorkToProtect

           Switches the specified working channel to the protection line.
           If the protection channel is specified an inconsistentValue
           error is returned.

           manualSwitchProtectToWork

           Switches the working channel back from the protection
           line to the working line. The specified channel should be
           the protection channel, otherwise an inconsistentValue
           error is returned.

           exercise

           Exercises the protocol for a protection switch of the specified
           channel by issuing an Exercise request for that channel and
           checking the response on the APS channel. "
      SYNTAX       INTEGER {
                       noCmd(1),
                       clear(2),
                       lockoutOfProtection(3),
                       forcedSwitchWorkToProtect(4),
                       forcedSwitchProtectToWork(5),
                       manualSwitchWorkToProtect(6),
                       manualSwitchProtectToWork(7),
                       exercise(8)
                   }

ApsControlCommand ::= TEXTUAL-CONVENTION
      STATUS       current
      DESCRIPTION
          "An APS control command applies only to LTE that support the
           1:n architecture and performs the following actions.

           The Control command values are:

           noCmd

           This value should be returned by a read request when no control
           command has been written to the object in question since
           initialization. This value may not be used in a write operation.
           If noCmd is used in a write operation a wrongValue error is
           returned.

           lockoutWorkingChannel

           Prevents the specified working channel from switching to the
           protection line. If the protection line is specified an
           inconsistentValue error is returned.

           clearLockoutWorkingChannel

           Clears the lockout a working channel command for the channel
           specified. If the protection line is specified an
           inconsistentValue error is returned."
      SYNTAX       INTEGER {
                       noCmd(1),
                       lockoutWorkingChannel(2),
                       clearLockoutWorkingChannel(3)
                   }

diff -c drafttest.nr18 drafttest.nr
*** drafttest.nr18	Thu Apr 25 11:55:54 2002
--- drafttest.nr	Mon May  6 14:30:23 2002
***************
*** 389,394 ****
--- 389,398 ----
            "An APS switch command allows a user to perform protection
             switch actions.

+          If the APS switch command cannot be executed because an
+          equal or higer priority request is in effect, an
+          inconsistentValue error is returned.
+
             The Switch command values are:

             noCmd
***************
*** 396,402 ****
             This value should be returned by a read request when no switch
             command has been written to the object in question since
             initialization. This value may not be used in a write
operation.
!
             clear

             Clears all of the switch commands listed below for the
specified
--- 400,408 ----
             This value should be returned by a read request when no switch
             command has been written to the object in question since
             initialization. This value may not be used in a write
operation.
!          If noCmd is used in a write operation a wrongValue error is
!          returned.
!
             clear

             Clears all of the switch commands listed below for the
specified
***************
*** 405,431 ****
             lockoutOfProtection

             Prevents any of the working channels from switching to the
protection
!          line. The specified channel should be the protection channel.

             forcedSwitchWorkToProtect

             Switches the specified working channel to the protection line.

             forcedSwitchProtectToWork

             Switches the working channel back from the protection
             line to the working line. The specified channel should be
!          the protection channel.

             manualSwitchWorkToProtect

             Switches the specified working channel to the protection line.

             manualSwitchProtectToWork

             Switches the working channel back from the protection
             line to the working line. The specified channel should be
!          the protection channel.

             exercise

--- 411,444 ----
             lockoutOfProtection

             Prevents any of the working channels from switching to the
protection
!          line. The specified channel should be the protection channel,
!          otherwise an inconsistentValue error is returned.

             forcedSwitchWorkToProtect

             Switches the specified working channel to the protection line.
+          If the protection channel is specified an inconsistentValue
+          error is returned.

             forcedSwitchProtectToWork

             Switches the working channel back from the protection
             line to the working line. The specified channel should be
!          the protection channel, otherwise an inconsistentValue
!          error is returned.

             manualSwitchWorkToProtect

             Switches the specified working channel to the protection line.
+          If the protection channel is specified an inconsistentValue
+          error is returned.

             manualSwitchProtectToWork

             Switches the working channel back from the protection
             line to the working line. The specified channel should be
!          the protection channel, otherwise an inconsistentValue
!          error is returned.

             exercise

***************
*** 456,471 ****
             This value should be returned by a read request when no control
             command has been written to the object in question since
             initialization. This value may not be used in a write
operation.

             lockoutWorkingChannel

             Prevents the specified working channel from switching to the
!          protection line.

             clearLockoutWorkingChannel

             Clears the lockout a working channel command for the channel
!          specified. "
        SYNTAX       INTEGER {
                         noCmd(1),
                         lockoutWorkingChannel(2),
--- 469,488 ----
             This value should be returned by a read request when no control
             command has been written to the object in question since
             initialization. This value may not be used in a write
operation.
+          If noCmd is used in a write operation a wrongValue error is
+          returned.

             lockoutWorkingChannel

             Prevents the specified working channel from switching to the
!          protection line. If the protection line is specified an
!          inconsistentValue error is returned.

             clearLockoutWorkingChannel

             Clears the lockout a working channel command for the channel
!          specified. If the protection line is specified an
!          inconsistentValue error is returned."
        SYNTAX       INTEGER {
                         noCmd(1),
                         lockoutWorkingChannel(2),
***************
*** 1215,1224 ****
        DESCRIPTION
            "Allows the initiation of an APS switch command on the
             APS group and channel specified by the index values.
-
-          If the APS switch command cannot be executed because an
-          equal or higer priority request is in effect, an error
-          is returned.

             When read this object returns the last command written
             or noCmd if no command has been written to this
--- 1232,1237 ----

---

From: Randy Presuhn <[email-masked]>
Date: Tue, 7 May 2002 16:32:38 -0700 (PDT)

Hi -

> Message-ID: <[email-masked]>
> From: Muly Ilan <[email-masked]>
> Subject: RE: proposed text for textual conventions...
> Date: Wed, 8 May 2002 00:25:03 +0200 
...
>           checking the response on the APS channel. If the test failed
...

I urge the WG to not adopt this (mis-)use of the error-status
field of the SNMP PDU.

First, the various error-status values that can be received
in response to a SetRequest (except of course "undoFailed"
and "noError") all indicate that the operation requested was
not carried out.  The proposed suggestion would violate this
semantic, since the test would indeed have been carried out.

Secondly, consider what this would mean with multiple variable
bindings under the the elements of procedure in RFC 1905
clause 4.2.5.  Test failure under the proposal would require
that all other variables in the request be "undone".

Thirdly, implementation in RFC 2741 (AgentX) environments
would require violating its elements of procedure (e.g. clause
7.2.4.1) as well, since they are necessarily coherent with
those from RFC 1905.

 ------------------------------------------------------
 Randy Presuhn          BMC Software, Inc.  1-3141
 [email-masked]  2141 North First Street
 Tel: +1 408 546-1006   San José, California 95131  USA
 ------------------------------------------------------
 My opinions and BMC's are independent variables.
 ------------------------------------------------------