RFC 2214

Integrated Services Management Information Base Guaranteed Service Extensions using SMIv2

πŸ“… published September 1997, from ietf

RFC 2214: Integrated Services Management Information Base, Guaranteed Service Extensions using SMIv2 πŸŽ€

Authors: F. Baker (Cisco Systems), J. Krawczyk (ArrowPoint Communications), A. Sastry (Cisco Systems) πŸ’… Category: Standards Track 🌸 Date: September 1997 πŸ¦‹ Obsoletes and updates: the title block doesn't list anything it obsoletes or updates. πŸ™ˆ

Status of this Memo

okay so this one is an Internet standards track protocol for the Internet community, and it's basically asking for discussion and suggestions for improvements 🫢 If you want the current standardization state and status of this protocol, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ✨

Abstract

this memo defines a chunk of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets 🧚 specifically, it defines objects for managing the interface attributes from the Guaranteed Service of the Integrated Services Model πŸ’– comments should go to the Integrated Services Working Group at intserv@isi.edu.

Table of Contents

   1 The SNMPv2 Network Management Framework ...............    2
   1.1 Object Definitions ..................................    2
   2 Overview ..............................................    2
   2.1 Textual Conventions .................................    2
   3 Definitions ...........................................    3
   3.1 Interface Attributes Database .......................    3
   3.2 Notifications .......................................    6
   4 Security Considerations ...............................    7
   5 Authors' Addresses ....................................    8
   6 Acknowledgements ......................................    8
   7 References ............................................    8

1. The SNMPv2 Network Management Framework ✨

the SNMPv2 Network Management Framework has four main pieces πŸ“

  • RFC 1441 defines the SMI, the mechanisms used for describing and naming objects for the purpose of management.
  • STD 17, RFC 1213 defines MIB-II, the core set of managed objects for the Internet suite of protocols.
  • RFC 1445 defines the administrative and other architectural aspects of the framework.
  • RFC 1448 defines the protocol used for network access to managed objects.

the Framework also lets people define new objects for experimentation and evaluation πŸ”₯

1.1. Object Definitions

managed objects are accessed through a virtual information store called the Management Information Base, or MIB 🌈 objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) that the SMI defines πŸ’œ each object type is named by an OBJECT IDENTIFIER, which is an administratively assigned name. the object type together with an object instance is what uniquely identifies one specific instance of the object πŸ¦‹ and because humans like nice names, we often use a textual string called the descriptor to refer to the object type 🫢

2. Overview ✨

2.1. Textual Conventions

this MIB document introduces several new data types as textual conventions πŸŽ€ they make the specification easier to read and can make it easier to compare with other specifications when that's useful πŸ’… Here's the important bit: introducing these textual conventions has no effect on the syntax or the semantics of any managed objects. they're just an artifact of the explanation method πŸ™ˆ objects defined using them are always encoded using the rules that define the primitive type, so no changes to the SMI or the SNMP are needed to support them. they're only there for the convenience of readers and writers, in pursuit of the elusive goal of clear, concise, and unambiguous MIB documents 😭✨

3. Definitions πŸ’œ

here's the MIB module itself 🧚 it uses the extended OBJECT-TYPE macro described in [9].

INTEGRATED-SERVICES-GUARANTEED-MIB DEFINITIONS ::= BEGIN

    IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE             FROM SNMPv2-SMI
            RowStatus                                FROM SNMPv2-TC
            MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF
            intSrv                        FROM INTEGRATED-SERVICES-MIB
            ifIndex                                  FROM IF-MIB;

--  This MIB module uses the extended OBJECT-TYPE macro as
--  defined in [9].

intSrvGuaranteed MODULE-IDENTITY
        LAST-UPDATED "9511030500Z" -- Thu Aug 28 09:04:22 PDT 1997
        ORGANIZATION "IETF Integrated Services Working Group"
        CONTACT-INFO
       "       Fred Baker
       Postal: Cisco Systems
               519 Lado Drive
               Santa Barbara, California 93111
       Tel:    +1 805 681 0115
       E-Mail: fred@cisco.com"
    DESCRIPTION
       "The MIB module to describe the Guaranteed Service of
       the Integrated Services Protocol"
    ::= { intSrv 5 }

intSrvGuaranteedObjects          OBJECT IDENTIFIER
                                 ::= { intSrvGuaranteed 1 }
intSrvGuaranteedNotifications    OBJECT IDENTIFIER
                                 ::= { intSrvGuaranteed 2 }
intSrvGuaranteedConformance      OBJECT IDENTIFIER
                                 ::= { intSrvGuaranteed 3 }

3.1. Interface Attributes Database πŸ¦‹

this is the part of the MIB that holds info shared with other reservation procedures, like ST-II 🌸

