Files
vpp-maglev/internal/grpcapi/maglev.pb.go
Pim van Pelt 6b2b04b2d1 Frontend flush-on-down policy; v0.9.3
Adds a per-frontend flush-on-down flag (default true) that causes
maglevd to set is_flush=true on lb_as_set_weight when a backend
transitions to StateDown, tearing down existing flows pinned to
the dead AS instead of just draining them. rise/fall debouncing
in the health checker already absorbs single-probe flaps, so a
fall-counted down is almost always a real outage — and during a
real outage the client-visible "connection refused" oscillation
window (where VPP keeps steering existing flows at a dead AS
until retry) is a reliability regression worth closing by default.
Operators who want the pre-flag drain-only behaviour can set
flush-on-down: false per frontend.

BackendEffectiveWeight's truth table grows one axis: StateDown
now returns (0, flushOnDown); StateDisabled still unconditionally
flushes; StateUnknown / StatePaused still never flush. The unit
test pins all four combinations.

The flag surfaces in the gRPC FrontendInfo message and in
`maglevc show frontend <name>` right next to src-ip-sticky.
2026-04-15 01:43:04 +02:00

2855 lines
87 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc v3.21.12
// source: proto/maglev.proto
package grpcapi
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type ListFrontendsRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListFrontendsRequest) Reset() {
*x = ListFrontendsRequest{}
mi := &file_proto_maglev_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListFrontendsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListFrontendsRequest) ProtoMessage() {}
func (x *ListFrontendsRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListFrontendsRequest.ProtoReflect.Descriptor instead.
func (*ListFrontendsRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{0}
}
type GetFrontendRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetFrontendRequest) Reset() {
*x = GetFrontendRequest{}
mi := &file_proto_maglev_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetFrontendRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetFrontendRequest) ProtoMessage() {}
func (x *GetFrontendRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetFrontendRequest.ProtoReflect.Descriptor instead.
func (*GetFrontendRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{1}
}
func (x *GetFrontendRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type ListBackendsRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListBackendsRequest) Reset() {
*x = ListBackendsRequest{}
mi := &file_proto_maglev_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListBackendsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListBackendsRequest) ProtoMessage() {}
func (x *ListBackendsRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListBackendsRequest.ProtoReflect.Descriptor instead.
func (*ListBackendsRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{2}
}
type GetBackendRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetBackendRequest) Reset() {
*x = GetBackendRequest{}
mi := &file_proto_maglev_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetBackendRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetBackendRequest) ProtoMessage() {}
func (x *GetBackendRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetBackendRequest.ProtoReflect.Descriptor instead.
func (*GetBackendRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{3}
}
func (x *GetBackendRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type BackendRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BackendRequest) Reset() {
*x = BackendRequest{}
mi := &file_proto_maglev_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *BackendRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackendRequest) ProtoMessage() {}
func (x *BackendRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackendRequest.ProtoReflect.Descriptor instead.
func (*BackendRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{4}
}
func (x *BackendRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type ListHealthChecksRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListHealthChecksRequest) Reset() {
*x = ListHealthChecksRequest{}
mi := &file_proto_maglev_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListHealthChecksRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListHealthChecksRequest) ProtoMessage() {}
func (x *ListHealthChecksRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListHealthChecksRequest.ProtoReflect.Descriptor instead.
func (*ListHealthChecksRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{5}
}
type GetHealthCheckRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetHealthCheckRequest) Reset() {
*x = GetHealthCheckRequest{}
mi := &file_proto_maglev_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetHealthCheckRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetHealthCheckRequest) ProtoMessage() {}
func (x *GetHealthCheckRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetHealthCheckRequest.ProtoReflect.Descriptor instead.
func (*GetHealthCheckRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{6}
}
func (x *GetHealthCheckRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type CheckConfigRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CheckConfigRequest) Reset() {
*x = CheckConfigRequest{}
mi := &file_proto_maglev_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CheckConfigRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CheckConfigRequest) ProtoMessage() {}
func (x *CheckConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CheckConfigRequest.ProtoReflect.Descriptor instead.
func (*CheckConfigRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{7}
}
type CheckConfigResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
ParseError string `protobuf:"bytes,2,opt,name=parse_error,json=parseError,proto3" json:"parse_error,omitempty"` // set when YAML cannot be read or parsed
SemanticError string `protobuf:"bytes,3,opt,name=semantic_error,json=semanticError,proto3" json:"semantic_error,omitempty"` // set when YAML is valid but semantically incorrect
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CheckConfigResponse) Reset() {
*x = CheckConfigResponse{}
mi := &file_proto_maglev_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CheckConfigResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CheckConfigResponse) ProtoMessage() {}
func (x *CheckConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CheckConfigResponse.ProtoReflect.Descriptor instead.
func (*CheckConfigResponse) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{8}
}
func (x *CheckConfigResponse) GetOk() bool {
if x != nil {
return x.Ok
}
return false
}
func (x *CheckConfigResponse) GetParseError() string {
if x != nil {
return x.ParseError
}
return ""
}
func (x *CheckConfigResponse) GetSemanticError() string {
if x != nil {
return x.SemanticError
}
return ""
}
type ReloadConfigRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ReloadConfigRequest) Reset() {
*x = ReloadConfigRequest{}
mi := &file_proto_maglev_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReloadConfigRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReloadConfigRequest) ProtoMessage() {}
func (x *ReloadConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReloadConfigRequest.ProtoReflect.Descriptor instead.
func (*ReloadConfigRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{9}
}
type ReloadConfigResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
ParseError string `protobuf:"bytes,2,opt,name=parse_error,json=parseError,proto3" json:"parse_error,omitempty"` // set when YAML cannot be read or parsed
SemanticError string `protobuf:"bytes,3,opt,name=semantic_error,json=semanticError,proto3" json:"semantic_error,omitempty"` // set when YAML is valid but semantically incorrect
ReloadError string `protobuf:"bytes,4,opt,name=reload_error,json=reloadError,proto3" json:"reload_error,omitempty"` // set when config is valid but the reload itself failed
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ReloadConfigResponse) Reset() {
*x = ReloadConfigResponse{}
mi := &file_proto_maglev_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReloadConfigResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReloadConfigResponse) ProtoMessage() {}
func (x *ReloadConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReloadConfigResponse.ProtoReflect.Descriptor instead.
func (*ReloadConfigResponse) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{10}
}
func (x *ReloadConfigResponse) GetOk() bool {
if x != nil {
return x.Ok
}
return false
}
func (x *ReloadConfigResponse) GetParseError() string {
if x != nil {
return x.ParseError
}
return ""
}
func (x *ReloadConfigResponse) GetSemanticError() string {
if x != nil {
return x.SemanticError
}
return ""
}
func (x *ReloadConfigResponse) GetReloadError() string {
if x != nil {
return x.ReloadError
}
return ""
}
type GetVPPInfoRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetVPPInfoRequest) Reset() {
*x = GetVPPInfoRequest{}
mi := &file_proto_maglev_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetVPPInfoRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetVPPInfoRequest) ProtoMessage() {}
func (x *GetVPPInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetVPPInfoRequest.ProtoReflect.Descriptor instead.
func (*GetVPPInfoRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{11}
}
type VPPInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
BuildDate string `protobuf:"bytes,2,opt,name=build_date,json=buildDate,proto3" json:"build_date,omitempty"`
BuildDirectory string `protobuf:"bytes,3,opt,name=build_directory,json=buildDirectory,proto3" json:"build_directory,omitempty"`
Pid uint32 `protobuf:"varint,4,opt,name=pid,proto3" json:"pid,omitempty"`
BoottimeNs int64 `protobuf:"varint,5,opt,name=boottime_ns,json=boottimeNs,proto3" json:"boottime_ns,omitempty"` // unix timestamp (ns) when VPP started (from /sys/boottime)
ConnecttimeNs int64 `protobuf:"varint,6,opt,name=connecttime_ns,json=connecttimeNs,proto3" json:"connecttime_ns,omitempty"` // unix timestamp (ns) when maglevd connected to VPP
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VPPInfo) Reset() {
*x = VPPInfo{}
mi := &file_proto_maglev_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VPPInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPPInfo) ProtoMessage() {}
func (x *VPPInfo) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VPPInfo.ProtoReflect.Descriptor instead.
func (*VPPInfo) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{12}
}
func (x *VPPInfo) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *VPPInfo) GetBuildDate() string {
if x != nil {
return x.BuildDate
}
return ""
}
func (x *VPPInfo) GetBuildDirectory() string {
if x != nil {
return x.BuildDirectory
}
return ""
}
func (x *VPPInfo) GetPid() uint32 {
if x != nil {
return x.Pid
}
return 0
}
func (x *VPPInfo) GetBoottimeNs() int64 {
if x != nil {
return x.BoottimeNs
}
return 0
}
func (x *VPPInfo) GetConnecttimeNs() int64 {
if x != nil {
return x.ConnecttimeNs
}
return 0
}
type GetVPPLBStateRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetVPPLBStateRequest) Reset() {
*x = GetVPPLBStateRequest{}
mi := &file_proto_maglev_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetVPPLBStateRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetVPPLBStateRequest) ProtoMessage() {}
func (x *GetVPPLBStateRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetVPPLBStateRequest.ProtoReflect.Descriptor instead.
func (*GetVPPLBStateRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{13}
}
// VPPLBConf mirrors VPP's lb_conf_get_reply: global LB plugin settings.
type VPPLBConf struct {
state protoimpl.MessageState `protogen:"open.v1"`
Ip4SrcAddress string `protobuf:"bytes,1,opt,name=ip4_src_address,json=ip4SrcAddress,proto3" json:"ip4_src_address,omitempty"`
Ip6SrcAddress string `protobuf:"bytes,2,opt,name=ip6_src_address,json=ip6SrcAddress,proto3" json:"ip6_src_address,omitempty"`
StickyBucketsPerCore uint32 `protobuf:"varint,3,opt,name=sticky_buckets_per_core,json=stickyBucketsPerCore,proto3" json:"sticky_buckets_per_core,omitempty"`
FlowTimeout uint32 `protobuf:"varint,4,opt,name=flow_timeout,json=flowTimeout,proto3" json:"flow_timeout,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VPPLBConf) Reset() {
*x = VPPLBConf{}
mi := &file_proto_maglev_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VPPLBConf) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPPLBConf) ProtoMessage() {}
func (x *VPPLBConf) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VPPLBConf.ProtoReflect.Descriptor instead.
func (*VPPLBConf) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{14}
}
func (x *VPPLBConf) GetIp4SrcAddress() string {
if x != nil {
return x.Ip4SrcAddress
}
return ""
}
func (x *VPPLBConf) GetIp6SrcAddress() string {
if x != nil {
return x.Ip6SrcAddress
}
return ""
}
func (x *VPPLBConf) GetStickyBucketsPerCore() uint32 {
if x != nil {
return x.StickyBucketsPerCore
}
return 0
}
func (x *VPPLBConf) GetFlowTimeout() uint32 {
if x != nil {
return x.FlowTimeout
}
return 0
}
// VPPLBAS is one application server attached to a VIP.
type VPPLBAS struct {
state protoimpl.MessageState `protogen:"open.v1"`
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Weight uint32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"` // 0-100
Flags uint32 `protobuf:"varint,3,opt,name=flags,proto3" json:"flags,omitempty"` // VPP AS flags (bit 0 = used, bit 1 = flushed)
NumBuckets uint32 `protobuf:"varint,4,opt,name=num_buckets,json=numBuckets,proto3" json:"num_buckets,omitempty"`
InUseSinceNs int64 `protobuf:"varint,5,opt,name=in_use_since_ns,json=inUseSinceNs,proto3" json:"in_use_since_ns,omitempty"` // unix timestamp (ns), 0 if never used
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VPPLBAS) Reset() {
*x = VPPLBAS{}
mi := &file_proto_maglev_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VPPLBAS) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPPLBAS) ProtoMessage() {}
func (x *VPPLBAS) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VPPLBAS.ProtoReflect.Descriptor instead.
func (*VPPLBAS) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{15}
}
func (x *VPPLBAS) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *VPPLBAS) GetWeight() uint32 {
if x != nil {
return x.Weight
}
return 0
}
func (x *VPPLBAS) GetFlags() uint32 {
if x != nil {
return x.Flags
}
return 0
}
func (x *VPPLBAS) GetNumBuckets() uint32 {
if x != nil {
return x.NumBuckets
}
return 0
}
func (x *VPPLBAS) GetInUseSinceNs() int64 {
if x != nil {
return x.InUseSinceNs
}
return 0
}
// VPPLBVIP mirrors VPP's lb_vip_details plus the attached application servers.
// Note: srv_type, dscp, and target_port are intentionally omitted — maglevd
// only supports GRE encap, so NAT/L3DSR-specific fields don't apply.
type VPPLBVIP struct {
state protoimpl.MessageState `protogen:"open.v1"`
Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` // CIDR, e.g. 192.0.2.1/32
Protocol uint32 `protobuf:"varint,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // 6=TCP, 17=UDP, 255=any
Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"` // 0 = all-port VIP
Encap string `protobuf:"bytes,4,opt,name=encap,proto3" json:"encap,omitempty"` // gre4|gre6|l3dsr|nat4|nat6
FlowTableLength uint32 `protobuf:"varint,5,opt,name=flow_table_length,json=flowTableLength,proto3" json:"flow_table_length,omitempty"`
ApplicationServers []*VPPLBAS `protobuf:"bytes,6,rep,name=application_servers,json=applicationServers,proto3" json:"application_servers,omitempty"`
SrcIpSticky bool `protobuf:"varint,7,opt,name=src_ip_sticky,json=srcIpSticky,proto3" json:"src_ip_sticky,omitempty"` // source-IP based sticky session (scraped via cli_inband)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VPPLBVIP) Reset() {
*x = VPPLBVIP{}
mi := &file_proto_maglev_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VPPLBVIP) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPPLBVIP) ProtoMessage() {}
func (x *VPPLBVIP) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VPPLBVIP.ProtoReflect.Descriptor instead.
func (*VPPLBVIP) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{16}
}
func (x *VPPLBVIP) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *VPPLBVIP) GetProtocol() uint32 {
if x != nil {
return x.Protocol
}
return 0
}
func (x *VPPLBVIP) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *VPPLBVIP) GetEncap() string {
if x != nil {
return x.Encap
}
return ""
}
func (x *VPPLBVIP) GetFlowTableLength() uint32 {
if x != nil {
return x.FlowTableLength
}
return 0
}
func (x *VPPLBVIP) GetApplicationServers() []*VPPLBAS {
if x != nil {
return x.ApplicationServers
}
return nil
}
func (x *VPPLBVIP) GetSrcIpSticky() bool {
if x != nil {
return x.SrcIpSticky
}
return false
}
type VPPLBState struct {
state protoimpl.MessageState `protogen:"open.v1"`
Conf *VPPLBConf `protobuf:"bytes,1,opt,name=conf,proto3" json:"conf,omitempty"`
Vips []*VPPLBVIP `protobuf:"bytes,2,rep,name=vips,proto3" json:"vips,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VPPLBState) Reset() {
*x = VPPLBState{}
mi := &file_proto_maglev_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VPPLBState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPPLBState) ProtoMessage() {}
func (x *VPPLBState) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VPPLBState.ProtoReflect.Descriptor instead.
func (*VPPLBState) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{17}
}
func (x *VPPLBState) GetConf() *VPPLBConf {
if x != nil {
return x.Conf
}
return nil
}
func (x *VPPLBState) GetVips() []*VPPLBVIP {
if x != nil {
return x.Vips
}
return nil
}
// SyncVPPLBStateRequest triggers a reconciliation between the maglev config
// and the VPP load-balancer dataplane. When frontend_name is set, only that
// frontend's VIP is synced (SyncLBStateVIP) and no VIPs are removed. When
// unset, a full reconciliation runs (SyncLBStateAll), which will also remove
// stale VIPs from VPP.
type SyncVPPLBStateRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
FrontendName *string `protobuf:"bytes,1,opt,name=frontend_name,json=frontendName,proto3,oneof" json:"frontend_name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SyncVPPLBStateRequest) Reset() {
*x = SyncVPPLBStateRequest{}
mi := &file_proto_maglev_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SyncVPPLBStateRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncVPPLBStateRequest) ProtoMessage() {}
func (x *SyncVPPLBStateRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncVPPLBStateRequest.ProtoReflect.Descriptor instead.
func (*SyncVPPLBStateRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{18}
}
func (x *SyncVPPLBStateRequest) GetFrontendName() string {
if x != nil && x.FrontendName != nil {
return *x.FrontendName
}
return ""
}
type SyncVPPLBStateResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SyncVPPLBStateResponse) Reset() {
*x = SyncVPPLBStateResponse{}
mi := &file_proto_maglev_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SyncVPPLBStateResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncVPPLBStateResponse) ProtoMessage() {}
func (x *SyncVPPLBStateResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncVPPLBStateResponse.ProtoReflect.Descriptor instead.
func (*SyncVPPLBStateResponse) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{19}
}
// GetVPPLBCountersRequest asks maglevd for the most recent per-VIP and
// per-backend counter snapshot. The data is served from an in-process
// cache that is refreshed every ~5 seconds server-side; the call itself
// is cheap and does not hit VPP.
type GetVPPLBCountersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetVPPLBCountersRequest) Reset() {
*x = GetVPPLBCountersRequest{}
mi := &file_proto_maglev_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetVPPLBCountersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetVPPLBCountersRequest) ProtoMessage() {}
func (x *GetVPPLBCountersRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetVPPLBCountersRequest.ProtoReflect.Descriptor instead.
func (*GetVPPLBCountersRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{20}
}
// VPPLBVIPCounters is the point-in-time counter row for a single VIP.
// The four lb_* fields are the LB plugin's SimpleCounters (packets only);
// packets / bytes come from the VPP FIB's combined counter at the VIP's
// host prefix (/net/route/to).
type VPPLBVIPCounters struct {
state protoimpl.MessageState `protogen:"open.v1"`
Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` // CIDR, e.g. 192.0.2.1/32
Protocol string `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // tcp | udp | any
Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
NextPacket uint64 `protobuf:"varint,4,opt,name=next_packet,json=nextPacket,proto3" json:"next_packet,omitempty"` // "/packet from existing sessions"
FirstPacket uint64 `protobuf:"varint,5,opt,name=first_packet,json=firstPacket,proto3" json:"first_packet,omitempty"` // "/first session packet"
UntrackedPacket uint64 `protobuf:"varint,6,opt,name=untracked_packet,json=untrackedPacket,proto3" json:"untracked_packet,omitempty"` // "/untracked packet"
NoServer uint64 `protobuf:"varint,7,opt,name=no_server,json=noServer,proto3" json:"no_server,omitempty"` // "/no server configured"
Packets uint64 `protobuf:"varint,8,opt,name=packets,proto3" json:"packets,omitempty"` // /net/route/to (FIB, summed across workers)
Bytes uint64 `protobuf:"varint,9,opt,name=bytes,proto3" json:"bytes,omitempty"` // /net/route/to (FIB, summed across workers)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VPPLBVIPCounters) Reset() {
*x = VPPLBVIPCounters{}
mi := &file_proto_maglev_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VPPLBVIPCounters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPPLBVIPCounters) ProtoMessage() {}
func (x *VPPLBVIPCounters) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VPPLBVIPCounters.ProtoReflect.Descriptor instead.
func (*VPPLBVIPCounters) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{21}
}
func (x *VPPLBVIPCounters) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *VPPLBVIPCounters) GetProtocol() string {
if x != nil {
return x.Protocol
}
return ""
}
func (x *VPPLBVIPCounters) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *VPPLBVIPCounters) GetNextPacket() uint64 {
if x != nil {
return x.NextPacket
}
return 0
}
func (x *VPPLBVIPCounters) GetFirstPacket() uint64 {
if x != nil {
return x.FirstPacket
}
return 0
}
func (x *VPPLBVIPCounters) GetUntrackedPacket() uint64 {
if x != nil {
return x.UntrackedPacket
}
return 0
}
func (x *VPPLBVIPCounters) GetNoServer() uint64 {
if x != nil {
return x.NoServer
}
return 0
}
func (x *VPPLBVIPCounters) GetPackets() uint64 {
if x != nil {
return x.Packets
}
return 0
}
func (x *VPPLBVIPCounters) GetBytes() uint64 {
if x != nil {
return x.Bytes
}
return 0
}
// VPPLBCounters wraps the per-VIP counter list returned by
// GetVPPLBCounters. There is no per-backend counter block: VPP's LB
// plugin forwarding node bypasses ip{4,6}_lookup_inline and writes
// adj_index[VLIB_TX] directly, so /net/route/to at a backend's FIB
// entry never ticks for LB-forwarded traffic — the four per-VIP
// counters are the only per-VIP-and-coarser signal VPP exposes today.
type VPPLBCounters struct {
state protoimpl.MessageState `protogen:"open.v1"`
Vips []*VPPLBVIPCounters `protobuf:"bytes,1,rep,name=vips,proto3" json:"vips,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VPPLBCounters) Reset() {
*x = VPPLBCounters{}
mi := &file_proto_maglev_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VPPLBCounters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPPLBCounters) ProtoMessage() {}
func (x *VPPLBCounters) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VPPLBCounters.ProtoReflect.Descriptor instead.
func (*VPPLBCounters) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{22}
}
func (x *VPPLBCounters) GetVips() []*VPPLBVIPCounters {
if x != nil {
return x.Vips
}
return nil
}
type SetWeightRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Frontend string `protobuf:"bytes,1,opt,name=frontend,proto3" json:"frontend,omitempty"`
Pool string `protobuf:"bytes,2,opt,name=pool,proto3" json:"pool,omitempty"`
Backend string `protobuf:"bytes,3,opt,name=backend,proto3" json:"backend,omitempty"`
Weight int32 `protobuf:"varint,4,opt,name=weight,proto3" json:"weight,omitempty"` // 0-100
// flush, when true, also clears VPP's flow table for this backend
// so existing sessions are torn down. When false (default), only
// Maglev's new-bucket mapping is updated and live flows keep
// draining to this backend.
Flush bool `protobuf:"varint,5,opt,name=flush,proto3" json:"flush,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SetWeightRequest) Reset() {
*x = SetWeightRequest{}
mi := &file_proto_maglev_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SetWeightRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetWeightRequest) ProtoMessage() {}
func (x *SetWeightRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[23]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SetWeightRequest.ProtoReflect.Descriptor instead.
func (*SetWeightRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{23}
}
func (x *SetWeightRequest) GetFrontend() string {
if x != nil {
return x.Frontend
}
return ""
}
func (x *SetWeightRequest) GetPool() string {
if x != nil {
return x.Pool
}
return ""
}
func (x *SetWeightRequest) GetBackend() string {
if x != nil {
return x.Backend
}
return ""
}
func (x *SetWeightRequest) GetWeight() int32 {
if x != nil {
return x.Weight
}
return 0
}
func (x *SetWeightRequest) GetFlush() bool {
if x != nil {
return x.Flush
}
return false
}
// WatchRequest controls which event types are streamed. All fields default to
// true (i.e. an empty request subscribes to everything at info level).
type WatchRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Log *bool `protobuf:"varint,1,opt,name=log,proto3,oneof" json:"log,omitempty"` // include log events (default: true)
LogLevel string `protobuf:"bytes,2,opt,name=log_level,json=logLevel,proto3" json:"log_level,omitempty"` // minimum log level: debug|info|warn|error (default: info)
Backend *bool `protobuf:"varint,3,opt,name=backend,proto3,oneof" json:"backend,omitempty"` // include backend transition events (default: true)
Frontend *bool `protobuf:"varint,4,opt,name=frontend,proto3,oneof" json:"frontend,omitempty"` // include frontend events (default: true)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *WatchRequest) Reset() {
*x = WatchRequest{}
mi := &file_proto_maglev_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *WatchRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WatchRequest) ProtoMessage() {}
func (x *WatchRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[24]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WatchRequest.ProtoReflect.Descriptor instead.
func (*WatchRequest) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{24}
}
func (x *WatchRequest) GetLog() bool {
if x != nil && x.Log != nil {
return *x.Log
}
return false
}
func (x *WatchRequest) GetLogLevel() string {
if x != nil {
return x.LogLevel
}
return ""
}
func (x *WatchRequest) GetBackend() bool {
if x != nil && x.Backend != nil {
return *x.Backend
}
return false
}
func (x *WatchRequest) GetFrontend() bool {
if x != nil && x.Frontend != nil {
return *x.Frontend
}
return false
}
type ListFrontendsResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
FrontendNames []string `protobuf:"bytes,1,rep,name=frontend_names,json=frontendNames,proto3" json:"frontend_names,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListFrontendsResponse) Reset() {
*x = ListFrontendsResponse{}
mi := &file_proto_maglev_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListFrontendsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListFrontendsResponse) ProtoMessage() {}
func (x *ListFrontendsResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[25]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListFrontendsResponse.ProtoReflect.Descriptor instead.
func (*ListFrontendsResponse) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{25}
}
func (x *ListFrontendsResponse) GetFrontendNames() []string {
if x != nil {
return x.FrontendNames
}
return nil
}
type PoolBackendInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Weight int32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"` // configured weight from YAML (0-100)
EffectiveWeight int32 `protobuf:"varint,3,opt,name=effective_weight,json=effectiveWeight,proto3" json:"effective_weight,omitempty"` // state-aware weight after pool-failover logic
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PoolBackendInfo) Reset() {
*x = PoolBackendInfo{}
mi := &file_proto_maglev_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PoolBackendInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PoolBackendInfo) ProtoMessage() {}
func (x *PoolBackendInfo) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[26]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PoolBackendInfo.ProtoReflect.Descriptor instead.
func (*PoolBackendInfo) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{26}
}
func (x *PoolBackendInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PoolBackendInfo) GetWeight() int32 {
if x != nil {
return x.Weight
}
return 0
}
func (x *PoolBackendInfo) GetEffectiveWeight() int32 {
if x != nil {
return x.EffectiveWeight
}
return 0
}
type PoolInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Backends []*PoolBackendInfo `protobuf:"bytes,2,rep,name=backends,proto3" json:"backends,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PoolInfo) Reset() {
*x = PoolInfo{}
mi := &file_proto_maglev_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PoolInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PoolInfo) ProtoMessage() {}
func (x *PoolInfo) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[27]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PoolInfo.ProtoReflect.Descriptor instead.
func (*PoolInfo) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{27}
}
func (x *PoolInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PoolInfo) GetBackends() []*PoolBackendInfo {
if x != nil {
return x.Backends
}
return nil
}
type FrontendInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
Protocol string `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"`
Port uint32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
Pools []*PoolInfo `protobuf:"bytes,5,rep,name=pools,proto3" json:"pools,omitempty"`
Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
SrcIpSticky bool `protobuf:"varint,7,opt,name=src_ip_sticky,json=srcIpSticky,proto3" json:"src_ip_sticky,omitempty"` // VPP LB uses src-IP-based stickiness for this VIP
FlushOnDown bool `protobuf:"varint,8,opt,name=flush_on_down,json=flushOnDown,proto3" json:"flush_on_down,omitempty"` // tear down existing flows when a backend goes down
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FrontendInfo) Reset() {
*x = FrontendInfo{}
mi := &file_proto_maglev_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FrontendInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FrontendInfo) ProtoMessage() {}
func (x *FrontendInfo) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[28]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FrontendInfo.ProtoReflect.Descriptor instead.
func (*FrontendInfo) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{28}
}
func (x *FrontendInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *FrontendInfo) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *FrontendInfo) GetProtocol() string {
if x != nil {
return x.Protocol
}
return ""
}
func (x *FrontendInfo) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *FrontendInfo) GetPools() []*PoolInfo {
if x != nil {
return x.Pools
}
return nil
}
func (x *FrontendInfo) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *FrontendInfo) GetSrcIpSticky() bool {
if x != nil {
return x.SrcIpSticky
}
return false
}
func (x *FrontendInfo) GetFlushOnDown() bool {
if x != nil {
return x.FlushOnDown
}
return false
}
type ListBackendsResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
BackendNames []string `protobuf:"bytes,1,rep,name=backend_names,json=backendNames,proto3" json:"backend_names,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListBackendsResponse) Reset() {
*x = ListBackendsResponse{}
mi := &file_proto_maglev_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListBackendsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListBackendsResponse) ProtoMessage() {}
func (x *ListBackendsResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[29]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListBackendsResponse.ProtoReflect.Descriptor instead.
func (*ListBackendsResponse) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{29}
}
func (x *ListBackendsResponse) GetBackendNames() []string {
if x != nil {
return x.BackendNames
}
return nil
}
type ListHealthChecksResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListHealthChecksResponse) Reset() {
*x = ListHealthChecksResponse{}
mi := &file_proto_maglev_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListHealthChecksResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListHealthChecksResponse) ProtoMessage() {}
func (x *ListHealthChecksResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[30]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListHealthChecksResponse.ProtoReflect.Descriptor instead.
func (*ListHealthChecksResponse) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{30}
}
func (x *ListHealthChecksResponse) GetNames() []string {
if x != nil {
return x.Names
}
return nil
}
type HTTPCheckParams struct {
state protoimpl.MessageState `protogen:"open.v1"`
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
ResponseCodeMin int32 `protobuf:"varint,3,opt,name=response_code_min,json=responseCodeMin,proto3" json:"response_code_min,omitempty"`
ResponseCodeMax int32 `protobuf:"varint,4,opt,name=response_code_max,json=responseCodeMax,proto3" json:"response_code_max,omitempty"`
ResponseRegexp string `protobuf:"bytes,5,opt,name=response_regexp,json=responseRegexp,proto3" json:"response_regexp,omitempty"`
ServerName string `protobuf:"bytes,6,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
InsecureSkipVerify bool `protobuf:"varint,7,opt,name=insecure_skip_verify,json=insecureSkipVerify,proto3" json:"insecure_skip_verify,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *HTTPCheckParams) Reset() {
*x = HTTPCheckParams{}
mi := &file_proto_maglev_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *HTTPCheckParams) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HTTPCheckParams) ProtoMessage() {}
func (x *HTTPCheckParams) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[31]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HTTPCheckParams.ProtoReflect.Descriptor instead.
func (*HTTPCheckParams) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{31}
}
func (x *HTTPCheckParams) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *HTTPCheckParams) GetHost() string {
if x != nil {
return x.Host
}
return ""
}
func (x *HTTPCheckParams) GetResponseCodeMin() int32 {
if x != nil {
return x.ResponseCodeMin
}
return 0
}
func (x *HTTPCheckParams) GetResponseCodeMax() int32 {
if x != nil {
return x.ResponseCodeMax
}
return 0
}
func (x *HTTPCheckParams) GetResponseRegexp() string {
if x != nil {
return x.ResponseRegexp
}
return ""
}
func (x *HTTPCheckParams) GetServerName() string {
if x != nil {
return x.ServerName
}
return ""
}
func (x *HTTPCheckParams) GetInsecureSkipVerify() bool {
if x != nil {
return x.InsecureSkipVerify
}
return false
}
type TCPCheckParams struct {
state protoimpl.MessageState `protogen:"open.v1"`
Ssl bool `protobuf:"varint,1,opt,name=ssl,proto3" json:"ssl,omitempty"`
ServerName string `protobuf:"bytes,2,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
InsecureSkipVerify bool `protobuf:"varint,3,opt,name=insecure_skip_verify,json=insecureSkipVerify,proto3" json:"insecure_skip_verify,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TCPCheckParams) Reset() {
*x = TCPCheckParams{}
mi := &file_proto_maglev_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TCPCheckParams) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TCPCheckParams) ProtoMessage() {}
func (x *TCPCheckParams) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[32]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TCPCheckParams.ProtoReflect.Descriptor instead.
func (*TCPCheckParams) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{32}
}
func (x *TCPCheckParams) GetSsl() bool {
if x != nil {
return x.Ssl
}
return false
}
func (x *TCPCheckParams) GetServerName() string {
if x != nil {
return x.ServerName
}
return ""
}
func (x *TCPCheckParams) GetInsecureSkipVerify() bool {
if x != nil {
return x.InsecureSkipVerify
}
return false
}
type HealthCheckInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
ProbeIpv4Src string `protobuf:"bytes,4,opt,name=probe_ipv4_src,json=probeIpv4Src,proto3" json:"probe_ipv4_src,omitempty"`
ProbeIpv6Src string `protobuf:"bytes,5,opt,name=probe_ipv6_src,json=probeIpv6Src,proto3" json:"probe_ipv6_src,omitempty"`
IntervalNs int64 `protobuf:"varint,6,opt,name=interval_ns,json=intervalNs,proto3" json:"interval_ns,omitempty"`
FastIntervalNs int64 `protobuf:"varint,7,opt,name=fast_interval_ns,json=fastIntervalNs,proto3" json:"fast_interval_ns,omitempty"`
DownIntervalNs int64 `protobuf:"varint,8,opt,name=down_interval_ns,json=downIntervalNs,proto3" json:"down_interval_ns,omitempty"`
TimeoutNs int64 `protobuf:"varint,9,opt,name=timeout_ns,json=timeoutNs,proto3" json:"timeout_ns,omitempty"`
Rise int32 `protobuf:"varint,10,opt,name=rise,proto3" json:"rise,omitempty"`
Fall int32 `protobuf:"varint,11,opt,name=fall,proto3" json:"fall,omitempty"`
Http *HTTPCheckParams `protobuf:"bytes,12,opt,name=http,proto3" json:"http,omitempty"`
Tcp *TCPCheckParams `protobuf:"bytes,13,opt,name=tcp,proto3" json:"tcp,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *HealthCheckInfo) Reset() {
*x = HealthCheckInfo{}
mi := &file_proto_maglev_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *HealthCheckInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HealthCheckInfo) ProtoMessage() {}
func (x *HealthCheckInfo) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[33]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HealthCheckInfo.ProtoReflect.Descriptor instead.
func (*HealthCheckInfo) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{33}
}
func (x *HealthCheckInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *HealthCheckInfo) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *HealthCheckInfo) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *HealthCheckInfo) GetProbeIpv4Src() string {
if x != nil {
return x.ProbeIpv4Src
}
return ""
}
func (x *HealthCheckInfo) GetProbeIpv6Src() string {
if x != nil {
return x.ProbeIpv6Src
}
return ""
}
func (x *HealthCheckInfo) GetIntervalNs() int64 {
if x != nil {
return x.IntervalNs
}
return 0
}
func (x *HealthCheckInfo) GetFastIntervalNs() int64 {
if x != nil {
return x.FastIntervalNs
}
return 0
}
func (x *HealthCheckInfo) GetDownIntervalNs() int64 {
if x != nil {
return x.DownIntervalNs
}
return 0
}
func (x *HealthCheckInfo) GetTimeoutNs() int64 {
if x != nil {
return x.TimeoutNs
}
return 0
}
func (x *HealthCheckInfo) GetRise() int32 {
if x != nil {
return x.Rise
}
return 0
}
func (x *HealthCheckInfo) GetFall() int32 {
if x != nil {
return x.Fall
}
return 0
}
func (x *HealthCheckInfo) GetHttp() *HTTPCheckParams {
if x != nil {
return x.Http
}
return nil
}
func (x *HealthCheckInfo) GetTcp() *TCPCheckParams {
if x != nil {
return x.Tcp
}
return nil
}
type BackendInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
Transitions []*TransitionRecord `protobuf:"bytes,4,rep,name=transitions,proto3" json:"transitions,omitempty"`
Enabled bool `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"`
Healthcheck string `protobuf:"bytes,6,opt,name=healthcheck,proto3" json:"healthcheck,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BackendInfo) Reset() {
*x = BackendInfo{}
mi := &file_proto_maglev_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *BackendInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackendInfo) ProtoMessage() {}
func (x *BackendInfo) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[34]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackendInfo.ProtoReflect.Descriptor instead.
func (*BackendInfo) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{34}
}
func (x *BackendInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BackendInfo) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *BackendInfo) GetState() string {
if x != nil {
return x.State
}
return ""
}
func (x *BackendInfo) GetTransitions() []*TransitionRecord {
if x != nil {
return x.Transitions
}
return nil
}
func (x *BackendInfo) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *BackendInfo) GetHealthcheck() string {
if x != nil {
return x.Healthcheck
}
return ""
}
type TransitionRecord struct {
state protoimpl.MessageState `protogen:"open.v1"`
From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"`
To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"`
AtUnixNs int64 `protobuf:"varint,3,opt,name=at_unix_ns,json=atUnixNs,proto3" json:"at_unix_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TransitionRecord) Reset() {
*x = TransitionRecord{}
mi := &file_proto_maglev_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TransitionRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TransitionRecord) ProtoMessage() {}
func (x *TransitionRecord) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[35]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TransitionRecord.ProtoReflect.Descriptor instead.
func (*TransitionRecord) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{35}
}
func (x *TransitionRecord) GetFrom() string {
if x != nil {
return x.From
}
return ""
}
func (x *TransitionRecord) GetTo() string {
if x != nil {
return x.To
}
return ""
}
func (x *TransitionRecord) GetAtUnixNs() int64 {
if x != nil {
return x.AtUnixNs
}
return 0
}
// LogAttr is a single key/value attribute from a structured log record.
type LogAttr struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LogAttr) Reset() {
*x = LogAttr{}
mi := &file_proto_maglev_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LogAttr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LogAttr) ProtoMessage() {}
func (x *LogAttr) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[36]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LogAttr.ProtoReflect.Descriptor instead.
func (*LogAttr) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{36}
}
func (x *LogAttr) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *LogAttr) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
// LogEvent carries a single structured log record.
type LogEvent struct {
state protoimpl.MessageState `protogen:"open.v1"`
AtUnixNs int64 `protobuf:"varint,1,opt,name=at_unix_ns,json=atUnixNs,proto3" json:"at_unix_ns,omitempty"`
Level string `protobuf:"bytes,2,opt,name=level,proto3" json:"level,omitempty"`
Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
Attrs []*LogAttr `protobuf:"bytes,4,rep,name=attrs,proto3" json:"attrs,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LogEvent) Reset() {
*x = LogEvent{}
mi := &file_proto_maglev_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LogEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LogEvent) ProtoMessage() {}
func (x *LogEvent) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[37]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LogEvent.ProtoReflect.Descriptor instead.
func (*LogEvent) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{37}
}
func (x *LogEvent) GetAtUnixNs() int64 {
if x != nil {
return x.AtUnixNs
}
return 0
}
func (x *LogEvent) GetLevel() string {
if x != nil {
return x.Level
}
return ""
}
func (x *LogEvent) GetMsg() string {
if x != nil {
return x.Msg
}
return ""
}
func (x *LogEvent) GetAttrs() []*LogAttr {
if x != nil {
return x.Attrs
}
return nil
}
// BackendEvent is emitted on every backend state transition.
type BackendEvent struct {
state protoimpl.MessageState `protogen:"open.v1"`
BackendName string `protobuf:"bytes,1,opt,name=backend_name,json=backendName,proto3" json:"backend_name,omitempty"`
Transition *TransitionRecord `protobuf:"bytes,2,opt,name=transition,proto3" json:"transition,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BackendEvent) Reset() {
*x = BackendEvent{}
mi := &file_proto_maglev_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *BackendEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackendEvent) ProtoMessage() {}
func (x *BackendEvent) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[38]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackendEvent.ProtoReflect.Descriptor instead.
func (*BackendEvent) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{38}
}
func (x *BackendEvent) GetBackendName() string {
if x != nil {
return x.BackendName
}
return ""
}
func (x *BackendEvent) GetTransition() *TransitionRecord {
if x != nil {
return x.Transition
}
return nil
}
// FrontendEvent is emitted when a frontend's aggregate state changes.
// Frontends have three states: unknown, up, down. See docs/healthchecks.md.
type FrontendEvent struct {
state protoimpl.MessageState `protogen:"open.v1"`
FrontendName string `protobuf:"bytes,1,opt,name=frontend_name,json=frontendName,proto3" json:"frontend_name,omitempty"`
Transition *TransitionRecord `protobuf:"bytes,2,opt,name=transition,proto3" json:"transition,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FrontendEvent) Reset() {
*x = FrontendEvent{}
mi := &file_proto_maglev_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FrontendEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FrontendEvent) ProtoMessage() {}
func (x *FrontendEvent) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[39]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FrontendEvent.ProtoReflect.Descriptor instead.
func (*FrontendEvent) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{39}
}
func (x *FrontendEvent) GetFrontendName() string {
if x != nil {
return x.FrontendName
}
return ""
}
func (x *FrontendEvent) GetTransition() *TransitionRecord {
if x != nil {
return x.Transition
}
return nil
}
// Event is the envelope returned by WatchEvents.
type Event struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Types that are valid to be assigned to Event:
//
// *Event_Log
// *Event_Backend
// *Event_Frontend
Event isEvent_Event `protobuf_oneof:"event"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Event) Reset() {
*x = Event{}
mi := &file_proto_maglev_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Event) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Event) ProtoMessage() {}
func (x *Event) ProtoReflect() protoreflect.Message {
mi := &file_proto_maglev_proto_msgTypes[40]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Event.ProtoReflect.Descriptor instead.
func (*Event) Descriptor() ([]byte, []int) {
return file_proto_maglev_proto_rawDescGZIP(), []int{40}
}
func (x *Event) GetEvent() isEvent_Event {
if x != nil {
return x.Event
}
return nil
}
func (x *Event) GetLog() *LogEvent {
if x != nil {
if x, ok := x.Event.(*Event_Log); ok {
return x.Log
}
}
return nil
}
func (x *Event) GetBackend() *BackendEvent {
if x != nil {
if x, ok := x.Event.(*Event_Backend); ok {
return x.Backend
}
}
return nil
}
func (x *Event) GetFrontend() *FrontendEvent {
if x != nil {
if x, ok := x.Event.(*Event_Frontend); ok {
return x.Frontend
}
}
return nil
}
type isEvent_Event interface {
isEvent_Event()
}
type Event_Log struct {
Log *LogEvent `protobuf:"bytes,1,opt,name=log,proto3,oneof"`
}
type Event_Backend struct {
Backend *BackendEvent `protobuf:"bytes,2,opt,name=backend,proto3,oneof"`
}
type Event_Frontend struct {
Frontend *FrontendEvent `protobuf:"bytes,3,opt,name=frontend,proto3,oneof"`
}
func (*Event_Log) isEvent_Event() {}
func (*Event_Backend) isEvent_Event() {}
func (*Event_Frontend) isEvent_Event() {}
var File_proto_maglev_proto protoreflect.FileDescriptor
const file_proto_maglev_proto_rawDesc = "" +
"\n" +
"\x12proto/maglev.proto\x12\x06maglev\"\x16\n" +
"\x14ListFrontendsRequest\"(\n" +
"\x12GetFrontendRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"\x15\n" +
"\x13ListBackendsRequest\"'\n" +
"\x11GetBackendRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"$\n" +
"\x0eBackendRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"\x19\n" +
"\x17ListHealthChecksRequest\"+\n" +
"\x15GetHealthCheckRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"\x14\n" +
"\x12CheckConfigRequest\"m\n" +
"\x13CheckConfigResponse\x12\x0e\n" +
"\x02ok\x18\x01 \x01(\bR\x02ok\x12\x1f\n" +
"\vparse_error\x18\x02 \x01(\tR\n" +
"parseError\x12%\n" +
"\x0esemantic_error\x18\x03 \x01(\tR\rsemanticError\"\x15\n" +
"\x13ReloadConfigRequest\"\x91\x01\n" +
"\x14ReloadConfigResponse\x12\x0e\n" +
"\x02ok\x18\x01 \x01(\bR\x02ok\x12\x1f\n" +
"\vparse_error\x18\x02 \x01(\tR\n" +
"parseError\x12%\n" +
"\x0esemantic_error\x18\x03 \x01(\tR\rsemanticError\x12!\n" +
"\freload_error\x18\x04 \x01(\tR\vreloadError\"\x13\n" +
"\x11GetVPPInfoRequest\"\xc5\x01\n" +
"\aVPPInfo\x12\x18\n" +
"\aversion\x18\x01 \x01(\tR\aversion\x12\x1d\n" +
"\n" +
"build_date\x18\x02 \x01(\tR\tbuildDate\x12'\n" +
"\x0fbuild_directory\x18\x03 \x01(\tR\x0ebuildDirectory\x12\x10\n" +
"\x03pid\x18\x04 \x01(\rR\x03pid\x12\x1f\n" +
"\vboottime_ns\x18\x05 \x01(\x03R\n" +
"boottimeNs\x12%\n" +
"\x0econnecttime_ns\x18\x06 \x01(\x03R\rconnecttimeNs\"\x16\n" +
"\x14GetVPPLBStateRequest\"\xb5\x01\n" +
"\tVPPLBConf\x12&\n" +
"\x0fip4_src_address\x18\x01 \x01(\tR\rip4SrcAddress\x12&\n" +
"\x0fip6_src_address\x18\x02 \x01(\tR\rip6SrcAddress\x125\n" +
"\x17sticky_buckets_per_core\x18\x03 \x01(\rR\x14stickyBucketsPerCore\x12!\n" +
"\fflow_timeout\x18\x04 \x01(\rR\vflowTimeout\"\x99\x01\n" +
"\aVPPLBAS\x12\x18\n" +
"\aaddress\x18\x01 \x01(\tR\aaddress\x12\x16\n" +
"\x06weight\x18\x02 \x01(\rR\x06weight\x12\x14\n" +
"\x05flags\x18\x03 \x01(\rR\x05flags\x12\x1f\n" +
"\vnum_buckets\x18\x04 \x01(\rR\n" +
"numBuckets\x12%\n" +
"\x0fin_use_since_ns\x18\x05 \x01(\x03R\finUseSinceNs\"\xfa\x01\n" +
"\bVPPLBVIP\x12\x16\n" +
"\x06prefix\x18\x01 \x01(\tR\x06prefix\x12\x1a\n" +
"\bprotocol\x18\x02 \x01(\rR\bprotocol\x12\x12\n" +
"\x04port\x18\x03 \x01(\rR\x04port\x12\x14\n" +
"\x05encap\x18\x04 \x01(\tR\x05encap\x12*\n" +
"\x11flow_table_length\x18\x05 \x01(\rR\x0fflowTableLength\x12@\n" +
"\x13application_servers\x18\x06 \x03(\v2\x0f.maglev.VPPLBASR\x12applicationServers\x12\"\n" +
"\rsrc_ip_sticky\x18\a \x01(\bR\vsrcIpSticky\"Y\n" +
"\n" +
"VPPLBState\x12%\n" +
"\x04conf\x18\x01 \x01(\v2\x11.maglev.VPPLBConfR\x04conf\x12$\n" +
"\x04vips\x18\x02 \x03(\v2\x10.maglev.VPPLBVIPR\x04vips\"S\n" +
"\x15SyncVPPLBStateRequest\x12(\n" +
"\rfrontend_name\x18\x01 \x01(\tH\x00R\ffrontendName\x88\x01\x01B\x10\n" +
"\x0e_frontend_name\"\x18\n" +
"\x16SyncVPPLBStateResponse\"\x19\n" +
"\x17GetVPPLBCountersRequest\"\x96\x02\n" +
"\x10VPPLBVIPCounters\x12\x16\n" +
"\x06prefix\x18\x01 \x01(\tR\x06prefix\x12\x1a\n" +
"\bprotocol\x18\x02 \x01(\tR\bprotocol\x12\x12\n" +
"\x04port\x18\x03 \x01(\rR\x04port\x12\x1f\n" +
"\vnext_packet\x18\x04 \x01(\x04R\n" +
"nextPacket\x12!\n" +
"\ffirst_packet\x18\x05 \x01(\x04R\vfirstPacket\x12)\n" +
"\x10untracked_packet\x18\x06 \x01(\x04R\x0funtrackedPacket\x12\x1b\n" +
"\tno_server\x18\a \x01(\x04R\bnoServer\x12\x18\n" +
"\apackets\x18\b \x01(\x04R\apackets\x12\x14\n" +
"\x05bytes\x18\t \x01(\x04R\x05bytes\"C\n" +
"\rVPPLBCounters\x12,\n" +
"\x04vips\x18\x01 \x03(\v2\x18.maglev.VPPLBVIPCountersR\x04vipsJ\x04\b\x02\x10\x03\"\x8a\x01\n" +
"\x10SetWeightRequest\x12\x1a\n" +
"\bfrontend\x18\x01 \x01(\tR\bfrontend\x12\x12\n" +
"\x04pool\x18\x02 \x01(\tR\x04pool\x12\x18\n" +
"\abackend\x18\x03 \x01(\tR\abackend\x12\x16\n" +
"\x06weight\x18\x04 \x01(\x05R\x06weight\x12\x14\n" +
"\x05flush\x18\x05 \x01(\bR\x05flush\"\xa3\x01\n" +
"\fWatchRequest\x12\x15\n" +
"\x03log\x18\x01 \x01(\bH\x00R\x03log\x88\x01\x01\x12\x1b\n" +
"\tlog_level\x18\x02 \x01(\tR\blogLevel\x12\x1d\n" +
"\abackend\x18\x03 \x01(\bH\x01R\abackend\x88\x01\x01\x12\x1f\n" +
"\bfrontend\x18\x04 \x01(\bH\x02R\bfrontend\x88\x01\x01B\x06\n" +
"\x04_logB\n" +
"\n" +
"\b_backendB\v\n" +
"\t_frontend\">\n" +
"\x15ListFrontendsResponse\x12%\n" +
"\x0efrontend_names\x18\x01 \x03(\tR\rfrontendNames\"h\n" +
"\x0fPoolBackendInfo\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" +
"\x06weight\x18\x02 \x01(\x05R\x06weight\x12)\n" +
"\x10effective_weight\x18\x03 \x01(\x05R\x0feffectiveWeight\"S\n" +
"\bPoolInfo\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x123\n" +
"\bbackends\x18\x02 \x03(\v2\x17.maglev.PoolBackendInfoR\bbackends\"\xfe\x01\n" +
"\fFrontendInfo\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
"\aaddress\x18\x02 \x01(\tR\aaddress\x12\x1a\n" +
"\bprotocol\x18\x03 \x01(\tR\bprotocol\x12\x12\n" +
"\x04port\x18\x04 \x01(\rR\x04port\x12&\n" +
"\x05pools\x18\x05 \x03(\v2\x10.maglev.PoolInfoR\x05pools\x12 \n" +
"\vdescription\x18\x06 \x01(\tR\vdescription\x12\"\n" +
"\rsrc_ip_sticky\x18\a \x01(\bR\vsrcIpSticky\x12\"\n" +
"\rflush_on_down\x18\b \x01(\bR\vflushOnDown\";\n" +
"\x14ListBackendsResponse\x12#\n" +
"\rbackend_names\x18\x01 \x03(\tR\fbackendNames\"0\n" +
"\x18ListHealthChecksResponse\x12\x14\n" +
"\x05names\x18\x01 \x03(\tR\x05names\"\x8d\x02\n" +
"\x0fHTTPCheckParams\x12\x12\n" +
"\x04path\x18\x01 \x01(\tR\x04path\x12\x12\n" +
"\x04host\x18\x02 \x01(\tR\x04host\x12*\n" +
"\x11response_code_min\x18\x03 \x01(\x05R\x0fresponseCodeMin\x12*\n" +
"\x11response_code_max\x18\x04 \x01(\x05R\x0fresponseCodeMax\x12'\n" +
"\x0fresponse_regexp\x18\x05 \x01(\tR\x0eresponseRegexp\x12\x1f\n" +
"\vserver_name\x18\x06 \x01(\tR\n" +
"serverName\x120\n" +
"\x14insecure_skip_verify\x18\a \x01(\bR\x12insecureSkipVerify\"u\n" +
"\x0eTCPCheckParams\x12\x10\n" +
"\x03ssl\x18\x01 \x01(\bR\x03ssl\x12\x1f\n" +
"\vserver_name\x18\x02 \x01(\tR\n" +
"serverName\x120\n" +
"\x14insecure_skip_verify\x18\x03 \x01(\bR\x12insecureSkipVerify\"\xac\x03\n" +
"\x0fHealthCheckInfo\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" +
"\x04type\x18\x02 \x01(\tR\x04type\x12\x12\n" +
"\x04port\x18\x03 \x01(\rR\x04port\x12$\n" +
"\x0eprobe_ipv4_src\x18\x04 \x01(\tR\fprobeIpv4Src\x12$\n" +
"\x0eprobe_ipv6_src\x18\x05 \x01(\tR\fprobeIpv6Src\x12\x1f\n" +
"\vinterval_ns\x18\x06 \x01(\x03R\n" +
"intervalNs\x12(\n" +
"\x10fast_interval_ns\x18\a \x01(\x03R\x0efastIntervalNs\x12(\n" +
"\x10down_interval_ns\x18\b \x01(\x03R\x0edownIntervalNs\x12\x1d\n" +
"\n" +
"timeout_ns\x18\t \x01(\x03R\ttimeoutNs\x12\x12\n" +
"\x04rise\x18\n" +
" \x01(\x05R\x04rise\x12\x12\n" +
"\x04fall\x18\v \x01(\x05R\x04fall\x12+\n" +
"\x04http\x18\f \x01(\v2\x17.maglev.HTTPCheckParamsR\x04http\x12(\n" +
"\x03tcp\x18\r \x01(\v2\x16.maglev.TCPCheckParamsR\x03tcp\"\xc9\x01\n" +
"\vBackendInfo\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
"\aaddress\x18\x02 \x01(\tR\aaddress\x12\x14\n" +
"\x05state\x18\x03 \x01(\tR\x05state\x12:\n" +
"\vtransitions\x18\x04 \x03(\v2\x18.maglev.TransitionRecordR\vtransitions\x12\x18\n" +
"\aenabled\x18\x05 \x01(\bR\aenabled\x12 \n" +
"\vhealthcheck\x18\x06 \x01(\tR\vhealthcheck\"T\n" +
"\x10TransitionRecord\x12\x12\n" +
"\x04from\x18\x01 \x01(\tR\x04from\x12\x0e\n" +
"\x02to\x18\x02 \x01(\tR\x02to\x12\x1c\n" +
"\n" +
"at_unix_ns\x18\x03 \x01(\x03R\batUnixNs\"1\n" +
"\aLogAttr\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value\"w\n" +
"\bLogEvent\x12\x1c\n" +
"\n" +
"at_unix_ns\x18\x01 \x01(\x03R\batUnixNs\x12\x14\n" +
"\x05level\x18\x02 \x01(\tR\x05level\x12\x10\n" +
"\x03msg\x18\x03 \x01(\tR\x03msg\x12%\n" +
"\x05attrs\x18\x04 \x03(\v2\x0f.maglev.LogAttrR\x05attrs\"k\n" +
"\fBackendEvent\x12!\n" +
"\fbackend_name\x18\x01 \x01(\tR\vbackendName\x128\n" +
"\n" +
"transition\x18\x02 \x01(\v2\x18.maglev.TransitionRecordR\n" +
"transition\"n\n" +
"\rFrontendEvent\x12#\n" +
"\rfrontend_name\x18\x01 \x01(\tR\ffrontendName\x128\n" +
"\n" +
"transition\x18\x02 \x01(\v2\x18.maglev.TransitionRecordR\n" +
"transition\"\x9d\x01\n" +
"\x05Event\x12$\n" +
"\x03log\x18\x01 \x01(\v2\x10.maglev.LogEventH\x00R\x03log\x120\n" +
"\abackend\x18\x02 \x01(\v2\x14.maglev.BackendEventH\x00R\abackend\x123\n" +
"\bfrontend\x18\x03 \x01(\v2\x15.maglev.FrontendEventH\x00R\bfrontendB\a\n" +
"\x05event2\xec\t\n" +
"\x06Maglev\x12L\n" +
"\rListFrontends\x12\x1c.maglev.ListFrontendsRequest\x1a\x1d.maglev.ListFrontendsResponse\x12?\n" +
"\vGetFrontend\x12\x1a.maglev.GetFrontendRequest\x1a\x14.maglev.FrontendInfo\x12I\n" +
"\fListBackends\x12\x1b.maglev.ListBackendsRequest\x1a\x1c.maglev.ListBackendsResponse\x12<\n" +
"\n" +
"GetBackend\x12\x19.maglev.GetBackendRequest\x1a\x13.maglev.BackendInfo\x12;\n" +
"\fPauseBackend\x12\x16.maglev.BackendRequest\x1a\x13.maglev.BackendInfo\x12<\n" +
"\rResumeBackend\x12\x16.maglev.BackendRequest\x1a\x13.maglev.BackendInfo\x12<\n" +
"\rEnableBackend\x12\x16.maglev.BackendRequest\x1a\x13.maglev.BackendInfo\x12=\n" +
"\x0eDisableBackend\x12\x16.maglev.BackendRequest\x1a\x13.maglev.BackendInfo\x12U\n" +
"\x10ListHealthChecks\x12\x1f.maglev.ListHealthChecksRequest\x1a .maglev.ListHealthChecksResponse\x12H\n" +
"\x0eGetHealthCheck\x12\x1d.maglev.GetHealthCheckRequest\x1a\x17.maglev.HealthCheckInfo\x12N\n" +
"\x1cSetFrontendPoolBackendWeight\x12\x18.maglev.SetWeightRequest\x1a\x14.maglev.FrontendInfo\x124\n" +
"\vWatchEvents\x12\x14.maglev.WatchRequest\x1a\r.maglev.Event0\x01\x12F\n" +
"\vCheckConfig\x12\x1a.maglev.CheckConfigRequest\x1a\x1b.maglev.CheckConfigResponse\x12I\n" +
"\fReloadConfig\x12\x1b.maglev.ReloadConfigRequest\x1a\x1c.maglev.ReloadConfigResponse\x128\n" +
"\n" +
"GetVPPInfo\x12\x19.maglev.GetVPPInfoRequest\x1a\x0f.maglev.VPPInfo\x12A\n" +
"\rGetVPPLBState\x12\x1c.maglev.GetVPPLBStateRequest\x1a\x12.maglev.VPPLBState\x12O\n" +
"\x0eSyncVPPLBState\x12\x1d.maglev.SyncVPPLBStateRequest\x1a\x1e.maglev.SyncVPPLBStateResponse\x12J\n" +
"\x10GetVPPLBCounters\x12\x1f.maglev.GetVPPLBCountersRequest\x1a\x15.maglev.VPPLBCountersB.Z,git.ipng.ch/ipng/vpp-maglev/internal/grpcapib\x06proto3"
var (
file_proto_maglev_proto_rawDescOnce sync.Once
file_proto_maglev_proto_rawDescData []byte
)
func file_proto_maglev_proto_rawDescGZIP() []byte {
file_proto_maglev_proto_rawDescOnce.Do(func() {
file_proto_maglev_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_maglev_proto_rawDesc), len(file_proto_maglev_proto_rawDesc)))
})
return file_proto_maglev_proto_rawDescData
}
var file_proto_maglev_proto_msgTypes = make([]protoimpl.MessageInfo, 41)
var file_proto_maglev_proto_goTypes = []any{
(*ListFrontendsRequest)(nil), // 0: maglev.ListFrontendsRequest
(*GetFrontendRequest)(nil), // 1: maglev.GetFrontendRequest
(*ListBackendsRequest)(nil), // 2: maglev.ListBackendsRequest
(*GetBackendRequest)(nil), // 3: maglev.GetBackendRequest
(*BackendRequest)(nil), // 4: maglev.BackendRequest
(*ListHealthChecksRequest)(nil), // 5: maglev.ListHealthChecksRequest
(*GetHealthCheckRequest)(nil), // 6: maglev.GetHealthCheckRequest
(*CheckConfigRequest)(nil), // 7: maglev.CheckConfigRequest
(*CheckConfigResponse)(nil), // 8: maglev.CheckConfigResponse
(*ReloadConfigRequest)(nil), // 9: maglev.ReloadConfigRequest
(*ReloadConfigResponse)(nil), // 10: maglev.ReloadConfigResponse
(*GetVPPInfoRequest)(nil), // 11: maglev.GetVPPInfoRequest
(*VPPInfo)(nil), // 12: maglev.VPPInfo
(*GetVPPLBStateRequest)(nil), // 13: maglev.GetVPPLBStateRequest
(*VPPLBConf)(nil), // 14: maglev.VPPLBConf
(*VPPLBAS)(nil), // 15: maglev.VPPLBAS
(*VPPLBVIP)(nil), // 16: maglev.VPPLBVIP
(*VPPLBState)(nil), // 17: maglev.VPPLBState
(*SyncVPPLBStateRequest)(nil), // 18: maglev.SyncVPPLBStateRequest
(*SyncVPPLBStateResponse)(nil), // 19: maglev.SyncVPPLBStateResponse
(*GetVPPLBCountersRequest)(nil), // 20: maglev.GetVPPLBCountersRequest
(*VPPLBVIPCounters)(nil), // 21: maglev.VPPLBVIPCounters
(*VPPLBCounters)(nil), // 22: maglev.VPPLBCounters
(*SetWeightRequest)(nil), // 23: maglev.SetWeightRequest
(*WatchRequest)(nil), // 24: maglev.WatchRequest
(*ListFrontendsResponse)(nil), // 25: maglev.ListFrontendsResponse
(*PoolBackendInfo)(nil), // 26: maglev.PoolBackendInfo
(*PoolInfo)(nil), // 27: maglev.PoolInfo
(*FrontendInfo)(nil), // 28: maglev.FrontendInfo
(*ListBackendsResponse)(nil), // 29: maglev.ListBackendsResponse
(*ListHealthChecksResponse)(nil), // 30: maglev.ListHealthChecksResponse
(*HTTPCheckParams)(nil), // 31: maglev.HTTPCheckParams
(*TCPCheckParams)(nil), // 32: maglev.TCPCheckParams
(*HealthCheckInfo)(nil), // 33: maglev.HealthCheckInfo
(*BackendInfo)(nil), // 34: maglev.BackendInfo
(*TransitionRecord)(nil), // 35: maglev.TransitionRecord
(*LogAttr)(nil), // 36: maglev.LogAttr
(*LogEvent)(nil), // 37: maglev.LogEvent
(*BackendEvent)(nil), // 38: maglev.BackendEvent
(*FrontendEvent)(nil), // 39: maglev.FrontendEvent
(*Event)(nil), // 40: maglev.Event
}
var file_proto_maglev_proto_depIdxs = []int32{
15, // 0: maglev.VPPLBVIP.application_servers:type_name -> maglev.VPPLBAS
14, // 1: maglev.VPPLBState.conf:type_name -> maglev.VPPLBConf
16, // 2: maglev.VPPLBState.vips:type_name -> maglev.VPPLBVIP
21, // 3: maglev.VPPLBCounters.vips:type_name -> maglev.VPPLBVIPCounters
26, // 4: maglev.PoolInfo.backends:type_name -> maglev.PoolBackendInfo
27, // 5: maglev.FrontendInfo.pools:type_name -> maglev.PoolInfo
31, // 6: maglev.HealthCheckInfo.http:type_name -> maglev.HTTPCheckParams
32, // 7: maglev.HealthCheckInfo.tcp:type_name -> maglev.TCPCheckParams
35, // 8: maglev.BackendInfo.transitions:type_name -> maglev.TransitionRecord
36, // 9: maglev.LogEvent.attrs:type_name -> maglev.LogAttr
35, // 10: maglev.BackendEvent.transition:type_name -> maglev.TransitionRecord
35, // 11: maglev.FrontendEvent.transition:type_name -> maglev.TransitionRecord
37, // 12: maglev.Event.log:type_name -> maglev.LogEvent
38, // 13: maglev.Event.backend:type_name -> maglev.BackendEvent
39, // 14: maglev.Event.frontend:type_name -> maglev.FrontendEvent
0, // 15: maglev.Maglev.ListFrontends:input_type -> maglev.ListFrontendsRequest
1, // 16: maglev.Maglev.GetFrontend:input_type -> maglev.GetFrontendRequest
2, // 17: maglev.Maglev.ListBackends:input_type -> maglev.ListBackendsRequest
3, // 18: maglev.Maglev.GetBackend:input_type -> maglev.GetBackendRequest
4, // 19: maglev.Maglev.PauseBackend:input_type -> maglev.BackendRequest
4, // 20: maglev.Maglev.ResumeBackend:input_type -> maglev.BackendRequest
4, // 21: maglev.Maglev.EnableBackend:input_type -> maglev.BackendRequest
4, // 22: maglev.Maglev.DisableBackend:input_type -> maglev.BackendRequest
5, // 23: maglev.Maglev.ListHealthChecks:input_type -> maglev.ListHealthChecksRequest
6, // 24: maglev.Maglev.GetHealthCheck:input_type -> maglev.GetHealthCheckRequest
23, // 25: maglev.Maglev.SetFrontendPoolBackendWeight:input_type -> maglev.SetWeightRequest
24, // 26: maglev.Maglev.WatchEvents:input_type -> maglev.WatchRequest
7, // 27: maglev.Maglev.CheckConfig:input_type -> maglev.CheckConfigRequest
9, // 28: maglev.Maglev.ReloadConfig:input_type -> maglev.ReloadConfigRequest
11, // 29: maglev.Maglev.GetVPPInfo:input_type -> maglev.GetVPPInfoRequest
13, // 30: maglev.Maglev.GetVPPLBState:input_type -> maglev.GetVPPLBStateRequest
18, // 31: maglev.Maglev.SyncVPPLBState:input_type -> maglev.SyncVPPLBStateRequest
20, // 32: maglev.Maglev.GetVPPLBCounters:input_type -> maglev.GetVPPLBCountersRequest
25, // 33: maglev.Maglev.ListFrontends:output_type -> maglev.ListFrontendsResponse
28, // 34: maglev.Maglev.GetFrontend:output_type -> maglev.FrontendInfo
29, // 35: maglev.Maglev.ListBackends:output_type -> maglev.ListBackendsResponse
34, // 36: maglev.Maglev.GetBackend:output_type -> maglev.BackendInfo
34, // 37: maglev.Maglev.PauseBackend:output_type -> maglev.BackendInfo
34, // 38: maglev.Maglev.ResumeBackend:output_type -> maglev.BackendInfo
34, // 39: maglev.Maglev.EnableBackend:output_type -> maglev.BackendInfo
34, // 40: maglev.Maglev.DisableBackend:output_type -> maglev.BackendInfo
30, // 41: maglev.Maglev.ListHealthChecks:output_type -> maglev.ListHealthChecksResponse
33, // 42: maglev.Maglev.GetHealthCheck:output_type -> maglev.HealthCheckInfo
28, // 43: maglev.Maglev.SetFrontendPoolBackendWeight:output_type -> maglev.FrontendInfo
40, // 44: maglev.Maglev.WatchEvents:output_type -> maglev.Event
8, // 45: maglev.Maglev.CheckConfig:output_type -> maglev.CheckConfigResponse
10, // 46: maglev.Maglev.ReloadConfig:output_type -> maglev.ReloadConfigResponse
12, // 47: maglev.Maglev.GetVPPInfo:output_type -> maglev.VPPInfo
17, // 48: maglev.Maglev.GetVPPLBState:output_type -> maglev.VPPLBState
19, // 49: maglev.Maglev.SyncVPPLBState:output_type -> maglev.SyncVPPLBStateResponse
22, // 50: maglev.Maglev.GetVPPLBCounters:output_type -> maglev.VPPLBCounters
33, // [33:51] is the sub-list for method output_type
15, // [15:33] is the sub-list for method input_type
15, // [15:15] is the sub-list for extension type_name
15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name
}
func init() { file_proto_maglev_proto_init() }
func file_proto_maglev_proto_init() {
if File_proto_maglev_proto != nil {
return
}
file_proto_maglev_proto_msgTypes[18].OneofWrappers = []any{}
file_proto_maglev_proto_msgTypes[24].OneofWrappers = []any{}
file_proto_maglev_proto_msgTypes[40].OneofWrappers = []any{
(*Event_Log)(nil),
(*Event_Backend)(nil),
(*Event_Frontend)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_maglev_proto_rawDesc), len(file_proto_maglev_proto_rawDesc)),
NumEnums: 0,
NumMessages: 41,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_proto_maglev_proto_goTypes,
DependencyIndexes: file_proto_maglev_proto_depIdxs,
MessageInfos: file_proto_maglev_proto_msgTypes,
}.Build()
File_proto_maglev_proto = out.File
file_proto_maglev_proto_goTypes = nil
file_proto_maglev_proto_depIdxs = nil
}