func (*Data) Descriptor() ([]byte, []int) {
	return file_proto_tunnel_tunnel_proto_rawDescGZIP(), []int{0}
}
Deprecated: Use Data.ProtoReflect.Descriptor instead.
package grpctunnel
import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)
const (
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type TargetType int32
const (
	TargetType_UNKNOWN TargetType = 0
	TargetType_SSH TargetType = 22
	TargetType_OPENFLOW TargetType = 6653
	TargetType_GNMI_GNOI TargetType = 9339
	TargetType_P4_RUNTIME TargetType = 9559
)
var (
	TargetType_name = map[int32]string{
		0:    "UNKNOWN",
		22:   "SSH",
		6653: "OPENFLOW",
		9339: "GNMI_GNOI",
		9559: "P4_RUNTIME",
	}
	TargetType_value = map[string]int32{
		"UNKNOWN":    0,
		"SSH":        22,
		"OPENFLOW":   6653,
		"GNMI_GNOI":  9339,
		"P4_RUNTIME": 9559,
	}
)
func (x TargetType) Enum() *TargetType {
	p := new(TargetType)
	*p = x
	return p
}
func (x TargetType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TargetType) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_tunnel_tunnel_proto_enumTypes[0].Descriptor()
}
func (TargetType) Type() protoreflect.EnumType {
	return &file_proto_tunnel_tunnel_proto_enumTypes[0]
}
func (x TargetType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}
func (TargetType) EnumDescriptor() ([]byte, []int) {
	return file_proto_tunnel_tunnel_proto_rawDescGZIP(), []int{0}
}
type Target_TargetOp int32
const (
	Target_UNKNOWN Target_TargetOp = 0
	Target_ADD     Target_TargetOp = 1
	Target_REMOVE  Target_TargetOp = 2
)
var (
	Target_TargetOp_name = map[int32]string{
		0: "UNKNOWN",
		1: "ADD",
		2: "REMOVE",
	}
	Target_TargetOp_value = map[string]int32{
		"UNKNOWN": 0,
		"ADD":     1,
		"REMOVE":  2,
	}
)
func (x Target_TargetOp) Enum() *Target_TargetOp {
	p := new(Target_TargetOp)
	*p = x
	return p
}
func (x Target_TargetOp) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Target_TargetOp) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_tunnel_tunnel_proto_enumTypes[1].Descriptor()
}
func (Target_TargetOp) Type() protoreflect.EnumType {
	return &file_proto_tunnel_tunnel_proto_enumTypes[1]
}
func (x Target_TargetOp) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}
func (Target_TargetOp) EnumDescriptor() ([]byte, []int) {
	return file_proto_tunnel_tunnel_proto_rawDescGZIP(), []int{2, 0}
}
type Subscription_SubscriptionOp int32
const (
	Subscription_UNKNOWN    Subscription_SubscriptionOp = 0
	Subscription_SUBCRIBE   Subscription_SubscriptionOp = 1
	Subscription_UNSUBCRIBE Subscription_SubscriptionOp = 2
)
var (
	Subscription_SubscriptionOp_name = map[int32]string{
		0: "UNKNOWN",
		1: "SUBCRIBE",
		2: "UNSUBCRIBE",
	}
	Subscription_SubscriptionOp_value = map[string]int32{
		"UNKNOWN":    0,
		"SUBCRIBE":   1,
		"UNSUBCRIBE": 2,
	}
)
func (x Subscription_SubscriptionOp) Enum() *Subscription_SubscriptionOp {
	p := new(Subscription_SubscriptionOp)
	*p = x
	return p
}
func (x Subscription_SubscriptionOp) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Subscription_SubscriptionOp) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_tunnel_tunnel_proto_enumTypes[2].Descriptor()
}
func (Subscription_SubscriptionOp) Type() protoreflect.EnumType {
	return &file_proto_tunnel_tunnel_proto_enumTypes[2]
}
func (x Subscription_SubscriptionOp) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}
func (Subscription_SubscriptionOp) EnumDescriptor() ([]byte, []int) {
	return file_proto_tunnel_tunnel_proto_rawDescGZIP(), []int{4, 0}
}
type Data struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
	Tag   int32  `protobuf:"varint,1,opt,name=tag,proto3" json:"tag,omitempty"`      
	Data  []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`     
	Close bool   `protobuf:"varint,3,opt,name=close,proto3" json:"close,omitempty"`  
}
func (x *Data) Reset() {
	*x = Data{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_tunnel_tunnel_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}
func (x *Data) String() string {
	return protoimpl.X.MessageStringOf(x)
}
func (*Data) ProtoMessage() {}
func (x *Data) ProtoReflect() protoreflect.Message {
	mi := &file_proto_tunnel_tunnel_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}