/* These are the padding negotiation commands */ const CIRCPAD_COMMAND_STOP = 1; const CIRCPAD_COMMAND_START = 2; /* Responses to commands */ const CIRCPAD_RESPONSE_OK = 1; const CIRCPAD_RESPONSE_ERR = 2; /* Built-in machine types */ /* 1) Machine that obscures circuit setup */ const CIRCPAD_MACHINE_CIRC_SETUP = 1; /** * This command tells the relay to alter its min and max netflow * timeout range values, and send padding at that rate (resuming * if stopped). */ struct circpad_negotiate { u8 version IN [0]; u8 command IN [CIRCPAD_COMMAND_START, CIRCPAD_COMMAND_STOP]; /** Machine type is left unbounded because we can specify * new machines in the consensus */ u8 machine_type; /** If true, send a relay_drop reply.. */ // FIXME-MP-AP: Maybe we just say to transition to the first state // here instead.. Also what about delay before responding? u8 echo_request IN [0,1]; }; /** * This command tells the relay to alter its min and max netflow * timeout range values, and send padding at that rate (resuming * if stopped). */ struct circpad_negotiated { u8 version IN [0]; u8 command IN [CIRCPAD_COMMAND_START, CIRCPAD_COMMAND_STOP]; u8 response IN [CIRCPAD_RESPONSE_OK, CIRCPAD_RESPONSE_ERR]; /** Machine type is left unbounded because we can specify * new machines in the consensus */ u8 machine_type; };