Starting with RFC 1212 and later versions, the OBJECT-TYPE macro allows specification (via the DEFVAL clause) of a default value that an instance of the object will take during initialization or row creation. As well, Variations defined in an AGENT-CAPABILITIES statement allow specification of such defaults on a per-implementation basis where the OBJECT-TYPE doesn't specify a default, or where the implementation uses a different default. MIB Smithy allow specification of default values from the Defval page of the appropriate workspace.
Figure - Default Value Property
The allowed forms for default values depend on the data type for the object (for example, character, hex or binary strings for OCTET STRINGs, numeric values for Integer32). To specify a default value, you first need to select a Value Type so that MIB Smithy knows the proper syntax to use in the generated MIB module. The appropriate fields for the selected type will be activated and others disabled. To delete an existing default value from the record, select the No Default Value
option. Other options are described further below.
The String Value
option for the Value Type is used to indicate that the default value will be a simple quoted character string. You do not need to include the quotes in the specified value: MIB Smithy will add them for you. Leave the Value field blank for an empty string (i.e., ""
).
The Hex Value
option for the Value Type is used to indicate that the default value will be a hexadecimal value. Hex string values are generally used for OCTET STRING and related data types such as the BITS construct, although they can also be used for integer types. BITS default values are also sometimes specified as an Identifier List. Hex strings are specified using two single-quote characters surrounding zero or more pairs of hex digits (0123456789ABCDEF
) followed by the letter H
. SMI rules require there to be an even number of hex digits. Examples:
''H
'00'H
'7FFFFFFF'H
The Binary Value
option for the Value Type is used to indicate that the default value will be a binary value. Binary strings are also generally used for OCTET STRING and other places where a Hex Value is also appropriate. They are specified using two single-quote characters surrounding zero or more octuplets of binary digits (01
) followed by the letter B
. SMI rules require a multiple of 8 bits digits. Examples:
''B
'00000000'B
'0101010101010101'B
H
and B
suffixes.
The Integer Value
option for the Value Type is used to indicate that the default value will be a simple integer value, used with objects of type INTEGER, Integer32, Unsigned32, Gauge32, TimeTicks, etc. Note that objects of type Counter, Counter32 and Counter64 may not have default values by SMI rules, as they would be somewhat semantically meaningless.
The Identifier
option for the Value Type is used to indicate that the default value will be a simple identifier (starting with a lowercase letter). This form is used for specifying a default by name for enumerated INTEGER objects or to reference a named OID for objects of type OBJECT IDENTIFIER. SMIv2 requires this form to be used for OBJECT IDENTIFIERs, rather than the multi-component OID Value form that SMIv1 accepts.
The Identifier List
option for the Value Type is used to indicate that the default value will take the form of a list of list of bit names, used with objects of type BITS. This option is available as an alternative to a hex or binary string where a MIB author desires to represent the default value in a more symbolic form.
To add an identifier to the list, enter it into the Identifier field and press the "List Add" button. To remove an identifier from the list, select its name and press the "List Remove" button. The order that the identifiers appear is not significant, although it's suggested that they be listed in order of increasing bit value.
The OID Value
option for the Value Type is used to indicate that the default value will take the form of a multi-component OBJECT IDENTIFIER (such as { 0 0 }
). The forms accepted are the same as those accepted elsewhere, as detailed in Object Identifier Values. This form is allowed only by SMIv1. SMIv2 requires that default values of this form be converted to a simple Identifier form when migrating a MIB module from SMIv1 to SMIv2.
The NetworkAddress Value
option for the Value Type is used to indicate that the default value will be of a form acceptable to objects using the SMIv1 NetworkAddress type. Default values of this type consist of two parts: an Address Type (corresponding to the CHOICE syntax used to define NetworkAddress) and an Address Value containing the address in an appropriate form for the Address Type. Of course, NetworkAddress only ever defined an internet
choice (for an IP Address), so normally the only options available will be internet
and an allowed form for an IP Address, which takes an String style value (e.g. a hex string). It does not take a dotted numeric form like "255.255.255.0" -- this is invalid!
Also note that NetworkAddress is obsolete. It is not an allowed type in SMIv2 (which provides the IpAddress type instead), so neither is it legal to specify a default value of this type in SMIv2.