Internet DRAFT - draft-durham-nim-req
draft-durham-nim-req
Internet Draft Walter Weiss
Expiration: January 2001 Ellacoya
File: draft-durham-nim-req-01.txt David Durham
Intel
Andrea Westerinen
Cisco
Network Information Model Requirements
Last Updated: 7/7/00
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in [RFC-2119].
Weiss et al. [Page 1]
Internet Draft Network Information Model Requirements July 2000
Status of this Memo................................................1
Conventions used in this document..................................1
Abstract...........................................................3
1. Introduction....................................................3
2. Motivation......................................................5
3. Specific Requirements for a Network Information Model:..........6
4. Glossary of Terms..............................................13
5. References.....................................................14
6. Author Information and Acknowledgments.........................15
Weiss et al. Expires January 2001 [Page 2]
Internet Draft Network Information Model Requirements July 2000
Abstract
As networking technology has evolved, a diverse set of technologies
has been deployed to manage the resulting products. These very from
Web based products, standard management protocols, and text scripts.
The underlying systems to be manipulated are represented in varying
ways including implicitly in the programmatics, with proprietary
data descriptions, or with standardized descriptions using a range
of technologies including MIBs, PIBs, or LDAP schemas. The result
is that a single application such as DHCP or Differentiated Services
may be represented in many different inconsistent fashions. Even
the existing standard descriptive technologies have not been
focussed on re-use across domains and commonality. The situation
would be significantly improved if there were to be a common
representation of data (an "information model") from which
technology-specific data models can be derived to suit application-
specific configuration and management needs. This would allow the
industry to build common descriptions, resulting in consistency
across the paradigms, and better interoperability. Such an
"information model" would also assist other IETF working groups by
reducing the work needed to determine how to represent those parts
of their technology that are already in the common model.
This document describes the requirements of an information model
suitable for the modeling of network management constructs. The
purpose of an information model is to represent data in a manner
that is independent of technology and implementation. An Information
model is used to unambiguously describe and define information, as
well as the relationships between the entities that it defines. From
this idealized information model, implementation-specific data
models (which are bound to specific types of repositories and data
storage and retrieval mechanisms, protocols, APIs, etc.) can be
derived so as to avoid divergence of management information
definitions between implementations.
This document will describe requirements for the construction of an
information model and the representation of basic modeling
constructs. These requirements are generally described in the areas
of reusability, extensibility, associability, class naming, instance
naming, expressiveness of data definitions through constraints, and
inheritance. The purpose of this document is to ensure that the
subsequent documents that describe the conventions for the
information model and the information model itself are complete and
consistent with the requirements stated herein.
1. Introduction
As the Internet has grown and flourished, new technologies have been
developed and deployed at a feverish pace. In the traditional IETF
Weiss et al. Expires January 2001 [Page 3]
Internet Draft Network Information Model Requirements July 2000
operations and management model, the working group developing the
technology has also defined the data elements (usually in the form
of MIBs) necessary to monitor and manage the technology. While this
has been very successful, it has also led to a divergence of
definitions and structures. In many cases, similar management
elements that are to be applied to a specific technology have been
completely reinvented in different working groups because of a lack
of awareness. In other cases, duplication has occurred because of a
subtle variation in the definition of the element or because the
relationship between the data element and other elements is new or
different. Divergence of management definitions and structures has
resulted in an environment where programming effort is spent in the
repetitive correlation, translation and data organization associated
with each data management technology, as opposed to implementing a
single management interface/infrastructure.
There are two major benefits of an information model. First, it has
a unique ability to consistently describe and organize various
network management concepts and data for reuse across different
applications. Second, it unifies information describing different
aspects of managed objects (e.g., configuration and statistical
data).
In order to realize the benefits of an information model, each
addition to the model needs to be scrutinized to ensure that the
data being added is either new, or represents a refinement of
existing data that have already been defined in the model. As such,
the primary objective of this document is to specify the
requirements for an information model that organizes information to
achieve maximum reusability, as well as providing consistency in the
information represented across various protocols and services.
It is the goal of a network information model to act as a
synchronizing root for other groups that are defining network
management constructs so that consistency and reusability can be
obtained across working groups. Just as MIB-I and MIB-II
successfully standardized well-known constructs in the SNMP data
model, this document will define the requirements for an information
model that is applicable to largest possible cross-section of
network management paradigms and protocols. This information model
can then be expanded and exploited by a variety of other working
groups within the IETF, and adapted to their transport-specific
requirements. This will in turn produce domain-specific data models
that are all derived from a common network information model. A key
property of an information model is its wide spread applicability.
Once the information model is established, standardized mappings can
be developed for transforming the information model into specific
data models, potentially including LDAP schema, MIBs, PIBs, and
device models (such as [Device]) using the Policy Framework Core
Information Model [PCIM] to mechanism-specific policies.
This document only describes the requirements for the definition of
common attributes, mechanisms and conventions for their organization
Weiss et al. Expires January 2001 [Page 4]
Internet Draft Network Information Model Requirements July 2000
into reusable data structures, and mechanisms for representing the
attribute's relationships to other attributes and structures. In
addition, requirements for specifying methods will also be
described. As methods and attributes provide an alternate means for
describing a management interface, guidelines for using each in a
consistent manner will be developed in a separate document, and is
therefore outside the scope of this document.
The overall goal is to allow the modelÆs attributes and methods to
be equally applicable across a broad range of paradigms, protocols
and interfaces. Specifically, there are some paradigms that treat a
networking device as a client while other paradigms treat the device
as a server. There are some paradigms that assume a synchronous
(transactional) interface between the managing and managed elements
while other paradigms assume an asynchronous model. With some
management paradigms a single instance of a structure is applicable
to many instances of devices or device components (COPS-PR,
SNMPCONF, or shared repository structures) while in other paradigms
each component is managed directly on a one-to-one basis.
These paradigms can be implemented in a variety of ways. In some
cases there may be programmatic interfaces that directly manipulate
management structures through methods or remote procedure calls. In
other cases a repository, such as a directory, may be used to store
configuration information in a central store or even use the store
to pass information between networking components. Paradigms can
even take the form of simple text scripts that get pushed into a
device. While any of these scenarios could leverage a shared
information model for representing network configuration and
management structures, the degree to which a common model can be
mapped to all of these implementations will vary on a case-by-case
basis. It is in fact the purpose of this model to be able to
represent more relationships than can be easily reflected in the
common subset of all implementations. Representing such methods and
relationships in a common information model helps ensure that the
differing representations will work together both where they overlap
and where they complement.
While the model could be extended to support other interfaces that
may exist within and between networking components such as
interfaces between routing and traffic engineering, these interfaces
are beyond the current scope of this work. Initial models will focus
exclusively on those interfaces needed to manage and configure
various components within a networking environment.
2. Motivation
1. Problem: With the exception of the Policy Framework's Core
Information Model [PFCIM], no high-level network configuration
information model exists in the IETF that is implementation-
independent. Implementation independence yields a model that simply
Weiss et al. Expires January 2001 [Page 5]
Internet Draft Network Information Model Requirements July 2000
represents network constructs and data, relationships between
constructs, and data constraints without regard to a particular data
model, protocol, or repository.
2. Problem: The Distributed Management Task Force's (DMTF's) CIM
(Common Information Model) [CIM] is not the optimal choice for a
network information model. CIM provides no mechanism for defining
class/model level constraints. CIM also has dictated a naming scheme
that cannot be mapped easily into all management technologies.
Finally, the DMTF does not have the subject matter experts in
networking. Nevertheless, there is value in the modeling work done
in the DMTF in terms of the definition of high-level constructs.
Thus, CIM should be viewed as a starting point for development of a
network information model within the IETF.
3. Problem: Current modeling representations are insufficient due to
a lack of available tools, lack of a textual representation for ease
of data exchange, or the expressiveness of the representations. In
addition, for some or all of these representations, there is no
constraint language, no suitable class naming conventions, no
support for attribute level bindings, no ability to effectively
create implementation-specific models, no ability to model
associations, etc. Unfortunately, some are also dependent on
proprietary or high-level graphical tools. It will be up to the
working group to determine what tool set would be most appropriate
in meeting the set of specific requirements listed below.
3. Specific Requirements for a Network Information Model:
1. The information model will need conventions for uniquely
identifying the classes (constructs), attributes (properties or
data) and methods (signatures) that it defines, as well as
complimentary classes developed by other working groups. Class
naming and the ability to uniquely identify defined attributes is
an important part of any information model. It is important that
attribute naming conventions be developed that can be used
equally effectively for reuse as well as to extend existing
classes. The requirements will develop mechanisms that are
complimentary to object-oriented naming conventions while not
requiring the use of a central naming authority. There is a need
to name class/attribute DEFINITIONS (as opposed to instances)
uniquely without the need for a central naming authority (i.e.,
one mechanism might be to use GUIDs to identify
classes/attributes).
2. Experience has shown that different technologies (and even
different implementations of the same technology) use different
mechanisms for binding attribute groups to keys, instance
identifiers, indexing schemes, or other data instance naming
mechanisms. This model will avoid defining keys or rules for key
bindings, unless no other alternative for interoperable operation
can be defined. Mechanisms will be provided for supporting keys
for mappings to various technologies, as the need for instance
Weiss et al. Expires January 2001 [Page 6]
Internet Draft Network Information Model Requirements July 2000
identification is universal. Instance naming needs to be flexible
as implementations vary. That is, keys can be created in a number
of ways, we assume they exist, and uniqueness within a context is
required, but we will not force a particular keying mechanism.
It will however, be important to understand how a particular
implementation defines its keys and thereby names instances.
Without this information, mapping between implementations will be
difficult or impossible.
3. Exclusively using graphical models such is not suitable as there
is a need for textual representations. Graphical models are also
not easy for a computer to parse and require expensive tools.
Thus, it is necessary that this information model chooses a
textual representation suitable for representing an information
model, completely & unambiguously, and is readily parseable by a
computer program. Graphical methods can always be used to
visualize this result. Ideally, the textual representation also
has some tools associated with it. It should be up to the WG to
decide the most appropriate data definition language based on
these requirements. Ideally, the textual representation provides
sufficient detail for algorithmic mappings of the information
model to as large a cross-section of protocols/interfaces as
possible.
4. To facilitate reuse, all data elements (attributes) of the
information model must be clearly defined in terms of
characteristics, scope and relationships to other attributes.
This can be achieved through data types and value bounding which
should be explicitly defined for attributes, classes, and
associations between NIM constructs. Also, the ability to
specify constraints is needed.
Constraints refer to the ability to clearly specify the
characteristics of one attribute/class/association or a set of
these and how these constructs interact with and relate to others
within the model. If a concept is defined in a broad or high-
level manner in the information model, then it is more likely
that different implementations that define their own mappings of
it will be inconsistent. This undermines the basic benefit of the
information model.
The subsequent list of constraints, while not necessarily
complete, is a minimal set of elements required for a more
complete specification of attributes.
Where the data modeling language is not capable of specifying the
constraint, the information model is required to provide the most
precise specification of attributes possible. Further, when a
specific mapping of the information model to a specific data
model is defined and the target data modeling language has a less
robust mechanism for expressing constraints, additional
documentation should accompany the data model to minimize
confusion. If an information model representation is not capable
Weiss et al. Expires January 2001 [Page 7]
Internet Draft Network Information Model Requirements July 2000
of expressing a new kind of constraint, then this new constraint
should be added to the information model in a well-defined
manner.
Need for data-level constraints:
* Constraints for attributes. E.g., Attribute X is an integer
that can have values in the range 10-100 and 234-235.
* Constraints for classes. E.g., Class A should be created
when Class BÆs attribute x is "OK".
* Constraints for class/attribute associations. Allow instance
class A to be associated with instance of class B only if not
already associated with class C.
* Constraints for attribute transactions, attribute A and
attribute B have transactional dependencies (need to be modified
together under a given context).
* Another common characteristic of an attribute is its ability
to be modified. While the majority of attributes can be retrieved
and altered, for some attributes, such as counters or hard wired
MAC addresses, it is only possible to retrieve the value but not
to alter it. There may even be instances where an attribute value
can be altered, but not retrieved. To facilitate consistent
interpretation, each attribute definition must specify whether
the attribute is read-only, read-write, or write-only.
* There are many situations where an attribute is not required
for the complete definition of the class. In other cases, an
attribute is crucial for the definition of the service.
Therefore, each attribute in the information model must specify
whether an attribute is optional or required.
* In some cases, there are attributes within the same class
that have interdependencies. For example, two attributes together
may define a x/y coordinate. There may be more extreme forms of
relationships where one attribute may affect the value or range
of values for another attribute. One such relationship exists in
IPSEC, where the type of security algorithm determines the range
of possible values for other attributes such as the corresponding
key size. The most extreme form of multi-attribute relationships
is a set of attributes that are dependent on each other for
consistency. For example, a class may have two attributes, one
expressing a date and the other expressing a day of the week.
When the day of the week is changed the date should change
simultaneously, and visa versa to prevent inconsistencies.
Irrespective of the complexity of the relationship between
attributes, the information model must express the relationship
between attributes.
5. Need for an association mechanism. Associations describe
relationships between classes. Some examples are dependency or
whole-part relationships. There are a few things to note about
associations: 1) relationships are primarily between only two
class instances; 2) the same relationship may be repeated for a
particular instance, associating that instance with others; and
3) since relationships are usually implemented as classes, they
Weiss et al. Expires January 2001 [Page 8]
Internet Draft Network Information Model Requirements July 2000
can sometimes have data as well as methods. An example of each of
the previous points is that a device has various types of
software associated with its configuration, operational and
instrumentation software are just a few examples. So, software
can be "associated" with one or more devices, and devices can
have one or more pieces of software. The use of the software for
the device can be described as part of the association. [Note:
While at the information model level associations should be
modeled as separate classes, some data models may only support
associations as inline references that are part of a data class.
It is noted that separate association classes force data classes
to be maximally reusable, as the data class then makes no
assumptions about how it can be related to other classes.]
6. Inheritance model: Inheritance allows the information model to
avoid redundant data definitions among peer constructs, and
define appropriate levels of abstraction and complexity. Single
inheritance is recommended to optimize the model and its
processing requirements. It is not required that the entire
information model be derived from a single root. Those data
models that require a single root, and a key binding consistency
relative to the root, should provide for these requirements in
the mapping of the information model to the specific data model.
7. Mechanisms for describing the fundamental data types of
attributes, as well as describing arrays, sets, or ranges of
these fundamental types, are required. Possibly, the binary
representation of the attributes may be specified.
8. When hundreds of classes may be defined in the information model,
there is a need to create "standard" combinations of classes and
associations, describing common scenarios or data models. It
should be possible to define these combinations of classes and
associations in the information model. And, for efficiency, the
combinations should be instantiated, retrieved or manipulated as
a whole. These standard combinations would be useful in reducing
the arbitrariness of which classes to use, to solve a particular
management modeling problem. In other words, groupings of classes
may facilitate the initialization or configuration of classes by
logical groupings. This is a feature that people could use to
determine the scope of a particular domain (DS, MPLS, DHCP, etc.)
rather than a packaging format.
9. In an object-oriented implementation, a class' methods describe
the actions or behaviors that are appropriate for, and can be
invoked against, an instance. Methods allow the specification of
return codes and input/output parameters, further influencing the
specific action or behavior.
In an information model, these concepts may be described as
"signatures" or as fully-defined methods. (The correct approach
must be determined as work on the Network Information Model
proceeds.) The word, "signature", means the specification and
Weiss et al. Expires January 2001 [Page 9]
Internet Draft Network Information Model Requirements July 2000
grouping of attributes within an object, while "method" means a
specific and predefined format and syntax. The goal of either a
method or signature is to describe and invoke well-defined
behaviors -describing the intent of the behavior, return
code/status and parameters.
Methods or signatures must operate under the same modeling
restrictions as those described in requirement 4 for Attribute
definitions. Mechanisms must be provided in the model to fully
specify the operating constraints of both the method and the
attributes passed to and from the method. Specifically:
* Constraints for attributes passed through a method. E.g.,
Attribute X is an integer that can have values in the range 10-
100 and 234-235.
* If the modeling language supports the ability to pass classes
or class references, the constraints of the passed classes should
be fully specified if different from the general definition of
the class. E.g., This method allows the passed in Class A to be
removed or copied.
* If methods are used to perform associations between classes
passed in through the method, this must be specified. If special
circumstances determine the outcome of the association, this must
also be represented in the model. Allow instance class A to be
associated with instance of class B only if not already
associated with class C.
* Constraints for attribute transactions within a method,
method parameter A and method parameter B have transactional
dependencies (need to be modified together under a given context
or the modification of one is dependent on the value of the
other).
* To facilitate consistent interpretation of the method, each
parameter definition must specify whether the attribute is read-
only, read-write, or write-only.
* If it is possible for one method to invoke or use another
method, this must be documented. This is particularly important
when the embedded method updates structures that can also be
manipulated directly or through other externally visible methods.
If method A invokes method B and method B updates attribute X, it
must be clearly documented that X is being updated to prevent the
consumer to inadvertently also update X.
10. As this information model will likely be mapped to a variety of
data models and implementations, it is necessary that mechanisms
be provided that ensure compliance to the information model.
[Note: The specific requirement for this assurance is TBD and
will be addressed, or removed, after further team discussion.]
11. As the information model will be deployed across a variety of
implementations, it is recognized that not all implementations
will be capable of supporting the model completely. Divergences
from the model should be expressed in the form of a capability
set that describes exactly what subset (or superset) of the model
Weiss et al. Expires January 2001 [Page 10]
Internet Draft Network Information Model Requirements July 2000
is supported by a particular implementation or system. Further,
as capability distribution is a service, the information model
must specify a mechanism that allows for a consistent
representation of capabilities across various management
technologies.
12. The information model must allow classes to contain the attribute
(property) set of other classes. This will maximize reuse and
allow data to be completely described with minimum redundancy.
For example, Class XYZ can contain as attributes Class ABC and
Class DEF. The result would be that Class XYZÆs attribute set
would be a superset of Classes ABC and DEF.
Class containment should act as a mechanism for easily defining
and describing class aggregations. LDAP schema definitions
currently have the opposite behavior and instead constitute
attribute merging. An information model should not have this same
limitation. For example, in NIM, one may create a class called
IPADDRESSMASK that defines and constrains IP subnetting. Using
NIM, one then could create a new Filter Class that looks
something like this:
class Filter:
{
IPADDRESSMASK SourceIP;
IPADDRESSMASK DestinationIP;
PORTRANGE SourcePort;
PORTRANGE DestinationPort;
PROTOCOLID Protocol;
};
Where IPADDRESSMASK is defined as follows:
Class IPADDRESSMASK:
{
UINT32 IPAddress;
UINT32 SubnetMask;
};
Here the IPADDRESSMASK classes are not to be merged into one
attribute, but remain two individually identifiable "contained"
classes, one useful for defining the source, another for defining
the destination of traffic in the context of the new class called
Filter.
It is important that all data models have standard mappings of
this strictly definitional model into their data model-specific
forms.
13. There are some attributes that, when changed, only take effect
when the service is brought down or the system is rebooted. There
are also mechanisms deployed that depend on polling to cause a
modification of an attribute value to take effect. The model must
Weiss et al. Expires January 2001 [Page 11]
Internet Draft Network Information Model Requirements July 2000
fundamentally distinguish between the retrieval of attributes
from the assignment of attributes, as these functions can often
be asynchronous depending on the data and the technology being
used to manipulate it.
For example, if I have an attribute called AS_Number, for which a
change of the value can only take effect when routing is brought
down, I may have at least two values of AS_Number in the system:
currently active and proposed. The model must be capable of
distinguishing the two. A simple approach might be to define two
attributes in the class. However, different products will make
different implementation decisions for when attribute updates
take effect. Further, some configuration management paradigms
like LDAP rely on polling to make changes to systems, so the
state in the directory may not reflect the state of the device
until the device actually retrieves the value and notifies the
directory that the new value is in effect. These various
scenarios suggest the need for a general mechanism in the model
that distinguishes the actual configuration from the desired
configuration.
14. The information model must allow for forward and backward
compatibility as the model evolves. In addition, the model must
support the ability to be extended for specific implementations
in a manner that will allow multiple different extensions to
coexist both from a programmatic and storage perspective.
Weiss et al. Expires January 2001 [Page 12]
Internet Draft Network Information Model Requirements July 2000
4. Glossary of Terms
NIM: Network Information Model.
CIM: Common Information Model proposed by the Distributed Mangement
Task Force (DMTF).
Constraint: A mechanism for bounding an attribute or class value to
allowed values/ranges/targets/bitmaps etc.
Data Type: A mechanism for identifying the binary representation of
an atomic (as opposed to composite) attribute and the rules for
manipulating an attribute with that type.
Definition Name: Unique name used to identify an attribute or class
definition.
Instance Name: Key: Index: Name used to identify an instance of an
attribute or class (recognized but not explicitly defined by this
WG).
NIM Attribute: An atomic or composite data type that is fully
described, typed, uniquely named, and bounded via constraints.
NIM Class: Typically refers to an aggregation or set of one or more
attributes that can also inherit properties from parent classes to
optimize data definitions.
Information Model: Universally applicable model for representing and
describing information that is not perverted by the shortcomings of
a specific implementation.
Data Model: An implementation specific or implementation constrained
derivation of an information model. One information model can be
used to develop multiple consistent data models.
Weiss et al. Expires January 2001 [Page 13]
Internet Draft Network Information Model Requirements July 2000
5. References
[IANA] http://www.isi.edu/in-notes/iana/assignments/port-numbers
[CIM] http://www.dmtf.org/spec/cims.html
[DEVICE] J. Strassner, W. Weiss, D. Durham, and A. Westerninen, "
Information Model for Describing Network Device QoS
Mechanisms ", draft-ietf-policy-qos-device-info-model-
00.txt, March 2000.
[PFCIM] Moore, B., and E. Ellesson, J. Strassner, "Policy Framework
Core Information Model", draft-ietf-policy-core-info-model-
06.txt, May 2000.
Weiss et al. Expires January 2001 [Page 14]
Internet Draft Network Information Model Requirements July 2000
6. Author Information and Acknowledgments
Special thanks to Joel Halpern, Juergen Schoenwaelder, and John
Strassner for their many helpful comments and significant edits to
this document.
Walter Weiss
Ellacoya Networks
7 Henry Clay Dr.
Merrimack, NH. 03054
Phone: +1-603-879-7364
E-mail: wweiss@ellacoya.com
David Durham
Intel
2111 NE 25th Avenue
Hillsboro, OR 97124
Phone: 503.264.6232
David.Durham@intel.com
Andrea Westerinen
Cisco Systems
andreaw@cisco.com
425-891-8407
2570 W. El Camino Real
Mountain View, CA 94040
Weiss et al. Expires January 2001 [Page 15]