Group Definition

Contents
cla140
Contents
A group is a collection of one or more attributes. Groups let component providers arrange attributes into logical sets. Groups can also be used to represent arrays (tables) of attributes. The use of groups lets logical subsets in a component be standardized across vendors.
The syntax of a group definition is:
start group name = "group name" class = "class string" [id = nnn] [description = "description string"] [key = nnn[,mm]...] (attribute definitions go here) end group
The ID statement, if provided, must have a value unique among other groups in the component. Specifying a group ID without a key means that this group definition defines a group. If both id and key are provided, the group definition represents a table managed by the component instrumentation code. Any subsequent table definitions (defined following) in the component definition cannot use this group definition as a template.
If the key statement is provided and the id statement is not provided, the group definition represents a template row in a to-be-defined table, and the value statements (defined following) refer to default values in the row. A table definition may follow to populate the table based on the template. For more information, see the section on table definition. The following table describes the possibilities:
Key?
ID?
Result
No
No
Error
No
Yes
Scalar group. Not table. Id is group's ID.
Yes
No
Template. Table definitions may follow.
Yes
Yes
Table. Id is table's ID. Can be used as template later.
Many groups can be defined in the component.
Class Statement
The mandatory class statement identifies the source of the group and the group version. All groups using the same class string must share the same attribute definitions in the group, including attribute type, access, storage (defined following) and IDs. The attribute name, description, and value may be different, however. Class statement assists management applications in determining the semantics of the group's attributes.
The class statement syntax is:
class = "class string"
By convention, class string is encoded as
"defining body|specific name|version"
  • Defining Body
    Specifies the name of the organization defining the group. For example,"DMTF", "IEEE", "Acme Computer"
  • Specific Name
    Indicates the contents of the group. For example, "Server Stats", "Toaster Controls".
  • Version
    Indicates the version of the group definition. For example, "1", "A", "FIRST ONE EVER".
Essentially, the class string is an opaque string, and any convention can be used. However, since applications and Service Layers may rely on this convention for obtaining information through the List Component command, component providers are encouraged to use this convention.
It is an error to specify the same class string for two groups, if the group definitions are different. Management applications can count on identical group definitions for identical class strings.
"DMTF|Sample|1.0" is not the same as "DMTF | Sample | 1.0" as one has spaces around the vertical bars and the other does not.
Implementations that provide a subset of the attributes defined by a class can just omit the definitions for the unsupported attributes. A better method is to use the unsupported keyword in the attribute definition (defined following). Management applications must be sufficiently robust to deal with subsets of a class.
Only one class statement is allowed per group.
Key Statement
Key statements define attribute IDs that are used as the index into the table. When the attributes in a group define a row in a table, the group definition must contain a key statement. Attributes acting as keys can be of any data type. Keys always identify no more than one instance of a group (row of a table).
The key statement syntax is:
key = n[,m]
  • n
    Specifies the attribute ID that acts as the key for this table. If multiple attributes are used to index a table, they should be specified as comma-separated integers. When management applications send requests or component instrumentations send results, key values must be sent in the order that they are listed in the key statement.
Only one key statement is allowed per group.