############################################################################## # # readme.dct - Notes on dictionary syntax and usage # # The dictionary format is derived from the Radius 5 spec, dated July 1996. # # This file contains dictionary translations for parsing requests and # generating responses. All transactions are composed of # Attribute/Value Pairs. The value of each attribute is specified as # one of 5 data types. Valid data types are: # # string - 0-254 octets # abinary - 0-254 octets # ipaddr - 4 octets in network byte order # integer - 32 bit value in big endian order (high byte first) # time - 32 bit value in big endian order - # seconds since 00:00:00 GMT, Jan. 1, 1970 # # All attribute names and value names in the supplied radius.dct dictionary # are derived from the Radius spec by replacing all non-alphanumeric # characters with dashes ('-'). # # The following dictionary format provides a mechanism for including # "secondary" dictionaries from within the text of one "primary" # dictionary. For example, only the attribute/value definitions that # differ from the Radius spec need to be listed in a primary # dictionary for a vendor specfic implementation. Any definitions for # the attribute/values that are common to both can be brought in by # including the radius.dct dictionary anywhere within the vendor # dictionary. # # The following rules apply to to the creation and use of dictionaries... # # All comments begin with a '#' character in column 0 OR appear on # a attribute or value line with "#" as # the MANDATORY delimeter between dictionary data and comment text. # This is a simple parser. # # To include another dictionary precede the name (e.g. radius.dct) with # an '@' character. The '@' character must be in column 0. # # Only one level of include applies; a primary dictionary can include # one or more secondary dictionaries, but any includes in the secondary # dictionaries will be ignored. # # All attribute (and attribute value) names and numeric codes must be # unique within a single dictionary. Conflicts between dictionaries # are resolved according to the following rules... # # Attributes and values have precedence over any that are later parsed, # and parsing is depth first. # For example, to override a baseline attribute, create a file with that # attribute in it, followed by an include of the baseline file. Since # the baseline file is parsed later than the desired override, it is # ignored. # # When two secondary dictionary definitions of an attribute or value # conflict, the earlier include takes precedence. # # Other than include files, there are two meaningful line entry formats # in a dictionary, one for attributes and one for attribute values... # # ATTRIBUTE_KEY ATTRIBUTE_NAME ATTRIBUTE_CODE DATA_TYPE FLAGS [COMMENT_DELIMITER COMMENT_TEXT] # VALUE_KEY ATTRIBUTE_NAME VALUE_NAME VALUE_CODE [COMMENT_DELIMITER COMMENT_TEXT] # # Legend for last column of an attribute entry: # # 'c' indicates a SINGLE valued attribute that is a candidate for # inclusion in a user's check list # 'C' indicates a MULTI valued attribute that is a candidate for # inclusion in a user's check list # # 'r' indicates a SINGLE valued attribute that is a candidate for # inclusion in a user's reply list # 'R' indicates a MULTI valued attribute that is a candidate for # inclusion in a user's reply list # # 'o','O' ordered attribute, some attributes (e.g. Reply-Message) may # need to be presented in a particular order to make sense. # # NOTES: Absense of any of {C,c,R,r} flags indiate an item that is # neither a reply or check list item (e.g. State, Proxy-State) # # All FLAG characters on a given attribute line must be clustered # together to parse properly (i.e. no white white space is allowed # between individual characters). # ##############################################################################