message WeathermonitorProtoMsg { // Input: experiment parameters required int32 instr_offset = 1; optional int32 instr_address = 2; // for sanity checks required int32 mem_addr = 3; required int32 bit_offset = 4; // ---------------------------------------------------- // Output: experiment results // (make these optional to reduce overhead for server->client communication) // instruction pointer where injection was done optional uint32 injection_ip = 5; // result type: // FINISHED = planned number of instructions were executed // TRAP = premature guest "crash" enum ResultType { FINISHED = 1; TRAP = 2; OUTSIDE = 3; HALT = 4; UNKNOWN = 5; } optional ResultType resulttype = 6; // especially interesting for TRAP/UNKNOWN: latest IP optional uint32 latest_ip = 7; // optional textual description of what happened optional string details = 8; }