Subject: RE: aMACControlFunctionsSupported

From: Andrew Smith <[email-masked]>
Date: Mon, 16 Nov 1998 18:23:11 -0800

Feedback: 

1. It may be quite dangerous to change the value of
dot3PauseLinkDelayAllowance. Does anyone really believe that this needs to
be writable? (yes, that means we'll call you on it later if we find you've
only done it read-only :-)).

2. Can we make it more clear in the DESCRIPTION that the value of
dot3DuplexStatus is also reflected in the relevant ifMauType OID?

3. Do we really need dot3ControlTable? There's only a single capability and
the counter will be zero in nearly all implementations for a while yet. We
could add this at a later date when more control functions get defined
couldn't we?

Andrew

> -----Original Message-----
> From: John Flick [mailto:[email-masked]]
> Sent: Thursday, November 12, 1998 9:38 PM
> To: [email-masked]
> Subject: aMACControlFunctionsSupported
> 
> 
> Hi,
> 
> Since there has been very little discussion on this topic, I have
> decided to have a read-only object called
> dot3ControlFunctionsSupported, and two pause objects called
> dot3PauseAdminMode and dot3PauseOperMode.  These will act similar to
> ifMauType/ifMauDefaultType in that dot3PauseAdminMode will configure
> the pause mode if auto-negotiation is unsupported or disabled, and
> auto-negotiation will control the pause mode when auto-negotiation is
> enabled.
> 
> I have attached the revised dot3ControlTable and dot3PauseTable to
> this message.  Please review this!!!  Note that the deadline for
> submitting internet-drafts before the Orlando IETF is November 18 at
> 5:00 PM, Reston time (U.S. east coast).  I have also included the
> definition of the dot3DuplexStatus that was decided on in Chicago.
> 
> Thanks,
> John
> -------------------------------------------------------------------
> 
>     dot3DuplexStatus OBJECT-TYPE
>         SYNTAX      INTEGER {
>                         unknown(1),
>                         halfDuplex(2),
>                         fullDuplex(3)
>                     }
>         MAX-ACCESS  read-only
>         STATUS      current
>         DESCRIPTION "The current mode of operation of the MAC
>                     entity.  'unknown' indicates that the current
>                     duplex mode could not be determined.
> 
>                     Management control of the duplex mode is
>                     accomplished through the MAU MIB.  When
>                     an interface does not support autonegotiation,
>                     or when autonegotiation is not enabled, the
>                     duplex mode is controlled using
>                     ifMauDefaultType.  When autonegotiation is
>                     supported and enabled, duplex mode is controlled
>                     using ifMauAutoNegAdvertisedBits."
>         REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.32,
>                     aDuplexStatus."
>         ::= { dot3StatsEntry 19 }
> 
> 
> 
>     dot3ControlTable OBJECT-TYPE
>         SYNTAX      SEQUENCE OF Dot3ControlEntry
>         MAX-ACCESS  not-accessible
>         STATUS      current
>         DESCRIPTION "A table of descriptive and status information
>                     about the MAC Control sublayer on the
>                     ethernet-like interfaces attached to a
>                     particular system."
>         ::= { dot3 9 }
> 
>     dot3ControlEntry OBJECT-TYPE
>         SYNTAX      Dot3ControlEntry
>         MAX-ACCESS  not-accessible
>         STATUS      current
>         DESCRIPTION "An entry in the table, containing information
>                     about the MAC Control sublayer on a single
>                     ethernet-like interface."
>         INDEX       { dot3StatsIndex }
>         ::= { dot3ControlTable 1 }
> 
>     Dot3ControlEntry ::=
>         SEQUENCE {
>             dot3ControlFunctionsSupported       BITS,
>             dot3ControlInUnknownOpcodes         Counter32
>         }
> 
>     dot3ControlFunctionsSupported OBJECT-TYPE
>         SYNTAX      BITS {
>                         pause(0)
>                     }
>         MAX-ACCESS  read-only
>         STATUS      current
>         DESCRIPTION "A list of the possible MAC Control functions
>                     implemented for this interface."
>         REFERENCE   "[IEEE 802.3 Std.], 30.3.3.2,
>                     aMACControlFunctionsSupported."
>         ::= { dot3ControlEntry 1 }
> 
>     dot3ControlInUnknownOpcodes OBJECT-TYPE
>         SYNTAX      Counter32
>         MAX-ACCESS  read-only
>         STATUS      current
>         DESCRIPTION "A count of MAC Control frames received on this
>                     interface that contain an opcode that is not
>                     supported by this device."
>         REFERENCE   "[IEEE 802.3 Std.], 30.3.3.5,
>                     aUnsupportedOpcodesReceived"
>         ::= { dot3ControlEntry 2 }
> 
> 
>     dot3PauseTable OBJECT-TYPE
>         SYNTAX      SEQUENCE OF Dot3PauseEntry
>         MAX-ACCESS  not-accessible
>         STATUS      current
>         DESCRIPTION "A table of descriptive and status information
>                     about the MAC Control PAUSE function on the
>                     ethernet-like interfaces attached to a
>                     particular system."
>         ::= { dot3 10 }
> 
>     dot3PauseEntry OBJECT-TYPE
>         SYNTAX      Dot3PauseEntry
>         MAX-ACCESS  not-accessible
>         STATUS      current
>         DESCRIPTION "An entry in the table, containing information
>                     about the MAC Control PAUSE function on a single
>                     ethernet-like interface."
>         INDEX       { dot3StatsIndex }
>         ::= { dot3PauseTable 1 }
> 
>     Dot3PauseEntry ::=
>         SEQUENCE {
>             dot3PauseAdminMode                  INTEGER,
>             dot3PauseOperMode                   INTEGER,
>             dot3PauseLinkDelayAllowance         Unsigned32,
>             dot3InPauseFrames                   Counter32,
>             dot3OutPauseFrames                  Counter32
>         }
> 
>     dot3PauseAdminMode OBJECT-TYPE
>         SYNTAX      INTEGER {
>                         disabled(1),
>                         enabledXmit(2),
>                         enabledRcv(3),
>                         enabledXmitAndRcv(4)
>                     }
>         MAX-ACCESS  read-only
>         STATUS      current
>         DESCRIPTION "This object is used to configure the default
>                     administrative PAUSE mode for this interface.
> 
>                     This object represents the
>                     administratively-configured PAUSE mode for this
>                     interface.  If auto-negotiation is not enabled
>                     or is not implemented for the active MAU
>                     attached to this interface, the value of this
>                     object determines the operational PAUSE mode
>                     of the interface whenever it is operating in
>                     full-duplex mode.  In this case, a set to this
>                     object will force the interface into the
>                     specified mode.
> 
>                     If auto-negotiation is implemented and enabled
>                     for the MAU attached to this interface, the
>                     PAUSE mode for this interface is determined by
>                     auto-negotiation, and the value of this object
>                     denotes the mode to which the interface will
>                     automatically revert if/when auto-negotiation is
>                     later disabled.  Note that when auto-negotiation
>                     is running, administrative control of the PAUSE
>                     mode may be accomplished using the
>                     ifMauAutoNegCapAdvertisedBits object in the
>                     MAU-MIB.
> 
>                     Note that the value of this object is ignored
>                     when the interface is not operating in
>                     full-duplex mode.
> 
>                     An attempt to set this object to
>                     'enabledXmit(2)' or 'enabledRcv(3)' will fail
>                     on interfaces that do not support operation
>                     at greater than 100 Mb/s."
>         ::= { dot3PauseEntry 1 }
> 
>     dot3PauseOperMode OBJECT-TYPE
>         SYNTAX      INTEGER {
>                         disabled(1),
>                         enabledXmit(2),
>                         enabledRcv(3),
>                         enabledXmitAndRcv(4)
>                     }
>         MAX-ACCESS  read-only
>         STATUS      current
>         DESCRIPTION "This object reflects the PAUSE mode currently
>                     in use on this interface, as determined by
>                     either (1) the result of the auto-negotiation
>                     function or (2) if auto-negotiation is not
>                     enabled or is not implemented for the active MAU
>                     attached to this interface, by the value of
>                     dot3PauseAdminMode.  Interfaces operating at
>                     100 Mb/s or less will never return
>                     'enabledXmit(2)' or 'enabledRcv(3)'.  Interfaces
>                     operating in half-duplex mode will always return
>                     'disabled(1)'.  Interfaces on which
>                     auto-negotiation is enabled but not yet
>                     completed should return the value
>                     'disabled(1)'."
>         ::= { dot3PauseEntry 1 }
> 
>     dot3PauseLinkDelayAllowance OBJECT-TYPE
>         SYNTAX      Unsigned32 (0..4294967295)
>         MAX-ACCESS  read-write
>         STATUS      current
>         DESCRIPTION "The allowance, in bit times, made by the PAUSE
>                     MAC Control entity for round-trip propagation
>                     delay of the full-duplex link."
>         REFERENCE   "[IEEE 802.3 Std.], 30.3.4.1,
>                     aPAUSELinkDelayAllowance."
>         ::= { dot3PauseEntry 2 }
> 
>     dot3InPauseFrames OBJECT-TYPE
>         SYNTAX      Counter32
>         MAX-ACCESS  read-only
>         STATUS      current
>         DESCRIPTION "A count of MAC Control frames received on this
>                     interface with an opcode indicating the PAUSE
>                     operation.
> 
>                     This counter does not increment when the
>                     interface is operating in half-duplex mode."
>         REFERENCE   "[IEEE 802.3 Std.], 30.3.4.3,
>                     aPAUSEMACCtrlFramesReceived."
>         ::= { dot3PauseEntry 3 }
> 
>     dot3OutPauseFrames OBJECT-TYPE
>         SYNTAX      Counter32
>         MAX-ACCESS  read-only
>         STATUS      current
>         DESCRIPTION "A count of MAC Control frames transmitted on
>                     this interface with an opcode indicating the
>                     PAUSE operation.
> 
>                     This counter does not increment when the
>                     interface is operating in half-duplex mode."
>         REFERENCE   "[IEEE 802.3 Std.], 30.3.4.2,
>                     aPAUSEMACCtrlFramesTransmitted."
>         ::= { dot3PauseEntry 4 }
> 
>

