class SYMLINK_Call(Packet): name = 'SYMLINK Call' fields_desc = [ PacketField('dir', File_Object(), File_Object), PacketField('dir_name', Object_Name(), Object_Name), PacketField('attributes', Sattr3(), Sattr3), PacketField('link_name', Object_Name(), Object_Name) ]
class RENAME_Call(Packet): name = 'RENAME Call' fields_desc = [ PacketField('dir_from', File_Object(), File_Object), PacketField('name_from', Object_Name(), Object_Name), PacketField('dir_to', File_Object(), File_Object), PacketField('name_to', Object_Name(), Object_Name), ]
class UNSHARE_Call(Packet): name = 'UNSHARE Reply' fields_desc = [ PacketField('cookie', NLM4_Cookie(), NLM4_Cookie), PacketField('caller', Object_Name(), Object_Name), PacketField('filehandle', File_Object(), File_Object), PacketField('owner', Object_Name(), Object_Name), IntField('mode', 0), IntField('access', 0), IntEnumField('reclaim', 0, {0: 'NO', 1: 'YES'}) ]
class UNLOCK_Call(Packet): name = 'UNLOCK Call' fields_desc = [ PacketField('cookie', NLM4_Cookie(), NLM4_Cookie), PacketField('caller', Object_Name(), Object_Name), PacketField('filehandle', File_Object(), File_Object), PacketField('owner', Object_Name(), Object_Name), IntField('svid', 0), LongField('l_offset', 0), LongField('l_len', 0) ]
class TEST_Call(Packet): name = 'TEST Call' fields_desc = [ PacketField('cookie', NLM4_Cookie(), NLM4_Cookie), IntEnumField('exclusive', 0, {0: 'NO', 1: 'YES'}), PacketField('caller', Object_Name(), Object_Name), PacketField('filehandle', File_Object(), File_Object), PacketField('owner', Object_Name(), Object_Name), IntField('svid', 0), LongField('l_offset', 0), LongField('l_len', 0) ]
class MKDIR_Call(Packet): name = 'MKDIR Call' fields_desc = [ PacketField('dir', File_Object(), File_Object), PacketField('dir_name', Object_Name(), Object_Name), PacketField('attributes', Sattr3(), Sattr3) ]
class LINK_Call(Packet): name = 'LINK Call' fields_desc = [ PacketField('filehandle', File_Object(), File_Object), PacketField('link_dir', File_Object(), File_Object), PacketField('link_name', Object_Name(), Object_Name) ]
class READLINK_Reply(Packet): name = 'READLINK Reply' fields_desc = [ IntEnumField('status', 0, nfsstat3), IntField('attributes_follow', 0), ConditionalField(PacketField('attributes', Fattr3(), Fattr3), lambda pkt: pkt.attributes_follow == 1), ConditionalField(PacketField('filename', Object_Name(), Object_Name), lambda pkt: pkt.status == 0) ]
class File_From_Dir(Packet): name = 'File' fields_desc = [ LongField('fileid', 0), PacketField('filename', Object_Name(), Object_Name), LongField('cookie', 0), IntField('value_follows', 0) ] def extract_padding(self, s): return '', s
class CREATE_Call(Packet): name = 'CREATE Call' fields_desc = [ PacketField('dir', File_Object(), File_Object), PacketField('filename', Object_Name(), Object_Name), IntEnumField('create_mode', None, { 0: 'UNCHECKED', 1: 'GUARDED', 2: 'EXCLUSIVE' }), ConditionalField(PacketField('attributes', Sattr3(), Sattr3), lambda pkt: pkt.create_mode != 2), ConditionalField(XLongField('verifier', 0), lambda pkt: pkt.create_mode == 2) ]
class File_From_Dir_Plus(Packet): name = 'File' fields_desc = [ LongField('fileid', 0), PacketField('filename', Object_Name(), Object_Name), LongField('cookie', 0), IntField('attributes_follow', 0), ConditionalField(PacketField('attributes', Fattr3(), Fattr3), lambda pkt: pkt.attributes_follow == 1), IntField('handle_follows', 0), ConditionalField(PacketField('filehandle', File_Object(), File_Object), lambda pkt: pkt.handle_follows == 1), IntField('value_follows', 0) ] def extract_padding(self, s): return '', s
class RMDIR_Call(Packet): name = 'RMDIR Call' fields_desc = [ PacketField('dir', File_Object(), File_Object), PacketField('filename', Object_Name(), Object_Name), ]
class REMOVE_Call(Packet): name = 'REMOVE Call' fields_desc = [ PacketField('dir', File_Object(), File_Object), PacketField('filename', Object_Name(), Object_Name) ]
class LOOKUP_Call(Packet): name = 'LOOKUP Call' fields_desc = [ PacketField('dir', File_Object(), File_Object), PacketField('filename', Object_Name(), Object_Name) ]