Documentation ¶
Overview ¶
Package rpctype contains types of message passed via net/rpc connections between various parts of the system.
Index ¶
- Constants
- func Dial(addr string, timeScale time.Duration) (net.Conn, error)
- type CheckArgs
- type CheckRes
- type ConnectArgs
- type ConnectRes
- type ExchangeInfoReply
- type ExchangeInfoRequest
- type ExecTask
- type ExecutingRequest
- type ExecutionRequest
- type ExecutionResult
- type HubConnectArgs
- type HubInput
- type HubSyncArgs
- type HubSyncRes
- type NextExchangeArgs
- type NextExchangeRes
- type RPCClient
- type RPCServer
- type RunTestDoneArgs
- type RunTestPollReq
- type RunTestPollRes
- type RunnerConnectArgs
- type RunnerConnectRes
- type SyscallReason
- type UpdateUnsupportedArgs
Constants ¶
const (
NoTask int64 = math.MaxInt64
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ConnectArgs ¶
type ConnectRes ¶
type ConnectRes struct { EnabledCalls []int MemoryLeakFrames []string DataRaceFrames []string AllSandboxes bool // This is forwarded from CheckArgs, if checking was already done. Features *host.Features // Fuzzer reads these files inside of the VM and returns contents in CheckArgs.Files. ReadFiles []string ReadGlobs []string }
type ExchangeInfoReply ¶
type ExchangeInfoReply struct { Requests []ExecutionRequest NewMaxSignal []uint32 DropMaxSignal []uint32 }
ExchangeInfoReply is a reply to ExchangeInfoRequest.
type ExchangeInfoRequest ¶
type ExchangeInfoRequest struct { Name string NeedProgs int StatsDelta map[string]uint64 Results []ExecutionResult Latency time.Duration // latency of the previous ExchangeInfo request }
ExchangeInfoRequest is periodically sent by syz-fuzzer to syz-manager.
type ExecutingRequest ¶
ExecutingRequest is notification from the fuzzer that it started executing the program ProgID. We want this request to be as small and as fast as possible b/c we want it to reach manager (or at least leave the VM) before it crashes executing this program.
type ExecutionRequest ¶
type ExecutionRequest struct { ID int64 ProgData []byte ExecOpts ipc.ExecOpts NewSignal bool SignalFilter signal.Signal SignalFilterCall int }
ExecutionRequest describes the task of executing a particular program. Corresponds to Fuzzer.Request.
type ExecutionResult ¶
ExecutionResult is sent after ExecutionRequest is completed.
type HubConnectArgs ¶
type HubConnectArgs struct { // Client/Key are used for authentication. Client string // The key may be a secret password or the oauth token prefixed by "Bearer ". Key string // Manager name, must start with Client. Manager string // See pkg/mgrconfig.Config.HubDomain. Domain string // Manager has started with an empty corpus and requests whole hub corpus. Fresh bool // Set of system call names supported by this manager. // Used to filter out programs with unsupported calls. Calls []string // Current manager corpus. Corpus [][]byte }
type HubSyncArgs ¶
type HubSyncArgs struct { // see HubConnectArgs. Client string Key string Manager string NeedRepros bool // Programs added to corpus since last sync or connect. Add [][]byte // Hashes of programs removed from corpus since last sync or connect. Del []string // Repros found since last sync. Repros [][]byte }
type HubSyncRes ¶
type HubSyncRes struct { // Set of inputs from other managers. Inputs []HubInput // Same as Inputs but for legacy managers that don't understand new format (remove later). Progs [][]byte // Set of repros from other managers. Repros [][]byte // Number of remaining pending programs, // if >0 manager should do sync again. More int }
type NextExchangeArgs ¶
type NextExchangeArgs struct {
// Pool/VM are used to identify the instance on which the client is running.
Pool, VM int
// ExecTaskID is used to uniquely identify the program for which the client is
// sending results.
ExecTaskID int64
// Hanged is set to true if the program for which we are sending results
// was killed due to hanging.
Hanged bool
// Info contains information about the execution of each system call in the
// program.
Info ipc.ProgInfo
}
NextExchangeArgs contains the data passed from client to server namely identification information of the VM and program execution results.
type NextExchangeRes ¶
type NextExchangeRes struct {
ExecTask
}
NextExchaneRes contains the data passed from server to client namely programs to execute on the VM.
type RPCClient ¶
type RPCClient struct {
// contains filtered or unexported fields
}
func NewRPCClient ¶
type RPCServer ¶
type RPCServer struct {
// contains filtered or unexported fields
}
func NewRPCServer ¶
type RunTestDoneArgs ¶
type RunTestPollReq ¶
type RunTestPollReq struct {
Name string
}
type RunTestPollRes ¶
type RunnerConnectArgs ¶
type RunnerConnectArgs struct {
Pool, VM int
}
type RunnerConnectRes ¶
type RunnerConnectRes struct { // CheckUnsupportedCalls is set to true if the Runner needs to query the kernel // for unsupported system calls and report them back to the server. CheckUnsupportedCalls bool }
type SyscallReason ¶
type UpdateUnsupportedArgs ¶
type UpdateUnsupportedArgs struct { // Pool is used to identify the checked kernel. Pool int // UnsupportedCalls contains the ID's of system calls not supported by the // client and the reason for this. UnsupportedCalls []SyscallReason }
UpdateUnsupportedArgs contains the data passed from client to server in an UpdateSupported call, namely the system calls not supported by the client's kernel.