blob: 99ea802655c18ec4a5de43cbd748175f9da36aa2 [file] [log] [blame]
syntax = "proto2";
package dittosuiteproto;
enum AccessType {
SEQUENTIAL = 0;
RANDOM = 1;
}
enum Reseeding {
ONCE = 0;
EACH_ROUND_OF_CYCLES = 1;
EACH_CYCLE = 2;
}
message InstructionOpenFile {
oneof file {
string path_name = 1;
string input = 2;
}
optional string output_fd = 3;
optional bool create = 4 [default = true];
}
message InstructionDeleteFile {
oneof file {
string path_name = 1;
string input = 2;
}
}
message InstructionCloseFile {
required string input_fd = 1;
}
message InstructionResizeFile {
required string input_fd = 1;
required int64 size = 2;
}
message InstructionResizeFileRandom {
required string input_fd = 1;
required int64 min = 2;
required int64 max = 3;
optional uint32 seed = 4;
optional Reseeding reseeding = 5 [default = ONCE];
}
message InstructionWriteFile {
required string input_fd = 1;
optional int64 size = 2 [default = -1];
optional int64 block_size = 3 [default = 4096];
optional int64 starting_offset = 4 [default = 0];
optional AccessType type = 5 [default = SEQUENTIAL];
optional uint32 seed = 6;
optional bool fsync = 7 [default = false];
optional Reseeding reseeding = 8 [default = ONCE];
}
message InstructionReadFile {
enum ReadFAdvise {
AUTOMATIC = 0;
NORMAL = 1;
SEQUENTIAL = 2;
RANDOM = 3;
}
required string input_fd = 1;
optional int64 size = 2 [default = -1];
optional int64 block_size = 3 [default = 4096];
optional int64 starting_offset = 4 [default = 0];
optional AccessType type = 5 [default = SEQUENTIAL];
optional uint32 seed = 6;
optional ReadFAdvise fadvise = 7 [default = AUTOMATIC];
optional Reseeding reseeding = 8 [default = ONCE];
}
message InstructionReadDirectory {
required string directory_name = 1;
required string output = 2;
}
message Instruction {
optional int32 repeat = 1 [default = 1];
oneof instruction_oneof {
InstructionSet instruction_set = 2;
InstructionOpenFile instruction_open_file = 3;
InstructionDeleteFile instruction_delete_file = 4;
InstructionCloseFile instruction_close_file = 5;
InstructionResizeFile instruction_resize_file = 6;
InstructionWriteFile instruction_write_file = 7;
InstructionReadFile instruction_read_file = 8;
InstructionReadDirectory instruction_read_directory = 9;
InstructionResizeFileRandom instruction_resize_file_random = 10;
}
}
message InstructionSet {
repeated Instruction instructions = 1;
optional InstructionSetIterate iterate_options = 2;
}
message InstructionSetIterate {
required string list_name = 1;
required string item_name = 2;
optional AccessType type = 3 [default = SEQUENTIAL];
optional Reseeding reseeding = 4 [default = ONCE];
optional uint32 seed = 5;
}
message Global {
optional string absolute_path = 1 [default = ""];
}
message Benchmark {
required Instruction main = 1;
required Global global = 2;
}