--      The Integrated Services Interface Attributes Database
--      contains information that is shared with other reservation
--      procedures such as ST-II.


    intSrvGuaranteedIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IntSrvGuaranteedIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The attributes of the system's interfaces  ex-
           ported by the Guaranteed Service."
       ::= { intSrvGuaranteedObjects 1 }


    intSrvGuaranteedIfEntry OBJECT-TYPE
        SYNTAX      IntSrvGuaranteedIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "The reservable attributes of  a  given  inter-
           face."
       INDEX { ifIndex }
       ::= { intSrvGuaranteedIfTable 1 }

IntSrvGuaranteedIfEntry ::=
    SEQUENCE {
        intSrvGuaranteedIfBacklog INTEGER,
        intSrvGuaranteedIfDelay   INTEGER,
        intSrvGuaranteedIfSlack   INTEGER,
        intSrvGuaranteedIfStatus  RowStatus
    }

the Backlog object is the data backlog that comes from how a specific implementation deviates from a strict bit-by-bit service 🧁 for example, with packetized weighted fair queueing, Backlog is set to the Maximum Packet Size πŸ’…

    intSrvGuaranteedIfBacklog OBJECT-TYPE
        SYNTAX      INTEGER (0..'0FFFFFFF'h)
        UNITS       "bytes"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Backlog  parameter  is  the  data  backlog
           resulting  from  the vagaries of how a specific
           implementation deviates from a  strict  bit-by-
           bit  service.  So, for instance, for packetized
           weighted fair queueing, Backlog is set  to  the
           Maximum Packet Size.

           The Backlog term is measured in units of bytes.
           An  individual  element can advertise a Backlog
           value between 1 and 2**28 (a  little  over  250
           megabytes)  and  the  total added over all ele-
           ments can range as high as  (2**32)-1.   Should
           the  sum of the different elements delay exceed
           (2**32)-1, the end-to-end error term should  be
           (2**32)-1."
       ::= { intSrvGuaranteedIfEntry 1 }

the Delay object is the maximum packet transfer delay through a service element, no matter the bucket size 🌈 the example here is a simple router, where you'd add up the worst case time to get from the input interface to the processor and then from the processor to the outbound interface (assuming the queueing schemes work correctly) ⭐ for Ethernet, it might be the worst case delay when the maximum number of collisions happens πŸ’€

    intSrvGuaranteedIfDelay OBJECT-TYPE

        SYNTAX      INTEGER (0..'0FFFFFFF'h)
        UNITS       "microseconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The Delay parameter at  each  service  element
           should  be  set  to the maximum packet transfer
           delay (independent of bucket size) through  the
           service  element.   For  instance,  in a simple
           router, one might compute the worst case amount
           of  time  it  make  take  for a datagram to get
           through the input interface to  the  processor,
           and how long it would take to get from the pro-
           cessor to the outbound interface (assuming  the
           queueing  schemes work correctly).  For an Eth-
           ernet, it might represent the worst case  delay
           if  the maximum number of collisions is experi-
           enced.

           The Delay term is measured in units of one  mi-
           crosecond.  An individual element can advertise
           a delay value between  1  and  2**28  (somewhat
           over two minutes) and the total delay added all
           elements  can  range  as  high  as   (2**32)-1.
           Should  the sum of the different elements delay
           exceed (2**32)-1, the end-to-end  delay  should
           be (2**32)-1."
       ::= { intSrvGuaranteedIfEntry 2 }

the Slack object is the big brain one 🧠✨ if a network element uses some slack, Si, to shrink the resources it reserved for flow i, then Si gets stored at that element. later, if reservation refreshes come in for flow i, the element must use that same Si without redoing any computation, which keeps the reservation process consistent 🫢

here's the example they give: say the required end-to-end delay, Dreq, is bigger than the maximum delay of the fluid flow system. Ctot is the sum of the Backlog terms end to end, and Dtot is the sum of the delay terms end to end. you get Dreq by setting R=r in the fluid delay formula:

            b/r + Ctot/r + Dtot.

and then the slack term is:

            S = Dreq - (b/r + Ctot/r + Dtot).

the slack can be used by network elements to adjust their local reservations so they can admit flows that would otherwise have been rejected πŸ”₯ an element at an intermediate hop that can tell apart delay and rate guarantees can use this info to lower the resources allocated to the flow. for example, by taking some slack s <= S, an RCSD scheduler [5] can raise the local delay bound, d, for the flow to d+s. given an RSpec, (Rin, Sin), it does that by setting Rout = Rin and Sout = Sin - s πŸ’–

