Documentation ¶
Overview ¶
Package plugin provides a set of interfaces to interact with third-party netstack. It will be used during sandbox network setup when NetworkType is set as NetworkPlugin.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterPluginStack ¶
func RegisterPluginStack(stack PluginStack)
RegisterPluginStack registers given stack as plugin stack.
func SeccompFilters ¶
func SeccompFilters() seccomp.SyscallRules
SeccompFilters defines seccomp allowed rules that are needed by cgo.
Types ¶
type EventInfo ¶
type EventInfo struct { // Queue is the socket corresponding event queue. Wq *waiter.Queue // Mask represents events this socket registered. Mask waiter.EventMask // Ready represents events has been currently reported. Ready waiter.EventMask // Waiting represents whether there is any waiting event. Waiting bool }
EventInfo is a struct that holds information necessary to a socket notification mechanisms.
type InitStackArgs ¶
type InitStackArgs struct { // InitStr represents arguments needed to initialize plugin stack. InitStr string // FDs represents files opened during stack pre-init stage, which will // be used in stack initialization. FDs []int }
InitStackArgs is a struct that holds arguments needed by PluginStack.Init.
type PluginNotifier ¶
type PluginNotifier interface { // AddFD registers a new socket fd and its corresponding // event notification info into the global fdMap. AddFD(fd uint32, eventinfo *EventInfo) error // RemoveFD unregisters a socket fd and its corresponding // event notification info from the global fdMap. RemoveFD(fd uint32) // UpdateFD updates the set of events the socket fd needs // to be notified on. UpdateFD(fd uint32) error }
PluginNotifier represents a set of operations to handle plugin network stack's event notification mechanisms.
type PluginStack ¶
type PluginStack interface { inet.Stack // Init initializes plugin stack. Init(args *InitStackArgs) error // PreInit handles prepare steps before initializing plugin stack. // It may include joining namespace, mounting NIC, etc. PreInit(args *PreInitStackArgs) (string, []int, error) }
PluginStack defines a set of stack operations to work with a third-party plugin stack.
func GetPluginStack ¶
func GetPluginStack() PluginStack
GetPluginStack fetches the current registered plugin stack.
type PreInitStackArgs ¶
type PreInitStackArgs struct { // Pid represents current process that invokes plugin stack // pre-init. Pid int }
PreInitStackArgs is a struct that holds arguments needed by PluginStack.PreInit.
Directories ¶
Path | Synopsis |
---|---|
Package cgo provides interfaces definition to interact with third-party network stack.
|
Package cgo provides interfaces definition to interact with third-party network stack. |
Package stack provides an implementation of plugin.PluginStack interface and an implementation of socket.Socket interface.
|
Package stack provides an implementation of plugin.PluginStack interface and an implementation of socket.Socket interface. |