---

From: John Flick <[email-masked]>
Date: Mon, 16 Nov 1998 18:49:40 -0800 (PST)

> only done it read-only :-)).

I made it read-write, because that is the way it is defined in the
IEEE document.  I don't particularly like it either.  Are you
suggesting that we (a) nuke it, (b) make it read-only, or (c) leave
the definition as is and add a MIN-ACCESS read-only in the
MODULE-COMPLIANCE?

(I think (c) is probably the path of least resistance.  From past
e-mail, I think the chair would object to (a) or (b)).

 > dot3DuplexStatus is also reflected in the relevant ifMauType OID?

Is the following acceptable?

                    Management control of the duplex mode is
                    accomplished through the MAU MIB.  When
                    an interface does not support autonegotiation,
                    or when autonegotiation is not enabled, the
                    duplex mode is controlled using
                    ifMauDefaultType.  When autonegotiation is
                    supported and enabled, duplex mode is controlled
                    using ifMauAutoNegAdvertisedBits.  In either
                    case, the currently operating duplex mode is
                    reflected both in this object and in ifMauType."
        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.32,
                    aDuplexStatus."
        ::= { dot3StatsEntry 19 }

 > could add this at a later date when more control functions get defined

One concern I would have is what is a current implementation to do
when it receives an unknown control opcode.  I would expect that
current implementations could still be in use in networks after a new
control function is defined.  This counter would at least give an
indication that it saw the control packet and dropped it.  If it is
not defined now, when a new control function is deployed, "old"
implementations could be dropping control frames with no indication
that they are doing so.  I guess I see the dot3ControlTable as fairly
cheap "future-proofing", but I could be talked out of it.

What do others think?

Reminder: Keep in mind that I need to submit this document by Tuesday
(as in tomorrow) evening, so we need to reach consensus quickly.  The
alternative is waiting until mid-December for the next draft.

John