Documentation
¶
Overview ¶
Package p4rtclient ...
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
io.Closer
StreamClient
ClientConn() *grpc.ClientConn
Write(ctx context.Context, in *p4api.WriteRequest, opts ...grpc.CallOption) (*p4api.WriteResponse, error)
// Read one or more P4 entities from the target.
Read(ctx context.Context, in *p4api.ReadRequest, opts ...grpc.CallOption) (p4api.P4Runtime_ReadClient, error)
// SetForwardingPipelineConfig Sets the P4 forwarding-pipeline config.
SetForwardingPipelineConfig(ctx context.Context, in *p4api.SetForwardingPipelineConfigRequest, opts ...grpc.CallOption) (*p4api.SetForwardingPipelineConfigResponse, error)
// GetForwardingPipelineConfig Gets the current P4 forwarding-pipeline config
GetForwardingPipelineConfig(ctx context.Context, in *p4api.GetForwardingPipelineConfigRequest, opts ...grpc.CallOption) (*p4api.GetForwardingPipelineConfigResponse, error)
StreamChannel(ctx context.Context, opts ...grpc.CallOption) (p4api.P4Runtime_StreamChannelClient, error)
Capabilities(ctx context.Context, request *p4api.CapabilitiesRequest, opts ...grpc.CallOption) (*p4api.CapabilitiesResponse, error)
}
Client P4runtime client interface
type Conn ¶
type Conn interface {
Client
ID() ConnID
TargetID() topoapi.ID
DeviceID() uint64
RoleName() string
}
Conn connection interface
type ConnManager ¶
type ConnManager interface {
Get(ctx context.Context, connID ConnID) (Conn, bool)
GetByTarget(ctx context.Context, targetID topoapi.ID) (Client, error)
Connect(ctx context.Context, destination *Destination) (Client, error)
Disconnect(ctx context.Context, targetID topoapi.ID) error
Watch(ctx context.Context, ch chan<- Conn) error
}
ConnManager p4rt connection manager
func NewConnManager ¶
func NewConnManager() ConnManager
NewConnManager creates a new p4rt connection manager
type Destination ¶
type Destination struct {
// Endpoint P4runtime server endpoint address
Endpoint *topoapi.Endpoint
// TargetID is the topology target entity ID
TargetID topoapi.ID
// Timeout is the connection timeout
Timeout time.Duration
// TLS config to use when connecting to target.
TLS *topoapi.TLSOptions
// DeviceID is the numerical ID to be used for p4runtime API interactions
DeviceID uint64
// RoleName a name given to a connection role
RoleName string
}
Destination contains data used to connect to a server
type StreamClient ¶ added in v1.1.4
type StreamClient interface {
PerformMasterArbitration(ctx context.Context, role *p4api.Role) (*p4api.StreamMessageResponse_Arbitration, error)
}
StreamClient p4runtime master stream client
Click to show internal directories.
Click to hide internal directories.