Here are comments on draft-deason-afs3-type-time-03: Sections 3.1, 3.2, and 3.3 each start with "The new FOO..." where the use of the word "new" feels extraneous. In N years when someone is reading the document to determine what AFSAbsTime64 represents it won't be "new".
Each of sections 3.1, 3.2, 3.3 begin with a paragraph describing the on-the-wire encoding and then follows with a description of what the type represents. I believe that describing the meaning of the type makes the text easier to read and comprehend. This is particularly true for 3.3 which is describing a complex structure. I find section 3.3 on the whole somewhat awkward. It is overly verbose and as a result fails to be clear. The following text might help or it might not: The AFSAbsTime64Res structure combines an AFSAbsTime64 timestamp [Section 3.1] with a resolution value representing the granularity of the time source. The AFSAbsTime64Res values are used for timestamp comparisons when the granularity of the sources might be different or out of sync. and The resolution field represents the granularity of the time source from which the timestamp was obtained. The resolution value is the period between two unique timestamp values. All AFSAbsTime64 timestamp values from (T) to (T + resolution) are to be considered equivalent for the purpose of comparison with another AFSAbsTime64 value. Section 3.3.1 discussing resolution assumptions states that the resolution should never be set to a value greater than one second. However, the granularity of timestamps in FAT file systems is two seconds. While FAT is not an AFS-3 file system or protocol it is a time source that is used for comparisons with AFS-3 time values. An instance of an AFS file server that exports the contents of local file systems would have such a resolution. Section 3.3.1 indicates that a resolution of 0 must be used whenever the time source granularity is unknown. It then indicates that the resolution should be assumed to be 1 second and that the timestamp should be rounded down to the nearest second. The rounding down concerns me. If the resolution should be assumed to be 1 second, then the comparison rule in Section 3.3 can just be followed with the 1 second resolution and the accuracy provided in the timestamp. However, I am concerned that there are many situations in which the source of a time may have millisecond or better precision but where the granularity is unknown. For example, any time a timestamp is recorded on one system written, read back on another and then used. I fear that assuming one second resolution can itself be harmful. I'm tempted to say that the value 0 is invalid and that the entity that constructs the AFSAbsTime64Res must specify a best guess value and specify 1 second if unknown. The last paragraph of Section 4.3 discusses the use of modification timestamps. It references the fact that modification timestamps set by users will not have a known resolution. It fails to point out that AFS-3 explicitly maintains two different modification timestamps: server and client. The client modification timestamp can be set to arbitrary values whereas the server modification timestamp is only ever set by the file server. The server modification timestamp can be used for ordering comparisons.
smime.p7s
Description: S/MIME Cryptographic Signature
