Vendor Dictionaries

A new vendor dictionary is necessary when the server receives unknown attributes from a client. It may print them out with the name Vendor-Specific or in a format like Attr-123456 or as Vendor-11344-Attr-42. In each case, the value printed will be a hex string and will not be usable as an ASCII string, IP address, or integer.

The first step is to contact the NAS vendor to request an updated dictionary file. The attribute definitions may also be listed in the release notes or the documentation for the particular NAS equipment being used. If that information is available, it can be used to add the new attributes to the dictionary file.

Where that information is not available, the options are fewer. Each release of the server includes all known dictionaries, and more are added with newer releases. We suggest checking the most recent release, to see if new dictionaries are available. Asking for updated dictionaries on the mailing list is not usually helpful, as the server is an open source project that publishes every available dictionary in every release.

In most cases, the attributes will have to be decoded and then defined in the local dictionary file. The unknown attributes will usually be printed in the form Vendor-11344-Attr-42. In that form, the number 11344 is the vendor enterprise code, and the number 42 is the attribute number. A sample dictionary for that attribute would look like the following:

VENDOR        Some-Vendor-Name 11344
BEGIN-VENDOR  Some-Vendor-Name
ATTRIBUTE     Some-Vendor-Attribute 42 octets
END-VENDOR    Some-Vendor-Name

This text can be appended to the dictionary file. These definitions will cause the string Some-Vendor-Attribute to be printed, rather than Vendor-11344-Attr-42. The type octets is the safest one to use for initial debugging. Restart the server so that it reads the new dictionary definitions, and pay attention to errors (if any) that result. If everything is fine, then the server will print Ready to process requests. When the NAS sends requests to the server, the new name will be used rather than Vendor-11344-Attr-42.

If there are always eight hex digits, then the attribute may be an IP address (ipaddr type).

If there are always eight hex digits, with the first four to six hex digits having a value of zero, then the attribute is likely of integer type.

If the number of octets printed for the value is more than or less than four, it may be a printable string. The attribute can be defined temporarily to be of type string. If the printed text appears to be ASCII data, then the definition can remain. If not, then it is likely binary information that will be difficult to decode, and it should be left as data type octets.