On Thursday, August 26, 2004 17:53:17 +0200 Volker Lendecke
wrote:

> On Thu, Aug 26, 2004 at 11:46:54AM -0400, Jeffrey Hutzelman wrote:
>> For a couple of years now I've been maintaining a registry of AFS
>> protocol constants, including RPC opcode numbers
>> (http://grand.central.org/numbers); a side goal is to eventually
>> completely document the various AFS protocols. To that end, it has
>> always been my intent to provide .xg files and opcode headers which can
>> be freely used by any AFS implementation.

>
> How do you make sure that this information is not tainted by any license?
>
> Completely reverse-engineer the way the Samba developers do? This is
> probably not possible for anybody ever having looked at OpenAFS code and
> who has gained knowledge of the inner workings. Probably someone without
> any prior knowledge has to look at (encrypted) network traces and try to
> work out the inner workings of the protocol, the way Samba has been
> developed over the years.


Well, first it should be noted that the majority of AFS traffic is _not_
encrypted, at least some of the time. Nearly everything had already been
reverse-engineered by others by the time OpenAFS was released, in the
process of building interoperable implementations like Arla. I have been
and expect to continue to be able to use the results of that work. And,
there is actually quite a bit of published textual documentation, though
some of it is rather old.


But most important is this point - copyrights do not protect ideas and
information; they protect the _expression_ of ideas and information. I
can't copy ptopcodes.h, but I _can_ tell you what the opcode is for each
RPC. And in fact, what I do is generate headers mechanically from the
registry tables (so, the work in generating PR_ops.h is entirely in writing
down the registry table, which hasn't been done yet for this particular
registry).

Similarly, I can write documentation describing the ptserver RPC protocol,
including telling you what all the RPC's do, what their names are, and what
the types of their arguments are. I just can't copy text from IBM's
documentation or code.

-- Jeffrey T. Hutzelman (N3NHS)
Sr. Research Systems Programmer
School of Computer Science - Research Computing Facility
Carnegie Mellon University - Pittsburgh, PA