Documentation ¶
Index ¶
- Constants
- func RegisterTypes()
- func TestNewRPCClient(t *testing.T)
- type CaptureType
- type DebugCollectPayload
- type DebugCollectResponsePayload
- type EnableDatapathPacketTracingPayLoad
- type EnableIPTablesPacketTracingPayLoad
- type EnforcePayload
- type InitRequestPayload
- type MockRPCHdl
- type PayloadType
- type PingPayload
- type RPCClient
- type RPCHdl
- type RPCServer
- type RPCWrapper
- func (r *RPCWrapper) CheckValidity(req *Request, secret string) bool
- func (r *RPCWrapper) ContextList() []string
- func (r *RPCWrapper) DestroyRPCClient(contextID string)
- func (r *RPCWrapper) GetRPCClient(contextID string) (*RPCHdl, error)
- func (r *RPCWrapper) NewRPCClient(contextID string, channel string, sharedsecret string) error
- func (r *RPCWrapper) ProcessMessage(req *Request, secret string) bool
- func (r *RPCWrapper) RemoteCall(contextID string, methodName string, req *Request, resp *Response) error
- func (r *RPCWrapper) StartServer(ctx context.Context, protocol string, path string, handler interface{}) error
- type ReportPayload
- type Request
- type Response
- type SetLogLevelPayload
- type SetTargetNetworksPayload
- type StatsPayload
- type TestRPCClient
- type TestRPCServer
- type TokenRequestPayload
- type TokenResponsePayload
- type UnEnforcePayload
- type UpdateSecretsPayload
Constants ¶
const (
SUCCESS = 0
)
exported consts from the package
Variables ¶
This section is empty.
Functions ¶
func RegisterTypes ¶
func RegisterTypes()
RegisterTypes registers types that are exchanged between the controller and remoteenforcer
func TestNewRPCClient ¶
TestNewRPCClient mocks an RPC client test
Types ¶
type CaptureType ¶
type CaptureType int
CaptureType identifies the type of iptables implementation that should be used
const ( // IPTables forces an IPTables implementation IPTables CaptureType = iota // IPSets forces an IPSet implementation IPSets )
type DebugCollectPayload ¶
type DebugCollectPayload struct { ContextID string PcapFilePath string PcapFilter string CommandExec string }
DebugCollectPayload is the payload for the DebugCollect request.
type DebugCollectResponsePayload ¶
DebugCollectResponsePayload is the payload for the DebugCollect response.
type EnableDatapathPacketTracingPayLoad ¶
type EnableDatapathPacketTracingPayLoad struct { Direction packettracing.TracingDirection `json:",omitempty"` Interval time.Duration `json:",omitempty"` ContextID string `json:",omitempty"` }
EnableDatapathPacketTracingPayLoad is the payload to enable nfq packet tracing in the remote container
type EnableIPTablesPacketTracingPayLoad ¶
type EnableIPTablesPacketTracingPayLoad struct { IPTablesPacketTracing bool `json:",omitempty"` Interval time.Duration `json:",omitempty"` ContextID string `json:",omitempty"` }
EnableIPTablesPacketTracingPayLoad is the payload message to enable iptable trace in remote containers
type EnforcePayload ¶
type EnforcePayload struct { ContextID string `json:",omitempty"` Policy *policy.PUPolicyPublic `json:",omitempty"` Secrets secrets.RPCSecrets `json:",omitempty"` }
EnforcePayload Payload for enforce request
type InitRequestPayload ¶
type InitRequestPayload struct { MutualAuth bool `json:",omitempty"` PacketLogs bool `json:",omitempty"` Validity time.Duration `json:",omitempty"` ServerID string `json:",omitempty"` ExternalIPCacheTimeout time.Duration `json:",omitempty"` Secrets secrets.RPCSecrets `json:",omitempty"` Configuration *runtime.Configuration `json:",omitempty"` BinaryTokens bool `json:",omitempty"` IsBPFEnabled bool `json:",omitempty"` IPv6Enabled bool `json:",omitempty"` IPTablesLockfile string `json:",omitempty"` ServiceMeshType policy.ServiceMesh `json:",omitempty"` }
InitRequestPayload Payload for enforcer init request
type MockRPCHdl ¶
MockRPCHdl is mock of rpchdl
type PayloadType ¶
type PayloadType int
PayloadType is the type of payload in the request.
const ( PacketReport PayloadType = iota DNSReport CounterReport PingReport ConnectionExceptionReport )
Payload report types.
type PingPayload ¶
type PingPayload struct { ContextID string PingConfig *policy.PingConfig }
PingPayload represents the payload for ping config.
type RPCClient ¶
type RPCClient interface { NewRPCClient(contextID string, channel string, rpcSecret string) error GetRPCClient(contextID string) (*RPCHdl, error) RemoteCall(contextID string, methodName string, req *Request, resp *Response) error DestroyRPCClient(contextID string) ContextList() []string CheckValidity(req *Request, secret string) bool }
RPCClient is the client interface
type RPCServer ¶
type RPCServer interface { StartServer(ctx context.Context, protocol string, path string, handler interface{}) error ProcessMessage(req *Request, secret string) bool CheckValidity(req *Request, secret string) bool }
RPCServer is the server interface
type RPCWrapper ¶
RPCWrapper is a struct which holds stats for all rpc sesions
func (*RPCWrapper) CheckValidity ¶
func (r *RPCWrapper) CheckValidity(req *Request, secret string) bool
CheckValidity checks if the received message is valid
func (*RPCWrapper) ContextList ¶
func (r *RPCWrapper) ContextList() []string
ContextList returns the list of active context managed by the rpcwrapper
func (*RPCWrapper) DestroyRPCClient ¶
func (r *RPCWrapper) DestroyRPCClient(contextID string)
DestroyRPCClient calls close on the rpc and cleans up the connection
func (*RPCWrapper) GetRPCClient ¶
func (r *RPCWrapper) GetRPCClient(contextID string) (*RPCHdl, error)
GetRPCClient gets a handle to the rpc client for the contextID( enforcer in the container)
func (*RPCWrapper) NewRPCClient ¶
func (r *RPCWrapper) NewRPCClient(contextID string, channel string, sharedsecret string) error
NewRPCClient exported
func (*RPCWrapper) ProcessMessage ¶
func (r *RPCWrapper) ProcessMessage(req *Request, secret string) bool
ProcessMessage checks if the given request is valid
func (*RPCWrapper) RemoteCall ¶
func (r *RPCWrapper) RemoteCall(contextID string, methodName string, req *Request, resp *Response) error
RemoteCall is a wrapper around rpc.Call and also ensure message integrity by adding a hmac
func (*RPCWrapper) StartServer ¶
func (r *RPCWrapper) StartServer(ctx context.Context, protocol string, path string, handler interface{}) error
StartServer Starts a server and waits for new connections this function never returns
type ReportPayload ¶
type ReportPayload struct { Type PayloadType Payload interface{} }
ReportPayload is the generic report from remote enforcer
type Request ¶
type Request struct { HashAuth []byte PayloadType PayloadType Payload interface{} }
Request exported
type Response ¶
type Response struct { Status string Payload interface{} `json:",omitempty"` }
Response is the response for every RPC call. This is used to carry the status of the actual function call made on the remote end
type SetLogLevelPayload ¶
SetLogLevelPayload payload for set log level request
type SetTargetNetworksPayload ¶
type SetTargetNetworksPayload struct {
Configuration *runtime.Configuration `json:",omitempty"`
}
SetTargetNetworksPayload carries the payload for target networks
type StatsPayload ¶
type StatsPayload struct { Flows map[uint64]*collector.FlowRecord `json:",omitempty"` Users map[string]*collector.UserRecord `json:",omitempty"` }
StatsPayload is the payload carries by the stats reporting form the remote enforcer
type TestRPCClient ¶
type TestRPCClient interface { RPCClient MockNewRPCClient(t *testing.T, impl func(contextID string, channel string, secret string) error) MockGetRPCClient(t *testing.T, impl func(contextID string) (*RPCHdl, error)) MockRemoteCall(t *testing.T, impl func(contextID string, methodName string, req *Request, resp *Response) error) MockDestroyRPCClient(t *testing.T, impl func(contextID string)) MockContextList(t *testing.T, impl func() []string) MockCheckValidity(t *testing.T, impl func(req *Request, secret string) bool) }
TestRPCClient is a RPC Client used for test
type TestRPCServer ¶
type TestRPCServer interface { RPCServer MockStartServer(t *testing.T, impl func(ctx context.Context, protocol string, path string, handler interface{}) error) MockProcessMessage(t *testing.T, impl func(req *Request, secret string) bool) MockCheckValidity(t *testing.T, impl func(req *Request, secret string) bool) }
TestRPCServer is a RPC Server used for test
type TokenRequestPayload ¶
type TokenRequestPayload struct { ContextID string `json:",omitempty"` Audience string `json:",omitempty"` Validity time.Duration `json:",omitempty"` ServiceTokenType common.ServiceTokenType `json:",omitempty"` }
TokenRequestPayload carries the payload for issuing tokens.
type TokenResponsePayload ¶
type TokenResponsePayload struct {
Token string `json:",omitempty"`
}
TokenResponsePayload returns the issued token.
type UnEnforcePayload ¶
type UnEnforcePayload struct {
ContextID string `json:",omitempty"`
}
UnEnforcePayload payload for unenforce request
type UpdateSecretsPayload ¶
type UpdateSecretsPayload struct {
Secrets secrets.RPCSecrets `json:",omitempty"`
}
UpdateSecretsPayload payload for the update secrets to remote enforcers
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package mockrpcwrapper is a generated GoMock package.
|
Package mockrpcwrapper is a generated GoMock package. |