[Pvfs2-developers] protocol encoding

Walter B. Ligon III walt at CLEMSON.EDU
Wed Jan 30 11:39:19 EST 2008


High,

I'm working with our new development team here and we are looking at how 
to add requests to the server.  A question came up wrt encoding that I 
couldn't answer - I hear Pete is the expert, but anyone can pipe up.

In src/proto/pvfs2-req-proto.h when you define a new request you create 
a struct and then use a macro to create an encoding function for the 
struct (endecode_fields_X_struct).  Sometimes, in the args to those 
macros you insert a skip4,, which I gather is used to align something. 
Can someone explain the rules for when and where you place this?

There is also some confusion as to the naming of those macros, in that 
some of them seem to count the skip4,, and some don't.  In particular, 
if there are 3 scalar arguments, but we need one skip, we use the 
endecode_fields_4_struct macro - so we DO count the skip (3 args + skip 
= 4) but if there is an array, say 3 scalars plus an array, we use the 
endecode_fields_3a_struct macro - so we DO NOT count the skip.  Some 
array macros have one, some have two skips.  Any words of wisdom, or do 
we just have to look it up in the code?

For those who are interested, the first thing we are working on is 
Phil's server-to-server enabled file create.  In the first step we are 
migrating the client create syscall functionality to the server, then we 
will work on implementing collective communication.  Right now we are 
trying to figure out to what extent we can use the new state machine 
features to simplify that by essentially starting a client state machine 
on the server.  Any input on that activity is encouraged.

Walt
-- 
Dr. Walter B. Ligon III
Associate Professor
ECE Department
Clemson University


More information about the Pvfs2-developers mailing list