a WFQ scheduler can do something similar: it lowers its local reservation from Rin to Rout by spending some of the slack in the RSpec. this works using the transformation rules from the previous section, which make sure the reduced reservation level won't increase the overall end-to-end delay 🌸

    intSrvGuaranteedIfSlack OBJECT-TYPE
        SYNTAX      INTEGER (0..'0FFFFFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "If a network element uses a certain amount  of
           slack,  Si,  to  reduce the amount of resources
           that it has reserved for a particular flow,  i,
           the  value  Si  should be stored at the network
           element.   Subsequently,  if  reservation   re-
           freshes  are  received  for flow i, the network
           element must use the same slack Si without  any
           further computation. This guarantees consisten-
           cy in the reservation process.

           As an example for the use of  the  slack  term,
           consider the case where the required end-to-end
           delay, Dreq, is larger than the  maximum  delay
           of the fluid flow system.  In this, Ctot is the
           sum of the Backlog terms end to end,  and  Dtot
           is the sum of the delay terms end to end.  Dreq
           is obtained by setting R=r in the  fluid  delay
           formula, and is given by

                        b/r + Ctot/r + Dtot.

           In this case the slack term is

                  S = Dreq - (b/r + Ctot/r + Dtot).

           The slack term may be used by the network  ele-
           ments  to  adjust  their local reservations, so
           that they can admit flows that would  otherwise
           have been rejected. A service element at an in-
           termediate network element that can  internally
           differentiate between delay and rate guarantees
           can now take advantage of this  information  to
           lower the amount of resources allocated to this
           flow. For example, by taking an amount of slack
           s  <= S, an RCSD scheduler [5] can increase the
           local delay bound, d, assigned to the flow,  to
           d+s. Given an RSpec, (Rin, Sin), it would do so
           by setting Rout = Rin and Sout = Sin - s.

           Similarly,  a  network  element  using  a   WFQ
           scheduler  can  decrease  its local reservation
           from Rin to Rout by using some of the slack  in
           the  RSpec.  This  can be accomplished by using
           the transformation rules given in the  previous
           section,  that ensure that the reduced reserva-
           tion level will not increase the  overall  end-
           to-end delay."
       ::= { intSrvGuaranteedIfEntry 3 }

the Status object is the RowStatus for interfaces configured for Guaranteed Service πŸ’œ

    intSrvGuaranteedIfStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "'valid' on interfaces that are configured  for
           the Guaranteed Service."
       ::= { intSrvGuaranteedIfEntry 4 }

3.2. Notifications πŸ””

--      No notifications are currently defined
-- conformance information
intSrvGuaranteedGroups      OBJECT IDENTIFIER
                            ::= { intSrvGuaranteedConformance 1 }
intSrvGuaranteedCompliances OBJECT IDENTIFIER
                            ::= { intSrvGuaranteedConformance 2 }

-- compliance statements

    intSrvGuaranteedCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
           "The compliance statement "
       MODULE  -- this module
       MANDATORY-GROUPS {
           intSrvGuaranteedIfAttribGroup
           }
       ::= { intSrvGuaranteedCompliances 1 }


    intSrvGuaranteedIfAttribGroup OBJECT-GROUP
         OBJECTS {
            intSrvGuaranteedIfBacklog,
            intSrvGuaranteedIfDelay,
            intSrvGuaranteedIfSlack,
            intSrvGuaranteedIfStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  Systems  sup-
           porting the Guaranteed Service of the Integrat-
           ed Services Architecture."
       ::= { intSrvGuaranteedGroups 2 }

END

4. Security Considerations ✨

okay so, bestie, this one is short and sweet 🫢 Setting stuff up with an SNMP SET gives you an RSVP or Integrated Services reservation, but it follows different rules than when the reservation gets negotiated through RSVP itself. πŸ‘€ That's the main thing to clock here.

Besides that, there are no other security considerations. The only ones that apply are the ones SNMP already comes with πŸ” So if you're worried about security, go look at SNMP's own protections, because nothing extra is being added here. πŸ’…

5. Authors' Addresses πŸŽ€

Here are the people who wrote it, with their addresses and contact details πŸ’Œ

         Fred Baker
 Postal: Cisco Systems
         519 Lado Drive
         Santa Barbara, California 93111

 Phone:  +1 805 681 0115
 EMail:  fred@cisco.com


         John Krawczyk
 Postal: ArrowPoint Communications
         235 Littleton Road
         Westford, Massachusetts 01886

 Phone:  +1 508 692 5875
 EMail:  jjk@tiac.net


         Arun Sastry
 Postal: Cisco Systems
         210 W. Tasman Drive
         San Jose, California 95314

 Phone:  +1 408 526 7685
 EMail:  arun@cisco.com

6. Acknowledgements πŸ™Œ

This document came out of the Integrated Services Working Group. Big group effort, literally iconic πŸ‘‘

7. References πŸ“š

  • [1] Rose, M., Editor, "Management Information Base for Network Management of TCP/IP-based internets", STD 17, RFC 1213, May 1990.
  • [2] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8824, (December, 1987).
  • [3] Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Notation One (ASN.1), International Organization for Standardization. International Standard 8825, (December, 1987).
πŸ“¦ where this page comes from