Documentation ¶
Index ¶
- Variables
- func RegisterLayer2Server(s grpc.ServiceRegistrar, srv Layer2Server)
- type ClearLLDPInterfaceRequest
- func (*ClearLLDPInterfaceRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ClearLLDPInterfaceRequest) GetInterface() *types.Path
- func (*ClearLLDPInterfaceRequest) ProtoMessage()
- func (x *ClearLLDPInterfaceRequest) ProtoReflect() protoreflect.Message
- func (x *ClearLLDPInterfaceRequest) Reset()
- func (x *ClearLLDPInterfaceRequest) String() string
- type ClearLLDPInterfaceResponse
- type ClearNeighborDiscoveryRequest
- func (*ClearNeighborDiscoveryRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ClearNeighborDiscoveryRequest) GetAddress() string
- func (x *ClearNeighborDiscoveryRequest) GetProtocol() types.L3Protocol
- func (*ClearNeighborDiscoveryRequest) ProtoMessage()
- func (x *ClearNeighborDiscoveryRequest) ProtoReflect() protoreflect.Message
- func (x *ClearNeighborDiscoveryRequest) Reset()
- func (x *ClearNeighborDiscoveryRequest) String() string
- type ClearNeighborDiscoveryResponse
- func (*ClearNeighborDiscoveryResponse) Descriptor() ([]byte, []int)deprecated
- func (*ClearNeighborDiscoveryResponse) ProtoMessage()
- func (x *ClearNeighborDiscoveryResponse) ProtoReflect() protoreflect.Message
- func (x *ClearNeighborDiscoveryResponse) Reset()
- func (x *ClearNeighborDiscoveryResponse) String() string
- type ClearSpanningTreeRequest
- func (*ClearSpanningTreeRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ClearSpanningTreeRequest) GetInterface() *types.Path
- func (*ClearSpanningTreeRequest) ProtoMessage()
- func (x *ClearSpanningTreeRequest) ProtoReflect() protoreflect.Message
- func (x *ClearSpanningTreeRequest) Reset()
- func (x *ClearSpanningTreeRequest) String() string
- type ClearSpanningTreeResponse
- type Layer2Client
- type Layer2Server
- type Layer2_PerformBERTClient
- type Layer2_PerformBERTServer
- type PerformBERTRequest
- func (*PerformBERTRequest) Descriptor() ([]byte, []int)deprecated
- func (x *PerformBERTRequest) GetId() string
- func (x *PerformBERTRequest) GetInterface() *types.Path
- func (*PerformBERTRequest) ProtoMessage()
- func (x *PerformBERTRequest) ProtoReflect() protoreflect.Message
- func (x *PerformBERTRequest) Reset()
- func (x *PerformBERTRequest) String() string
- type PerformBERTResponse
- func (*PerformBERTResponse) Descriptor() ([]byte, []int)deprecated
- func (x *PerformBERTResponse) GetElapsedPeriod() int64
- func (x *PerformBERTResponse) GetErrors() int64
- func (x *PerformBERTResponse) GetId() string
- func (x *PerformBERTResponse) GetPattern() []byte
- func (x *PerformBERTResponse) GetReceivedBits() int64
- func (x *PerformBERTResponse) GetState() PerformBERTResponse_BERTState
- func (*PerformBERTResponse) ProtoMessage()
- func (x *PerformBERTResponse) ProtoReflect() protoreflect.Message
- func (x *PerformBERTResponse) Reset()
- func (x *PerformBERTResponse) String() string
- type PerformBERTResponse_BERTState
- func (PerformBERTResponse_BERTState) Descriptor() protoreflect.EnumDescriptor
- func (x PerformBERTResponse_BERTState) Enum() *PerformBERTResponse_BERTState
- func (PerformBERTResponse_BERTState) EnumDescriptor() ([]byte, []int)deprecated
- func (x PerformBERTResponse_BERTState) Number() protoreflect.EnumNumber
- func (x PerformBERTResponse_BERTState) String() string
- func (PerformBERTResponse_BERTState) Type() protoreflect.EnumType
- type SendWakeOnLANRequest
- func (*SendWakeOnLANRequest) Descriptor() ([]byte, []int)deprecated
- func (x *SendWakeOnLANRequest) GetAddress() string
- func (x *SendWakeOnLANRequest) GetInterface() *types.Path
- func (x *SendWakeOnLANRequest) GetMacAddress() []byte
- func (*SendWakeOnLANRequest) ProtoMessage()
- func (x *SendWakeOnLANRequest) ProtoReflect() protoreflect.Message
- func (x *SendWakeOnLANRequest) Reset()
- func (x *SendWakeOnLANRequest) String() string
- type SendWakeOnLANResponse
- type UnimplementedLayer2Server
- func (UnimplementedLayer2Server) ClearLLDPInterface(context.Context, *ClearLLDPInterfaceRequest) (*ClearLLDPInterfaceResponse, error)
- func (UnimplementedLayer2Server) ClearNeighborDiscovery(context.Context, *ClearNeighborDiscoveryRequest) (*ClearNeighborDiscoveryResponse, error)
- func (UnimplementedLayer2Server) ClearSpanningTree(context.Context, *ClearSpanningTreeRequest) (*ClearSpanningTreeResponse, error)
- func (UnimplementedLayer2Server) PerformBERT(*PerformBERTRequest, Layer2_PerformBERTServer) error
- func (UnimplementedLayer2Server) SendWakeOnLAN(context.Context, *SendWakeOnLANRequest) (*SendWakeOnLANResponse, error)
- type UnsafeLayer2Server
Constants ¶
This section is empty.
Variables ¶
var ( PerformBERTResponse_BERTState_name = map[int32]string{ 0: "UNKNOWN", 1: "DISABLED", 2: "RUNNING", 3: "COMPLETE", 4: "ERROR", } PerformBERTResponse_BERTState_value = map[string]int32{ "UNKNOWN": 0, "DISABLED": 1, "RUNNING": 2, "COMPLETE": 3, "ERROR": 4, } )
Enum value maps for PerformBERTResponse_BERTState.
var File_layer2_layer2_proto protoreflect.FileDescriptor
var Layer2_ServiceDesc = grpc.ServiceDesc{ ServiceName: "gnoi.layer2.Layer2", HandlerType: (*Layer2Server)(nil), Methods: []grpc.MethodDesc{ { MethodName: "ClearNeighborDiscovery", Handler: _Layer2_ClearNeighborDiscovery_Handler, }, { MethodName: "ClearSpanningTree", Handler: _Layer2_ClearSpanningTree_Handler, }, { MethodName: "ClearLLDPInterface", Handler: _Layer2_ClearLLDPInterface_Handler, }, { MethodName: "SendWakeOnLAN", Handler: _Layer2_SendWakeOnLAN_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "PerformBERT", Handler: _Layer2_PerformBERT_Handler, ServerStreams: true, }, }, Metadata: "layer2/layer2.proto", }
Layer2_ServiceDesc is the grpc.ServiceDesc for Layer2 service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
Functions ¶
func RegisterLayer2Server ¶
func RegisterLayer2Server(s grpc.ServiceRegistrar, srv Layer2Server)
Types ¶
type ClearLLDPInterfaceRequest ¶
type ClearLLDPInterfaceRequest struct { Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"` // contains filtered or unexported fields }
func (*ClearLLDPInterfaceRequest) Descriptor
deprecated
func (*ClearLLDPInterfaceRequest) Descriptor() ([]byte, []int)
Deprecated: Use ClearLLDPInterfaceRequest.ProtoReflect.Descriptor instead.
func (*ClearLLDPInterfaceRequest) GetInterface ¶
func (x *ClearLLDPInterfaceRequest) GetInterface() *types.Path
func (*ClearLLDPInterfaceRequest) ProtoMessage ¶
func (*ClearLLDPInterfaceRequest) ProtoMessage()
func (*ClearLLDPInterfaceRequest) ProtoReflect ¶
func (x *ClearLLDPInterfaceRequest) ProtoReflect() protoreflect.Message
func (*ClearLLDPInterfaceRequest) Reset ¶
func (x *ClearLLDPInterfaceRequest) Reset()
func (*ClearLLDPInterfaceRequest) String ¶
func (x *ClearLLDPInterfaceRequest) String() string
type ClearLLDPInterfaceResponse ¶
type ClearLLDPInterfaceResponse struct {
// contains filtered or unexported fields
}
func (*ClearLLDPInterfaceResponse) Descriptor
deprecated
func (*ClearLLDPInterfaceResponse) Descriptor() ([]byte, []int)
Deprecated: Use ClearLLDPInterfaceResponse.ProtoReflect.Descriptor instead.
func (*ClearLLDPInterfaceResponse) ProtoMessage ¶
func (*ClearLLDPInterfaceResponse) ProtoMessage()
func (*ClearLLDPInterfaceResponse) ProtoReflect ¶
func (x *ClearLLDPInterfaceResponse) ProtoReflect() protoreflect.Message
func (*ClearLLDPInterfaceResponse) Reset ¶
func (x *ClearLLDPInterfaceResponse) Reset()
func (*ClearLLDPInterfaceResponse) String ¶
func (x *ClearLLDPInterfaceResponse) String() string
type ClearNeighborDiscoveryRequest ¶
type ClearNeighborDiscoveryRequest struct { Protocol types.L3Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=gnoi.types.L3Protocol" json:"protocol,omitempty"` Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // contains filtered or unexported fields }
func (*ClearNeighborDiscoveryRequest) Descriptor
deprecated
func (*ClearNeighborDiscoveryRequest) Descriptor() ([]byte, []int)
Deprecated: Use ClearNeighborDiscoveryRequest.ProtoReflect.Descriptor instead.
func (*ClearNeighborDiscoveryRequest) GetAddress ¶
func (x *ClearNeighborDiscoveryRequest) GetAddress() string
func (*ClearNeighborDiscoveryRequest) GetProtocol ¶
func (x *ClearNeighborDiscoveryRequest) GetProtocol() types.L3Protocol
func (*ClearNeighborDiscoveryRequest) ProtoMessage ¶
func (*ClearNeighborDiscoveryRequest) ProtoMessage()
func (*ClearNeighborDiscoveryRequest) ProtoReflect ¶
func (x *ClearNeighborDiscoveryRequest) ProtoReflect() protoreflect.Message
func (*ClearNeighborDiscoveryRequest) Reset ¶
func (x *ClearNeighborDiscoveryRequest) Reset()
func (*ClearNeighborDiscoveryRequest) String ¶
func (x *ClearNeighborDiscoveryRequest) String() string
type ClearNeighborDiscoveryResponse ¶
type ClearNeighborDiscoveryResponse struct {
// contains filtered or unexported fields
}
func (*ClearNeighborDiscoveryResponse) Descriptor
deprecated
func (*ClearNeighborDiscoveryResponse) Descriptor() ([]byte, []int)
Deprecated: Use ClearNeighborDiscoveryResponse.ProtoReflect.Descriptor instead.
func (*ClearNeighborDiscoveryResponse) ProtoMessage ¶
func (*ClearNeighborDiscoveryResponse) ProtoMessage()
func (*ClearNeighborDiscoveryResponse) ProtoReflect ¶
func (x *ClearNeighborDiscoveryResponse) ProtoReflect() protoreflect.Message
func (*ClearNeighborDiscoveryResponse) Reset ¶
func (x *ClearNeighborDiscoveryResponse) Reset()
func (*ClearNeighborDiscoveryResponse) String ¶
func (x *ClearNeighborDiscoveryResponse) String() string
type ClearSpanningTreeRequest ¶
type ClearSpanningTreeRequest struct { Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"` // contains filtered or unexported fields }
func (*ClearSpanningTreeRequest) Descriptor
deprecated
func (*ClearSpanningTreeRequest) Descriptor() ([]byte, []int)
Deprecated: Use ClearSpanningTreeRequest.ProtoReflect.Descriptor instead.
func (*ClearSpanningTreeRequest) GetInterface ¶
func (x *ClearSpanningTreeRequest) GetInterface() *types.Path
func (*ClearSpanningTreeRequest) ProtoMessage ¶
func (*ClearSpanningTreeRequest) ProtoMessage()
func (*ClearSpanningTreeRequest) ProtoReflect ¶
func (x *ClearSpanningTreeRequest) ProtoReflect() protoreflect.Message
func (*ClearSpanningTreeRequest) Reset ¶
func (x *ClearSpanningTreeRequest) Reset()
func (*ClearSpanningTreeRequest) String ¶
func (x *ClearSpanningTreeRequest) String() string
type ClearSpanningTreeResponse ¶
type ClearSpanningTreeResponse struct {
// contains filtered or unexported fields
}
func (*ClearSpanningTreeResponse) Descriptor
deprecated
func (*ClearSpanningTreeResponse) Descriptor() ([]byte, []int)
Deprecated: Use ClearSpanningTreeResponse.ProtoReflect.Descriptor instead.
func (*ClearSpanningTreeResponse) ProtoMessage ¶
func (*ClearSpanningTreeResponse) ProtoMessage()
func (*ClearSpanningTreeResponse) ProtoReflect ¶
func (x *ClearSpanningTreeResponse) ProtoReflect() protoreflect.Message
func (*ClearSpanningTreeResponse) Reset ¶
func (x *ClearSpanningTreeResponse) Reset()
func (*ClearSpanningTreeResponse) String ¶
func (x *ClearSpanningTreeResponse) String() string
type Layer2Client ¶
type Layer2Client interface { ClearNeighborDiscovery(ctx context.Context, in *ClearNeighborDiscoveryRequest, opts ...grpc.CallOption) (*ClearNeighborDiscoveryResponse, error) ClearSpanningTree(ctx context.Context, in *ClearSpanningTreeRequest, opts ...grpc.CallOption) (*ClearSpanningTreeResponse, error) PerformBERT(ctx context.Context, in *PerformBERTRequest, opts ...grpc.CallOption) (Layer2_PerformBERTClient, error) ClearLLDPInterface(ctx context.Context, in *ClearLLDPInterfaceRequest, opts ...grpc.CallOption) (*ClearLLDPInterfaceResponse, error) SendWakeOnLAN(ctx context.Context, in *SendWakeOnLANRequest, opts ...grpc.CallOption) (*SendWakeOnLANResponse, error) }
Layer2Client is the client API for Layer2 service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewLayer2Client ¶
func NewLayer2Client(cc grpc.ClientConnInterface) Layer2Client
type Layer2Server ¶
type Layer2Server interface { ClearNeighborDiscovery(context.Context, *ClearNeighborDiscoveryRequest) (*ClearNeighborDiscoveryResponse, error) ClearSpanningTree(context.Context, *ClearSpanningTreeRequest) (*ClearSpanningTreeResponse, error) PerformBERT(*PerformBERTRequest, Layer2_PerformBERTServer) error ClearLLDPInterface(context.Context, *ClearLLDPInterfaceRequest) (*ClearLLDPInterfaceResponse, error) SendWakeOnLAN(context.Context, *SendWakeOnLANRequest) (*SendWakeOnLANResponse, error) // contains filtered or unexported methods }
Layer2Server is the server API for Layer2 service. All implementations must embed UnimplementedLayer2Server for forward compatibility
type Layer2_PerformBERTClient ¶
type Layer2_PerformBERTClient interface { Recv() (*PerformBERTResponse, error) grpc.ClientStream }
type Layer2_PerformBERTServer ¶
type Layer2_PerformBERTServer interface { Send(*PerformBERTResponse) error grpc.ServerStream }
type PerformBERTRequest ¶
type PerformBERTRequest struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Interface *types.Path `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"` // contains filtered or unexported fields }
func (*PerformBERTRequest) Descriptor
deprecated
func (*PerformBERTRequest) Descriptor() ([]byte, []int)
Deprecated: Use PerformBERTRequest.ProtoReflect.Descriptor instead.
func (*PerformBERTRequest) GetId ¶
func (x *PerformBERTRequest) GetId() string
func (*PerformBERTRequest) GetInterface ¶
func (x *PerformBERTRequest) GetInterface() *types.Path
func (*PerformBERTRequest) ProtoMessage ¶
func (*PerformBERTRequest) ProtoMessage()
func (*PerformBERTRequest) ProtoReflect ¶
func (x *PerformBERTRequest) ProtoReflect() protoreflect.Message
func (*PerformBERTRequest) Reset ¶
func (x *PerformBERTRequest) Reset()
func (*PerformBERTRequest) String ¶
func (x *PerformBERTRequest) String() string
type PerformBERTResponse ¶
type PerformBERTResponse struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State PerformBERTResponse_BERTState `protobuf:"varint,2,opt,name=state,proto3,enum=gnoi.layer2.PerformBERTResponse_BERTState" json:"state,omitempty"` ElapsedPeriod int64 `protobuf:"varint,3,opt,name=elapsed_period,json=elapsedPeriod,proto3" json:"elapsed_period,omitempty"` Pattern []byte `protobuf:"bytes,4,opt,name=pattern,proto3" json:"pattern,omitempty"` Errors int64 `protobuf:"varint,5,opt,name=errors,proto3" json:"errors,omitempty"` ReceivedBits int64 `protobuf:"varint,6,opt,name=received_bits,json=receivedBits,proto3" json:"received_bits,omitempty"` // contains filtered or unexported fields }
func (*PerformBERTResponse) Descriptor
deprecated
func (*PerformBERTResponse) Descriptor() ([]byte, []int)
Deprecated: Use PerformBERTResponse.ProtoReflect.Descriptor instead.
func (*PerformBERTResponse) GetElapsedPeriod ¶
func (x *PerformBERTResponse) GetElapsedPeriod() int64
func (*PerformBERTResponse) GetErrors ¶
func (x *PerformBERTResponse) GetErrors() int64
func (*PerformBERTResponse) GetId ¶
func (x *PerformBERTResponse) GetId() string
func (*PerformBERTResponse) GetPattern ¶
func (x *PerformBERTResponse) GetPattern() []byte
func (*PerformBERTResponse) GetReceivedBits ¶
func (x *PerformBERTResponse) GetReceivedBits() int64
func (*PerformBERTResponse) GetState ¶
func (x *PerformBERTResponse) GetState() PerformBERTResponse_BERTState
func (*PerformBERTResponse) ProtoMessage ¶
func (*PerformBERTResponse) ProtoMessage()
func (*PerformBERTResponse) ProtoReflect ¶
func (x *PerformBERTResponse) ProtoReflect() protoreflect.Message
func (*PerformBERTResponse) Reset ¶
func (x *PerformBERTResponse) Reset()
func (*PerformBERTResponse) String ¶
func (x *PerformBERTResponse) String() string
type PerformBERTResponse_BERTState ¶
type PerformBERTResponse_BERTState int32
const ( PerformBERTResponse_UNKNOWN PerformBERTResponse_BERTState = 0 PerformBERTResponse_DISABLED PerformBERTResponse_BERTState = 1 PerformBERTResponse_RUNNING PerformBERTResponse_BERTState = 2 PerformBERTResponse_COMPLETE PerformBERTResponse_BERTState = 3 PerformBERTResponse_ERROR PerformBERTResponse_BERTState = 4 )
func (PerformBERTResponse_BERTState) Descriptor ¶
func (PerformBERTResponse_BERTState) Descriptor() protoreflect.EnumDescriptor
func (PerformBERTResponse_BERTState) Enum ¶
func (x PerformBERTResponse_BERTState) Enum() *PerformBERTResponse_BERTState
func (PerformBERTResponse_BERTState) EnumDescriptor
deprecated
func (PerformBERTResponse_BERTState) EnumDescriptor() ([]byte, []int)
Deprecated: Use PerformBERTResponse_BERTState.Descriptor instead.
func (PerformBERTResponse_BERTState) Number ¶
func (x PerformBERTResponse_BERTState) Number() protoreflect.EnumNumber
func (PerformBERTResponse_BERTState) String ¶
func (x PerformBERTResponse_BERTState) String() string
func (PerformBERTResponse_BERTState) Type ¶
func (PerformBERTResponse_BERTState) Type() protoreflect.EnumType
type SendWakeOnLANRequest ¶
type SendWakeOnLANRequest struct { Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"` Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` MacAddress []byte `protobuf:"bytes,3,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` // contains filtered or unexported fields }
func (*SendWakeOnLANRequest) Descriptor
deprecated
func (*SendWakeOnLANRequest) Descriptor() ([]byte, []int)
Deprecated: Use SendWakeOnLANRequest.ProtoReflect.Descriptor instead.
func (*SendWakeOnLANRequest) GetAddress ¶
func (x *SendWakeOnLANRequest) GetAddress() string
func (*SendWakeOnLANRequest) GetInterface ¶
func (x *SendWakeOnLANRequest) GetInterface() *types.Path
func (*SendWakeOnLANRequest) GetMacAddress ¶
func (x *SendWakeOnLANRequest) GetMacAddress() []byte
func (*SendWakeOnLANRequest) ProtoMessage ¶
func (*SendWakeOnLANRequest) ProtoMessage()
func (*SendWakeOnLANRequest) ProtoReflect ¶
func (x *SendWakeOnLANRequest) ProtoReflect() protoreflect.Message
func (*SendWakeOnLANRequest) Reset ¶
func (x *SendWakeOnLANRequest) Reset()
func (*SendWakeOnLANRequest) String ¶
func (x *SendWakeOnLANRequest) String() string
type SendWakeOnLANResponse ¶
type SendWakeOnLANResponse struct {
// contains filtered or unexported fields
}
func (*SendWakeOnLANResponse) Descriptor
deprecated
func (*SendWakeOnLANResponse) Descriptor() ([]byte, []int)
Deprecated: Use SendWakeOnLANResponse.ProtoReflect.Descriptor instead.
func (*SendWakeOnLANResponse) ProtoMessage ¶
func (*SendWakeOnLANResponse) ProtoMessage()
func (*SendWakeOnLANResponse) ProtoReflect ¶
func (x *SendWakeOnLANResponse) ProtoReflect() protoreflect.Message
func (*SendWakeOnLANResponse) Reset ¶
func (x *SendWakeOnLANResponse) Reset()
func (*SendWakeOnLANResponse) String ¶
func (x *SendWakeOnLANResponse) String() string
type UnimplementedLayer2Server ¶
type UnimplementedLayer2Server struct { }
UnimplementedLayer2Server must be embedded to have forward compatible implementations.
func (UnimplementedLayer2Server) ClearLLDPInterface ¶
func (UnimplementedLayer2Server) ClearLLDPInterface(context.Context, *ClearLLDPInterfaceRequest) (*ClearLLDPInterfaceResponse, error)
func (UnimplementedLayer2Server) ClearNeighborDiscovery ¶
func (UnimplementedLayer2Server) ClearNeighborDiscovery(context.Context, *ClearNeighborDiscoveryRequest) (*ClearNeighborDiscoveryResponse, error)
func (UnimplementedLayer2Server) ClearSpanningTree ¶
func (UnimplementedLayer2Server) ClearSpanningTree(context.Context, *ClearSpanningTreeRequest) (*ClearSpanningTreeResponse, error)
func (UnimplementedLayer2Server) PerformBERT ¶
func (UnimplementedLayer2Server) PerformBERT(*PerformBERTRequest, Layer2_PerformBERTServer) error
func (UnimplementedLayer2Server) SendWakeOnLAN ¶
func (UnimplementedLayer2Server) SendWakeOnLAN(context.Context, *SendWakeOnLANRequest) (*SendWakeOnLANResponse, error)
type UnsafeLayer2Server ¶
type UnsafeLayer2Server interface {
// contains filtered or unexported methods
}
UnsafeLayer2Server may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to Layer2Server will result in compilation errors.