1
0
mirror of https://github.com/osrg/gobgp.git synced 2024-05-11 05:55:10 +00:00
Files
osrg-gobgp/api/attribute.pb.go

10274 lines
336 KiB
Go

// Copyright (C) 2018 Nippon Telegraph and Telephone Corporation.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.19.1
// source: attribute.proto
package apipb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
anypb "google.golang.org/protobuf/types/known/anypb"
reflect "reflect"
sync "sync"
)
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 LsOspfRouteType int32
const (
LsOspfRouteType_LS_OSPF_ROUTE_TYPE_UNKNOWN LsOspfRouteType = 0
LsOspfRouteType_LS_OSPF_ROUTE_TYPE_INTRA_AREA LsOspfRouteType = 1
LsOspfRouteType_LS_OSPF_ROUTE_TYPE_INTER_AREA LsOspfRouteType = 2
LsOspfRouteType_LS_OSPF_ROUTE_TYPE_EXTERNAL1 LsOspfRouteType = 3
LsOspfRouteType_LS_OSPF_ROUTE_TYPE_EXTERNAL2 LsOspfRouteType = 4
LsOspfRouteType_LS_OSPF_ROUTE_TYPE_NSSA1 LsOspfRouteType = 5
LsOspfRouteType_LS_OSPF_ROUTE_TYPE_NSSA2 LsOspfRouteType = 6
)
// Enum value maps for LsOspfRouteType.
var (
LsOspfRouteType_name = map[int32]string{
0: "LS_OSPF_ROUTE_TYPE_UNKNOWN",
1: "LS_OSPF_ROUTE_TYPE_INTRA_AREA",
2: "LS_OSPF_ROUTE_TYPE_INTER_AREA",
3: "LS_OSPF_ROUTE_TYPE_EXTERNAL1",
4: "LS_OSPF_ROUTE_TYPE_EXTERNAL2",
5: "LS_OSPF_ROUTE_TYPE_NSSA1",
6: "LS_OSPF_ROUTE_TYPE_NSSA2",
}
LsOspfRouteType_value = map[string]int32{
"LS_OSPF_ROUTE_TYPE_UNKNOWN": 0,
"LS_OSPF_ROUTE_TYPE_INTRA_AREA": 1,
"LS_OSPF_ROUTE_TYPE_INTER_AREA": 2,
"LS_OSPF_ROUTE_TYPE_EXTERNAL1": 3,
"LS_OSPF_ROUTE_TYPE_EXTERNAL2": 4,
"LS_OSPF_ROUTE_TYPE_NSSA1": 5,
"LS_OSPF_ROUTE_TYPE_NSSA2": 6,
}
)
func (x LsOspfRouteType) Enum() *LsOspfRouteType {
p := new(LsOspfRouteType)
*p = x
return p
}
func (x LsOspfRouteType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (LsOspfRouteType) Descriptor() protoreflect.EnumDescriptor {
return file_attribute_proto_enumTypes[0].Descriptor()
}
func (LsOspfRouteType) Type() protoreflect.EnumType {
return &file_attribute_proto_enumTypes[0]
}
func (x LsOspfRouteType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use LsOspfRouteType.Descriptor instead.
func (LsOspfRouteType) EnumDescriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{0}
}
// Based om RFC 7752, Table 1.
type LsNLRIType int32
const (
LsNLRIType_LS_NLRI_UNKNOWN LsNLRIType = 0
LsNLRIType_LS_NLRI_NODE LsNLRIType = 1
LsNLRIType_LS_NLRI_LINK LsNLRIType = 2
LsNLRIType_LS_NLRI_PREFIX_V4 LsNLRIType = 3
LsNLRIType_LS_NLRI_PREFIX_V6 LsNLRIType = 4
)
// Enum value maps for LsNLRIType.
var (
LsNLRIType_name = map[int32]string{
0: "LS_NLRI_UNKNOWN",
1: "LS_NLRI_NODE",
2: "LS_NLRI_LINK",
3: "LS_NLRI_PREFIX_V4",
4: "LS_NLRI_PREFIX_V6",
}
LsNLRIType_value = map[string]int32{
"LS_NLRI_UNKNOWN": 0,
"LS_NLRI_NODE": 1,
"LS_NLRI_LINK": 2,
"LS_NLRI_PREFIX_V4": 3,
"LS_NLRI_PREFIX_V6": 4,
}
)
func (x LsNLRIType) Enum() *LsNLRIType {
p := new(LsNLRIType)
*p = x
return p
}
func (x LsNLRIType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (LsNLRIType) Descriptor() protoreflect.EnumDescriptor {
return file_attribute_proto_enumTypes[1].Descriptor()
}
func (LsNLRIType) Type() protoreflect.EnumType {
return &file_attribute_proto_enumTypes[1]
}
func (x LsNLRIType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use LsNLRIType.Descriptor instead.
func (LsNLRIType) EnumDescriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{1}
}
type LsProtocolID int32
const (
LsProtocolID_LS_PROTOCOL_UNKNOWN LsProtocolID = 0
LsProtocolID_LS_PROTOCOL_ISIS_L1 LsProtocolID = 1
LsProtocolID_LS_PROTOCOL_ISIS_L2 LsProtocolID = 2
LsProtocolID_LS_PROTOCOL_OSPF_V2 LsProtocolID = 3
LsProtocolID_LS_PROTOCOL_DIRECT LsProtocolID = 4
LsProtocolID_LS_PROTOCOL_STATIC LsProtocolID = 5
LsProtocolID_LS_PROTOCOL_OSPF_V3 LsProtocolID = 6
)
// Enum value maps for LsProtocolID.
var (
LsProtocolID_name = map[int32]string{
0: "LS_PROTOCOL_UNKNOWN",
1: "LS_PROTOCOL_ISIS_L1",
2: "LS_PROTOCOL_ISIS_L2",
3: "LS_PROTOCOL_OSPF_V2",
4: "LS_PROTOCOL_DIRECT",
5: "LS_PROTOCOL_STATIC",
6: "LS_PROTOCOL_OSPF_V3",
}
LsProtocolID_value = map[string]int32{
"LS_PROTOCOL_UNKNOWN": 0,
"LS_PROTOCOL_ISIS_L1": 1,
"LS_PROTOCOL_ISIS_L2": 2,
"LS_PROTOCOL_OSPF_V2": 3,
"LS_PROTOCOL_DIRECT": 4,
"LS_PROTOCOL_STATIC": 5,
"LS_PROTOCOL_OSPF_V3": 6,
}
)
func (x LsProtocolID) Enum() *LsProtocolID {
p := new(LsProtocolID)
*p = x
return p
}
func (x LsProtocolID) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (LsProtocolID) Descriptor() protoreflect.EnumDescriptor {
return file_attribute_proto_enumTypes[2].Descriptor()
}
func (LsProtocolID) Type() protoreflect.EnumType {
return &file_attribute_proto_enumTypes[2]
}
func (x LsProtocolID) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use LsProtocolID.Descriptor instead.
func (LsProtocolID) EnumDescriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{2}
}
type SRv6Behavior int32
const (
SRv6Behavior_RESERVED SRv6Behavior = 0
SRv6Behavior_END SRv6Behavior = 1
SRv6Behavior_END_WITH_PSP SRv6Behavior = 2
SRv6Behavior_END_WITH_USP SRv6Behavior = 3
SRv6Behavior_END_WITH_PSP_USP SRv6Behavior = 4
SRv6Behavior_ENDX SRv6Behavior = 5
SRv6Behavior_ENDX_WITH_PSP SRv6Behavior = 6
SRv6Behavior_ENDX_WITH_USP SRv6Behavior = 7
SRv6Behavior_ENDX_WITH_PSP_USP SRv6Behavior = 8
SRv6Behavior_ENDT SRv6Behavior = 9
SRv6Behavior_ENDT_WITH_PSP SRv6Behavior = 10
SRv6Behavior_ENDT_WITH_USP SRv6Behavior = 11
SRv6Behavior_ENDT_WITH_PSP_USP SRv6Behavior = 12
SRv6Behavior_END_B6_ENCAPS SRv6Behavior = 14
SRv6Behavior_END_BM SRv6Behavior = 15
SRv6Behavior_END_DX6 SRv6Behavior = 16
SRv6Behavior_END_DX4 SRv6Behavior = 17
SRv6Behavior_END_DT6 SRv6Behavior = 18
SRv6Behavior_END_DT4 SRv6Behavior = 19
SRv6Behavior_END_DT46 SRv6Behavior = 20
SRv6Behavior_END_DX2 SRv6Behavior = 21
SRv6Behavior_END_DX2V SRv6Behavior = 22
SRv6Behavior_END_DT2U SRv6Behavior = 23
SRv6Behavior_END_DT2M SRv6Behavior = 24
SRv6Behavior_END_B6_ENCAPS_Red SRv6Behavior = 27
SRv6Behavior_END_WITH_USD SRv6Behavior = 28
SRv6Behavior_END_WITH_PSP_USD SRv6Behavior = 29
SRv6Behavior_END_WITH_USP_USD SRv6Behavior = 30
SRv6Behavior_END_WITH_PSP_USP_USD SRv6Behavior = 31
SRv6Behavior_ENDX_WITH_USD SRv6Behavior = 32
SRv6Behavior_ENDX_WITH_PSP_USD SRv6Behavior = 33
SRv6Behavior_ENDX_WITH_USP_USD SRv6Behavior = 34
SRv6Behavior_ENDX_WITH_PSP_USP_USD SRv6Behavior = 35
SRv6Behavior_ENDT_WITH_USD SRv6Behavior = 36
SRv6Behavior_ENDT_WITH_PSP_USD SRv6Behavior = 37
SRv6Behavior_ENDT_WITH_USP_USD SRv6Behavior = 38
SRv6Behavior_ENDT_WITH_PSP_USP_USD SRv6Behavior = 39
SRv6Behavior_ENDM_GTP6D SRv6Behavior = 69 // 0x0045
SRv6Behavior_ENDM_GTP6DI SRv6Behavior = 70 // 0x0046
SRv6Behavior_ENDM_GTP6E SRv6Behavior = 71 // 0x0047
SRv6Behavior_ENDM_GTP4E SRv6Behavior = 72 // 0x0048
)
// Enum value maps for SRv6Behavior.
var (
SRv6Behavior_name = map[int32]string{
0: "RESERVED",
1: "END",
2: "END_WITH_PSP",
3: "END_WITH_USP",
4: "END_WITH_PSP_USP",
5: "ENDX",
6: "ENDX_WITH_PSP",
7: "ENDX_WITH_USP",
8: "ENDX_WITH_PSP_USP",
9: "ENDT",
10: "ENDT_WITH_PSP",
11: "ENDT_WITH_USP",
12: "ENDT_WITH_PSP_USP",
14: "END_B6_ENCAPS",
15: "END_BM",
16: "END_DX6",
17: "END_DX4",
18: "END_DT6",
19: "END_DT4",
20: "END_DT46",
21: "END_DX2",
22: "END_DX2V",
23: "END_DT2U",
24: "END_DT2M",
27: "END_B6_ENCAPS_Red",
28: "END_WITH_USD",
29: "END_WITH_PSP_USD",
30: "END_WITH_USP_USD",
31: "END_WITH_PSP_USP_USD",
32: "ENDX_WITH_USD",
33: "ENDX_WITH_PSP_USD",
34: "ENDX_WITH_USP_USD",
35: "ENDX_WITH_PSP_USP_USD",
36: "ENDT_WITH_USD",
37: "ENDT_WITH_PSP_USD",
38: "ENDT_WITH_USP_USD",
39: "ENDT_WITH_PSP_USP_USD",
69: "ENDM_GTP6D",
70: "ENDM_GTP6DI",
71: "ENDM_GTP6E",
72: "ENDM_GTP4E",
}
SRv6Behavior_value = map[string]int32{
"RESERVED": 0,
"END": 1,
"END_WITH_PSP": 2,
"END_WITH_USP": 3,
"END_WITH_PSP_USP": 4,
"ENDX": 5,
"ENDX_WITH_PSP": 6,
"ENDX_WITH_USP": 7,
"ENDX_WITH_PSP_USP": 8,
"ENDT": 9,
"ENDT_WITH_PSP": 10,
"ENDT_WITH_USP": 11,
"ENDT_WITH_PSP_USP": 12,
"END_B6_ENCAPS": 14,
"END_BM": 15,
"END_DX6": 16,
"END_DX4": 17,
"END_DT6": 18,
"END_DT4": 19,
"END_DT46": 20,
"END_DX2": 21,
"END_DX2V": 22,
"END_DT2U": 23,
"END_DT2M": 24,
"END_B6_ENCAPS_Red": 27,
"END_WITH_USD": 28,
"END_WITH_PSP_USD": 29,
"END_WITH_USP_USD": 30,
"END_WITH_PSP_USP_USD": 31,
"ENDX_WITH_USD": 32,
"ENDX_WITH_PSP_USD": 33,
"ENDX_WITH_USP_USD": 34,
"ENDX_WITH_PSP_USP_USD": 35,
"ENDT_WITH_USD": 36,
"ENDT_WITH_PSP_USD": 37,
"ENDT_WITH_USP_USD": 38,
"ENDT_WITH_PSP_USP_USD": 39,
"ENDM_GTP6D": 69,
"ENDM_GTP6DI": 70,
"ENDM_GTP6E": 71,
"ENDM_GTP4E": 72,
}
)
func (x SRv6Behavior) Enum() *SRv6Behavior {
p := new(SRv6Behavior)
*p = x
return p
}
func (x SRv6Behavior) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SRv6Behavior) Descriptor() protoreflect.EnumDescriptor {
return file_attribute_proto_enumTypes[3].Descriptor()
}
func (SRv6Behavior) Type() protoreflect.EnumType {
return &file_attribute_proto_enumTypes[3]
}
func (x SRv6Behavior) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SRv6Behavior.Descriptor instead.
func (SRv6Behavior) EnumDescriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{3}
}
type ENLPType int32
const (
ENLPType_Reserved ENLPType = 0
ENLPType_Type1 ENLPType = 1
ENLPType_Type2 ENLPType = 2
ENLPType_Type3 ENLPType = 3
ENLPType_Type4 ENLPType = 4
)
// Enum value maps for ENLPType.
var (
ENLPType_name = map[int32]string{
0: "Reserved",
1: "Type1",
2: "Type2",
3: "Type3",
4: "Type4",
}
ENLPType_value = map[string]int32{
"Reserved": 0,
"Type1": 1,
"Type2": 2,
"Type3": 3,
"Type4": 4,
}
)
func (x ENLPType) Enum() *ENLPType {
p := new(ENLPType)
*p = x
return p
}
func (x ENLPType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ENLPType) Descriptor() protoreflect.EnumDescriptor {
return file_attribute_proto_enumTypes[4].Descriptor()
}
func (ENLPType) Type() protoreflect.EnumType {
return &file_attribute_proto_enumTypes[4]
}
func (x ENLPType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ENLPType.Descriptor instead.
func (ENLPType) EnumDescriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{4}
}
type AsSegment_Type int32
const (
AsSegment_UNKNOWN AsSegment_Type = 0
AsSegment_AS_SET AsSegment_Type = 1
AsSegment_AS_SEQUENCE AsSegment_Type = 2
AsSegment_AS_CONFED_SEQUENCE AsSegment_Type = 3
AsSegment_AS_CONFED_SET AsSegment_Type = 4
)
// Enum value maps for AsSegment_Type.
var (
AsSegment_Type_name = map[int32]string{
0: "UNKNOWN",
1: "AS_SET",
2: "AS_SEQUENCE",
3: "AS_CONFED_SEQUENCE",
4: "AS_CONFED_SET",
}
AsSegment_Type_value = map[string]int32{
"UNKNOWN": 0,
"AS_SET": 1,
"AS_SEQUENCE": 2,
"AS_CONFED_SEQUENCE": 3,
"AS_CONFED_SET": 4,
}
)
func (x AsSegment_Type) Enum() *AsSegment_Type {
p := new(AsSegment_Type)
*p = x
return p
}
func (x AsSegment_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AsSegment_Type) Descriptor() protoreflect.EnumDescriptor {
return file_attribute_proto_enumTypes[5].Descriptor()
}
func (AsSegment_Type) Type() protoreflect.EnumType {
return &file_attribute_proto_enumTypes[5]
}
func (x AsSegment_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AsSegment_Type.Descriptor instead.
func (AsSegment_Type) EnumDescriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{1, 0}
}
type OriginAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Origin uint32 `protobuf:"varint,1,opt,name=origin,proto3" json:"origin,omitempty"`
}
func (x *OriginAttribute) Reset() {
*x = OriginAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OriginAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OriginAttribute) ProtoMessage() {}
func (x *OriginAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_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)
}
// Deprecated: Use OriginAttribute.ProtoReflect.Descriptor instead.
func (*OriginAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{0}
}
func (x *OriginAttribute) GetOrigin() uint32 {
if x != nil {
return x.Origin
}
return 0
}
type AsSegment struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type AsSegment_Type `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.AsSegment_Type" json:"type,omitempty"`
Numbers []uint32 `protobuf:"varint,2,rep,packed,name=numbers,proto3" json:"numbers,omitempty"`
}
func (x *AsSegment) Reset() {
*x = AsSegment{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AsSegment) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AsSegment) ProtoMessage() {}
func (x *AsSegment) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[1]
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)
}
// Deprecated: Use AsSegment.ProtoReflect.Descriptor instead.
func (*AsSegment) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{1}
}
func (x *AsSegment) GetType() AsSegment_Type {
if x != nil {
return x.Type
}
return AsSegment_UNKNOWN
}
func (x *AsSegment) GetNumbers() []uint32 {
if x != nil {
return x.Numbers
}
return nil
}
type AsPathAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Segments []*AsSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
}
func (x *AsPathAttribute) Reset() {
*x = AsPathAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AsPathAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AsPathAttribute) ProtoMessage() {}
func (x *AsPathAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[2]
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)
}
// Deprecated: Use AsPathAttribute.ProtoReflect.Descriptor instead.
func (*AsPathAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{2}
}
func (x *AsPathAttribute) GetSegments() []*AsSegment {
if x != nil {
return x.Segments
}
return nil
}
type NextHopAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
NextHop string `protobuf:"bytes,1,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"`
}
func (x *NextHopAttribute) Reset() {
*x = NextHopAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NextHopAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NextHopAttribute) ProtoMessage() {}
func (x *NextHopAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[3]
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)
}
// Deprecated: Use NextHopAttribute.ProtoReflect.Descriptor instead.
func (*NextHopAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{3}
}
func (x *NextHopAttribute) GetNextHop() string {
if x != nil {
return x.NextHop
}
return ""
}
type MultiExitDiscAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Med uint32 `protobuf:"varint,1,opt,name=med,proto3" json:"med,omitempty"`
}
func (x *MultiExitDiscAttribute) Reset() {
*x = MultiExitDiscAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MultiExitDiscAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MultiExitDiscAttribute) ProtoMessage() {}
func (x *MultiExitDiscAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[4]
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)
}
// Deprecated: Use MultiExitDiscAttribute.ProtoReflect.Descriptor instead.
func (*MultiExitDiscAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{4}
}
func (x *MultiExitDiscAttribute) GetMed() uint32 {
if x != nil {
return x.Med
}
return 0
}
type LocalPrefAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LocalPref uint32 `protobuf:"varint,1,opt,name=local_pref,json=localPref,proto3" json:"local_pref,omitempty"`
}
func (x *LocalPrefAttribute) Reset() {
*x = LocalPrefAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LocalPrefAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LocalPrefAttribute) ProtoMessage() {}
func (x *LocalPrefAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[5]
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)
}
// Deprecated: Use LocalPrefAttribute.ProtoReflect.Descriptor instead.
func (*LocalPrefAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{5}
}
func (x *LocalPrefAttribute) GetLocalPref() uint32 {
if x != nil {
return x.LocalPref
}
return 0
}
type AtomicAggregateAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *AtomicAggregateAttribute) Reset() {
*x = AtomicAggregateAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AtomicAggregateAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AtomicAggregateAttribute) ProtoMessage() {}
func (x *AtomicAggregateAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[6]
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)
}
// Deprecated: Use AtomicAggregateAttribute.ProtoReflect.Descriptor instead.
func (*AtomicAggregateAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{6}
}
type AggregatorAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
}
func (x *AggregatorAttribute) Reset() {
*x = AggregatorAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AggregatorAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AggregatorAttribute) ProtoMessage() {}
func (x *AggregatorAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[7]
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)
}
// Deprecated: Use AggregatorAttribute.ProtoReflect.Descriptor instead.
func (*AggregatorAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{7}
}
func (x *AggregatorAttribute) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *AggregatorAttribute) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type CommunitiesAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Communities []uint32 `protobuf:"varint,1,rep,packed,name=communities,proto3" json:"communities,omitempty"`
}
func (x *CommunitiesAttribute) Reset() {
*x = CommunitiesAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CommunitiesAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CommunitiesAttribute) ProtoMessage() {}
func (x *CommunitiesAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[8]
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)
}
// Deprecated: Use CommunitiesAttribute.ProtoReflect.Descriptor instead.
func (*CommunitiesAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{8}
}
func (x *CommunitiesAttribute) GetCommunities() []uint32 {
if x != nil {
return x.Communities
}
return nil
}
type OriginatorIdAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *OriginatorIdAttribute) Reset() {
*x = OriginatorIdAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OriginatorIdAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OriginatorIdAttribute) ProtoMessage() {}
func (x *OriginatorIdAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[9]
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)
}
// Deprecated: Use OriginatorIdAttribute.ProtoReflect.Descriptor instead.
func (*OriginatorIdAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{9}
}
func (x *OriginatorIdAttribute) GetId() string {
if x != nil {
return x.Id
}
return ""
}
type ClusterListAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
}
func (x *ClusterListAttribute) Reset() {
*x = ClusterListAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClusterListAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClusterListAttribute) ProtoMessage() {}
func (x *ClusterListAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[10]
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)
}
// Deprecated: Use ClusterListAttribute.ProtoReflect.Descriptor instead.
func (*ClusterListAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{10}
}
func (x *ClusterListAttribute) GetIds() []string {
if x != nil {
return x.Ids
}
return nil
}
// IPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=1
// - AFI=2, SAFI=1
type IPAddressPrefix struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PrefixLen uint32 `protobuf:"varint,1,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
}
func (x *IPAddressPrefix) Reset() {
*x = IPAddressPrefix{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IPAddressPrefix) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IPAddressPrefix) ProtoMessage() {}
func (x *IPAddressPrefix) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[11]
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)
}
// Deprecated: Use IPAddressPrefix.ProtoReflect.Descriptor instead.
func (*IPAddressPrefix) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{11}
}
func (x *IPAddressPrefix) GetPrefixLen() uint32 {
if x != nil {
return x.PrefixLen
}
return 0
}
func (x *IPAddressPrefix) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
// LabeledIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=4
// - AFI=2, SAFI=4
type LabeledIPAddressPrefix struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Labels []uint32 `protobuf:"varint,1,rep,packed,name=labels,proto3" json:"labels,omitempty"`
PrefixLen uint32 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
}
func (x *LabeledIPAddressPrefix) Reset() {
*x = LabeledIPAddressPrefix{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LabeledIPAddressPrefix) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LabeledIPAddressPrefix) ProtoMessage() {}
func (x *LabeledIPAddressPrefix) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[12]
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)
}
// Deprecated: Use LabeledIPAddressPrefix.ProtoReflect.Descriptor instead.
func (*LabeledIPAddressPrefix) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{12}
}
func (x *LabeledIPAddressPrefix) GetLabels() []uint32 {
if x != nil {
return x.Labels
}
return nil
}
func (x *LabeledIPAddressPrefix) GetPrefixLen() uint32 {
if x != nil {
return x.PrefixLen
}
return 0
}
func (x *LabeledIPAddressPrefix) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
// EncapsulationNLRI represents the NLRI for:
// - AFI=1, SAFI=7
// - AFI=2, SAFI=7
type EncapsulationNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
}
func (x *EncapsulationNLRI) Reset() {
*x = EncapsulationNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EncapsulationNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EncapsulationNLRI) ProtoMessage() {}
func (x *EncapsulationNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[13]
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)
}
// Deprecated: Use EncapsulationNLRI.ProtoReflect.Descriptor instead.
func (*EncapsulationNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{13}
}
func (x *EncapsulationNLRI) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type RouteDistinguisherTwoOctetASN struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Admin uint32 `protobuf:"varint,1,opt,name=admin,proto3" json:"admin,omitempty"`
Assigned uint32 `protobuf:"varint,2,opt,name=assigned,proto3" json:"assigned,omitempty"`
}
func (x *RouteDistinguisherTwoOctetASN) Reset() {
*x = RouteDistinguisherTwoOctetASN{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteDistinguisherTwoOctetASN) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteDistinguisherTwoOctetASN) ProtoMessage() {}
func (x *RouteDistinguisherTwoOctetASN) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[14]
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)
}
// Deprecated: Use RouteDistinguisherTwoOctetASN.ProtoReflect.Descriptor instead.
func (*RouteDistinguisherTwoOctetASN) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{14}
}
func (x *RouteDistinguisherTwoOctetASN) GetAdmin() uint32 {
if x != nil {
return x.Admin
}
return 0
}
func (x *RouteDistinguisherTwoOctetASN) GetAssigned() uint32 {
if x != nil {
return x.Assigned
}
return 0
}
type RouteDistinguisherIPAddress struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"`
Assigned uint32 `protobuf:"varint,2,opt,name=assigned,proto3" json:"assigned,omitempty"`
}
func (x *RouteDistinguisherIPAddress) Reset() {
*x = RouteDistinguisherIPAddress{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteDistinguisherIPAddress) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteDistinguisherIPAddress) ProtoMessage() {}
func (x *RouteDistinguisherIPAddress) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[15]
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)
}
// Deprecated: Use RouteDistinguisherIPAddress.ProtoReflect.Descriptor instead.
func (*RouteDistinguisherIPAddress) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{15}
}
func (x *RouteDistinguisherIPAddress) GetAdmin() string {
if x != nil {
return x.Admin
}
return ""
}
func (x *RouteDistinguisherIPAddress) GetAssigned() uint32 {
if x != nil {
return x.Assigned
}
return 0
}
type RouteDistinguisherFourOctetASN struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Admin uint32 `protobuf:"varint,1,opt,name=admin,proto3" json:"admin,omitempty"`
Assigned uint32 `protobuf:"varint,2,opt,name=assigned,proto3" json:"assigned,omitempty"`
}
func (x *RouteDistinguisherFourOctetASN) Reset() {
*x = RouteDistinguisherFourOctetASN{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteDistinguisherFourOctetASN) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteDistinguisherFourOctetASN) ProtoMessage() {}
func (x *RouteDistinguisherFourOctetASN) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[16]
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)
}
// Deprecated: Use RouteDistinguisherFourOctetASN.ProtoReflect.Descriptor instead.
func (*RouteDistinguisherFourOctetASN) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{16}
}
func (x *RouteDistinguisherFourOctetASN) GetAdmin() uint32 {
if x != nil {
return x.Admin
}
return 0
}
func (x *RouteDistinguisherFourOctetASN) GetAssigned() uint32 {
if x != nil {
return x.Assigned
}
return 0
}
type EthernetSegmentIdentifier struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *EthernetSegmentIdentifier) Reset() {
*x = EthernetSegmentIdentifier{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EthernetSegmentIdentifier) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EthernetSegmentIdentifier) ProtoMessage() {}
func (x *EthernetSegmentIdentifier) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[17]
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)
}
// Deprecated: Use EthernetSegmentIdentifier.ProtoReflect.Descriptor instead.
func (*EthernetSegmentIdentifier) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{17}
}
func (x *EthernetSegmentIdentifier) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *EthernetSegmentIdentifier) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
// EVPNEthernetAutoDiscoveryRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=1
type EVPNEthernetAutoDiscoveryRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
EthernetTag uint32 `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
Label uint32 `protobuf:"varint,4,opt,name=label,proto3" json:"label,omitempty"`
}
func (x *EVPNEthernetAutoDiscoveryRoute) Reset() {
*x = EVPNEthernetAutoDiscoveryRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EVPNEthernetAutoDiscoveryRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EVPNEthernetAutoDiscoveryRoute) ProtoMessage() {}
func (x *EVPNEthernetAutoDiscoveryRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[18]
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)
}
// Deprecated: Use EVPNEthernetAutoDiscoveryRoute.ProtoReflect.Descriptor instead.
func (*EVPNEthernetAutoDiscoveryRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{18}
}
func (x *EVPNEthernetAutoDiscoveryRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *EVPNEthernetAutoDiscoveryRoute) GetEsi() *EthernetSegmentIdentifier {
if x != nil {
return x.Esi
}
return nil
}
func (x *EVPNEthernetAutoDiscoveryRoute) GetEthernetTag() uint32 {
if x != nil {
return x.EthernetTag
}
return 0
}
func (x *EVPNEthernetAutoDiscoveryRoute) GetLabel() uint32 {
if x != nil {
return x.Label
}
return 0
}
// EVPNMACIPAdvertisementRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=2
type EVPNMACIPAdvertisementRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
EthernetTag uint32 `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
MacAddress string `protobuf:"bytes,4,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
IpAddress string `protobuf:"bytes,5,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
Labels []uint32 `protobuf:"varint,6,rep,packed,name=labels,proto3" json:"labels,omitempty"`
}
func (x *EVPNMACIPAdvertisementRoute) Reset() {
*x = EVPNMACIPAdvertisementRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EVPNMACIPAdvertisementRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EVPNMACIPAdvertisementRoute) ProtoMessage() {}
func (x *EVPNMACIPAdvertisementRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[19]
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)
}
// Deprecated: Use EVPNMACIPAdvertisementRoute.ProtoReflect.Descriptor instead.
func (*EVPNMACIPAdvertisementRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{19}
}
func (x *EVPNMACIPAdvertisementRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *EVPNMACIPAdvertisementRoute) GetEsi() *EthernetSegmentIdentifier {
if x != nil {
return x.Esi
}
return nil
}
func (x *EVPNMACIPAdvertisementRoute) GetEthernetTag() uint32 {
if x != nil {
return x.EthernetTag
}
return 0
}
func (x *EVPNMACIPAdvertisementRoute) GetMacAddress() string {
if x != nil {
return x.MacAddress
}
return ""
}
func (x *EVPNMACIPAdvertisementRoute) GetIpAddress() string {
if x != nil {
return x.IpAddress
}
return ""
}
func (x *EVPNMACIPAdvertisementRoute) GetLabels() []uint32 {
if x != nil {
return x.Labels
}
return nil
}
// EVPNInclusiveMulticastEthernetTagRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=3
type EVPNInclusiveMulticastEthernetTagRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
EthernetTag uint32 `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
}
func (x *EVPNInclusiveMulticastEthernetTagRoute) Reset() {
*x = EVPNInclusiveMulticastEthernetTagRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EVPNInclusiveMulticastEthernetTagRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EVPNInclusiveMulticastEthernetTagRoute) ProtoMessage() {}
func (x *EVPNInclusiveMulticastEthernetTagRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[20]
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)
}
// Deprecated: Use EVPNInclusiveMulticastEthernetTagRoute.ProtoReflect.Descriptor instead.
func (*EVPNInclusiveMulticastEthernetTagRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{20}
}
func (x *EVPNInclusiveMulticastEthernetTagRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *EVPNInclusiveMulticastEthernetTagRoute) GetEthernetTag() uint32 {
if x != nil {
return x.EthernetTag
}
return 0
}
func (x *EVPNInclusiveMulticastEthernetTagRoute) GetIpAddress() string {
if x != nil {
return x.IpAddress
}
return ""
}
// EVPNEthernetSegmentRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=4
type EVPNEthernetSegmentRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
}
func (x *EVPNEthernetSegmentRoute) Reset() {
*x = EVPNEthernetSegmentRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EVPNEthernetSegmentRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EVPNEthernetSegmentRoute) ProtoMessage() {}
func (x *EVPNEthernetSegmentRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[21]
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)
}
// Deprecated: Use EVPNEthernetSegmentRoute.ProtoReflect.Descriptor instead.
func (*EVPNEthernetSegmentRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{21}
}
func (x *EVPNEthernetSegmentRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *EVPNEthernetSegmentRoute) GetEsi() *EthernetSegmentIdentifier {
if x != nil {
return x.Esi
}
return nil
}
func (x *EVPNEthernetSegmentRoute) GetIpAddress() string {
if x != nil {
return x.IpAddress
}
return ""
}
// EVPNIPPrefixRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=5
type EVPNIPPrefixRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
EthernetTag uint32 `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
IpPrefix string `protobuf:"bytes,4,opt,name=ip_prefix,json=ipPrefix,proto3" json:"ip_prefix,omitempty"`
IpPrefixLen uint32 `protobuf:"varint,5,opt,name=ip_prefix_len,json=ipPrefixLen,proto3" json:"ip_prefix_len,omitempty"`
GwAddress string `protobuf:"bytes,6,opt,name=gw_address,json=gwAddress,proto3" json:"gw_address,omitempty"`
Label uint32 `protobuf:"varint,7,opt,name=label,proto3" json:"label,omitempty"`
}
func (x *EVPNIPPrefixRoute) Reset() {
*x = EVPNIPPrefixRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EVPNIPPrefixRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EVPNIPPrefixRoute) ProtoMessage() {}
func (x *EVPNIPPrefixRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[22]
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)
}
// Deprecated: Use EVPNIPPrefixRoute.ProtoReflect.Descriptor instead.
func (*EVPNIPPrefixRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{22}
}
func (x *EVPNIPPrefixRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *EVPNIPPrefixRoute) GetEsi() *EthernetSegmentIdentifier {
if x != nil {
return x.Esi
}
return nil
}
func (x *EVPNIPPrefixRoute) GetEthernetTag() uint32 {
if x != nil {
return x.EthernetTag
}
return 0
}
func (x *EVPNIPPrefixRoute) GetIpPrefix() string {
if x != nil {
return x.IpPrefix
}
return ""
}
func (x *EVPNIPPrefixRoute) GetIpPrefixLen() uint32 {
if x != nil {
return x.IpPrefixLen
}
return 0
}
func (x *EVPNIPPrefixRoute) GetGwAddress() string {
if x != nil {
return x.GwAddress
}
return ""
}
func (x *EVPNIPPrefixRoute) GetLabel() uint32 {
if x != nil {
return x.Label
}
return 0
}
// EVPNIPMSIRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=9
type EVPNIPMSIRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
EthernetTag uint32 `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
Rt *anypb.Any `protobuf:"bytes,3,opt,name=rt,proto3" json:"rt,omitempty"`
}
func (x *EVPNIPMSIRoute) Reset() {
*x = EVPNIPMSIRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EVPNIPMSIRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EVPNIPMSIRoute) ProtoMessage() {}
func (x *EVPNIPMSIRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[23]
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)
}
// Deprecated: Use EVPNIPMSIRoute.ProtoReflect.Descriptor instead.
func (*EVPNIPMSIRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{23}
}
func (x *EVPNIPMSIRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *EVPNIPMSIRoute) GetEthernetTag() uint32 {
if x != nil {
return x.EthernetTag
}
return 0
}
func (x *EVPNIPMSIRoute) GetRt() *anypb.Any {
if x != nil {
return x.Rt
}
return nil
}
// SRPolicyNLRI represents the NLRI for:
// - AFI=1, SAFI=73
// - AFI=2, SAFI=73
type SRPolicyNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// length field carries the length of NLRI portion expressed in bits
Length uint32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
// distinguisher field carries 4-octet value uniquely identifying the policy
// in the context of <color, endpoint> tuple.
Distinguisher uint32 `protobuf:"varint,2,opt,name=distinguisher,proto3" json:"distinguisher,omitempty"`
// color field carries 4-octet value identifying (with the endpoint) the
// policy. The color is used to match the color of the destination
// prefixes to steer traffic into the SR Policy
Color uint32 `protobuf:"varint,3,opt,name=color,proto3" json:"color,omitempty"`
// endpoint field identifies the endpoint of a policy. The Endpoint may
// represent a single node or a set of nodes (e.g., an anycast
// address). The Endpoint is an IPv4 (4-octet) address or an IPv6
// (16-octet) address according to the AFI of the NLRI.
Endpoint []byte `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
}
func (x *SRPolicyNLRI) Reset() {
*x = SRPolicyNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRPolicyNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRPolicyNLRI) ProtoMessage() {}
func (x *SRPolicyNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[24]
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)
}
// Deprecated: Use SRPolicyNLRI.ProtoReflect.Descriptor instead.
func (*SRPolicyNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{24}
}
func (x *SRPolicyNLRI) GetLength() uint32 {
if x != nil {
return x.Length
}
return 0
}
func (x *SRPolicyNLRI) GetDistinguisher() uint32 {
if x != nil {
return x.Distinguisher
}
return 0
}
func (x *SRPolicyNLRI) GetColor() uint32 {
if x != nil {
return x.Color
}
return 0
}
func (x *SRPolicyNLRI) GetEndpoint() []byte {
if x != nil {
return x.Endpoint
}
return nil
}
// LabeledVPNIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=128
// - AFI=2, SAFI=128
type LabeledVPNIPAddressPrefix struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Labels []uint32 `protobuf:"varint,1,rep,packed,name=labels,proto3" json:"labels,omitempty"`
// One of:
// - TwoOctetAsSpecificExtended
// - IPv4AddressSpecificExtended
// - FourOctetAsSpecificExtended
Rd *anypb.Any `protobuf:"bytes,2,opt,name=rd,proto3" json:"rd,omitempty"`
PrefixLen uint32 `protobuf:"varint,3,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"`
}
func (x *LabeledVPNIPAddressPrefix) Reset() {
*x = LabeledVPNIPAddressPrefix{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LabeledVPNIPAddressPrefix) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LabeledVPNIPAddressPrefix) ProtoMessage() {}
func (x *LabeledVPNIPAddressPrefix) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[25]
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)
}
// Deprecated: Use LabeledVPNIPAddressPrefix.ProtoReflect.Descriptor instead.
func (*LabeledVPNIPAddressPrefix) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{25}
}
func (x *LabeledVPNIPAddressPrefix) GetLabels() []uint32 {
if x != nil {
return x.Labels
}
return nil
}
func (x *LabeledVPNIPAddressPrefix) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *LabeledVPNIPAddressPrefix) GetPrefixLen() uint32 {
if x != nil {
return x.PrefixLen
}
return 0
}
func (x *LabeledVPNIPAddressPrefix) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
// RouteTargetMembershipNLRI represents the NLRI for:
// - AFI=1, SAFI=132
type RouteTargetMembershipNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
// One of:
// - TwoOctetAsSpecificExtended
// - IPv4AddressSpecificExtended
// - FourOctetAsSpecificExtended
Rt *anypb.Any `protobuf:"bytes,2,opt,name=rt,proto3" json:"rt,omitempty"`
}
func (x *RouteTargetMembershipNLRI) Reset() {
*x = RouteTargetMembershipNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteTargetMembershipNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteTargetMembershipNLRI) ProtoMessage() {}
func (x *RouteTargetMembershipNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[26]
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)
}
// Deprecated: Use RouteTargetMembershipNLRI.ProtoReflect.Descriptor instead.
func (*RouteTargetMembershipNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{26}
}
func (x *RouteTargetMembershipNLRI) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *RouteTargetMembershipNLRI) GetRt() *anypb.Any {
if x != nil {
return x.Rt
}
return nil
}
type FlowSpecIPPrefix struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
PrefixLen uint32 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
// IPv6 only
Offset uint32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}
func (x *FlowSpecIPPrefix) Reset() {
*x = FlowSpecIPPrefix{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FlowSpecIPPrefix) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FlowSpecIPPrefix) ProtoMessage() {}
func (x *FlowSpecIPPrefix) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[27]
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)
}
// Deprecated: Use FlowSpecIPPrefix.ProtoReflect.Descriptor instead.
func (*FlowSpecIPPrefix) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{27}
}
func (x *FlowSpecIPPrefix) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *FlowSpecIPPrefix) GetPrefixLen() uint32 {
if x != nil {
return x.PrefixLen
}
return 0
}
func (x *FlowSpecIPPrefix) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *FlowSpecIPPrefix) GetOffset() uint32 {
if x != nil {
return x.Offset
}
return 0
}
type FlowSpecMAC struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
}
func (x *FlowSpecMAC) Reset() {
*x = FlowSpecMAC{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FlowSpecMAC) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FlowSpecMAC) ProtoMessage() {}
func (x *FlowSpecMAC) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[28]
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)
}
// Deprecated: Use FlowSpecMAC.ProtoReflect.Descriptor instead.
func (*FlowSpecMAC) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{28}
}
func (x *FlowSpecMAC) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *FlowSpecMAC) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type FlowSpecComponentItem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Operator for Numeric type, Operand for Bitmask type
Op uint32 `protobuf:"varint,1,opt,name=op,proto3" json:"op,omitempty"`
Value uint64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *FlowSpecComponentItem) Reset() {
*x = FlowSpecComponentItem{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FlowSpecComponentItem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FlowSpecComponentItem) ProtoMessage() {}
func (x *FlowSpecComponentItem) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[29]
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)
}
// Deprecated: Use FlowSpecComponentItem.ProtoReflect.Descriptor instead.
func (*FlowSpecComponentItem) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{29}
}
func (x *FlowSpecComponentItem) GetOp() uint32 {
if x != nil {
return x.Op
}
return 0
}
func (x *FlowSpecComponentItem) GetValue() uint64 {
if x != nil {
return x.Value
}
return 0
}
type FlowSpecComponent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
Items []*FlowSpecComponentItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
}
func (x *FlowSpecComponent) Reset() {
*x = FlowSpecComponent{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FlowSpecComponent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FlowSpecComponent) ProtoMessage() {}
func (x *FlowSpecComponent) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[30]
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)
}
// Deprecated: Use FlowSpecComponent.ProtoReflect.Descriptor instead.
func (*FlowSpecComponent) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{30}
}
func (x *FlowSpecComponent) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *FlowSpecComponent) GetItems() []*FlowSpecComponentItem {
if x != nil {
return x.Items
}
return nil
}
// FlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=133
// - AFI=2, SAFI=133
type FlowSpecNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - FlowSpecIPPrefix
// - FlowSpecMAC
// - FlowSpecComponent
Rules []*anypb.Any `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
}
func (x *FlowSpecNLRI) Reset() {
*x = FlowSpecNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FlowSpecNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FlowSpecNLRI) ProtoMessage() {}
func (x *FlowSpecNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[31]
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)
}
// Deprecated: Use FlowSpecNLRI.ProtoReflect.Descriptor instead.
func (*FlowSpecNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{31}
}
func (x *FlowSpecNLRI) GetRules() []*anypb.Any {
if x != nil {
return x.Rules
}
return nil
}
// VPNFlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=134
// - AFI=2, SAFI=134
// - AFI=25, SAFI=134
type VPNFlowSpecNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
// One of:
// - FlowSpecIPPrefix
// - FlowSpecMAC
// - FlowSpecComponent
Rules []*anypb.Any `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
}
func (x *VPNFlowSpecNLRI) Reset() {
*x = VPNFlowSpecNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VPNFlowSpecNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VPNFlowSpecNLRI) ProtoMessage() {}
func (x *VPNFlowSpecNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[32]
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)
}
// Deprecated: Use VPNFlowSpecNLRI.ProtoReflect.Descriptor instead.
func (*VPNFlowSpecNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{32}
}
func (x *VPNFlowSpecNLRI) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *VPNFlowSpecNLRI) GetRules() []*anypb.Any {
if x != nil {
return x.Rules
}
return nil
}
// OpaqueNLRI represents the NLRI for:
// - AFI=16397, SAFI=241
type OpaqueNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *OpaqueNLRI) Reset() {
*x = OpaqueNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OpaqueNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OpaqueNLRI) ProtoMessage() {}
func (x *OpaqueNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[33]
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)
}
// Deprecated: Use OpaqueNLRI.ProtoReflect.Descriptor instead.
func (*OpaqueNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{33}
}
func (x *OpaqueNLRI) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
func (x *OpaqueNLRI) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
type LsNodeDescriptor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
BgpLsId uint32 `protobuf:"varint,2,opt,name=bgp_ls_id,json=bgpLsId,proto3" json:"bgp_ls_id,omitempty"`
OspfAreaId uint32 `protobuf:"varint,3,opt,name=ospf_area_id,json=ospfAreaId,proto3" json:"ospf_area_id,omitempty"`
Pseudonode bool `protobuf:"varint,4,opt,name=pseudonode,proto3" json:"pseudonode,omitempty"`
IgpRouterId string `protobuf:"bytes,5,opt,name=igp_router_id,json=igpRouterId,proto3" json:"igp_router_id,omitempty"`
}
func (x *LsNodeDescriptor) Reset() {
*x = LsNodeDescriptor{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsNodeDescriptor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsNodeDescriptor) ProtoMessage() {}
func (x *LsNodeDescriptor) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[34]
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)
}
// Deprecated: Use LsNodeDescriptor.ProtoReflect.Descriptor instead.
func (*LsNodeDescriptor) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{34}
}
func (x *LsNodeDescriptor) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *LsNodeDescriptor) GetBgpLsId() uint32 {
if x != nil {
return x.BgpLsId
}
return 0
}
func (x *LsNodeDescriptor) GetOspfAreaId() uint32 {
if x != nil {
return x.OspfAreaId
}
return 0
}
func (x *LsNodeDescriptor) GetPseudonode() bool {
if x != nil {
return x.Pseudonode
}
return false
}
func (x *LsNodeDescriptor) GetIgpRouterId() string {
if x != nil {
return x.IgpRouterId
}
return ""
}
type LsLinkDescriptor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LinkLocalId uint32 `protobuf:"varint,1,opt,name=link_local_id,json=linkLocalId,proto3" json:"link_local_id,omitempty"`
LinkRemoteId uint32 `protobuf:"varint,2,opt,name=link_remote_id,json=linkRemoteId,proto3" json:"link_remote_id,omitempty"`
InterfaceAddrIpv4 string `protobuf:"bytes,3,opt,name=interface_addr_ipv4,json=interfaceAddrIpv4,proto3" json:"interface_addr_ipv4,omitempty"`
NeighborAddrIpv4 string `protobuf:"bytes,4,opt,name=neighbor_addr_ipv4,json=neighborAddrIpv4,proto3" json:"neighbor_addr_ipv4,omitempty"`
InterfaceAddrIpv6 string `protobuf:"bytes,5,opt,name=interface_addr_ipv6,json=interfaceAddrIpv6,proto3" json:"interface_addr_ipv6,omitempty"`
NeighborAddrIpv6 string `protobuf:"bytes,6,opt,name=neighbor_addr_ipv6,json=neighborAddrIpv6,proto3" json:"neighbor_addr_ipv6,omitempty"`
}
func (x *LsLinkDescriptor) Reset() {
*x = LsLinkDescriptor{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsLinkDescriptor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsLinkDescriptor) ProtoMessage() {}
func (x *LsLinkDescriptor) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[35]
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)
}
// Deprecated: Use LsLinkDescriptor.ProtoReflect.Descriptor instead.
func (*LsLinkDescriptor) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{35}
}
func (x *LsLinkDescriptor) GetLinkLocalId() uint32 {
if x != nil {
return x.LinkLocalId
}
return 0
}
func (x *LsLinkDescriptor) GetLinkRemoteId() uint32 {
if x != nil {
return x.LinkRemoteId
}
return 0
}
func (x *LsLinkDescriptor) GetInterfaceAddrIpv4() string {
if x != nil {
return x.InterfaceAddrIpv4
}
return ""
}
func (x *LsLinkDescriptor) GetNeighborAddrIpv4() string {
if x != nil {
return x.NeighborAddrIpv4
}
return ""
}
func (x *LsLinkDescriptor) GetInterfaceAddrIpv6() string {
if x != nil {
return x.InterfaceAddrIpv6
}
return ""
}
func (x *LsLinkDescriptor) GetNeighborAddrIpv6() string {
if x != nil {
return x.NeighborAddrIpv6
}
return ""
}
type LsPrefixDescriptor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IpReachability []string `protobuf:"bytes,1,rep,name=ip_reachability,json=ipReachability,proto3" json:"ip_reachability,omitempty"`
OspfRouteType LsOspfRouteType `protobuf:"varint,2,opt,name=ospf_route_type,json=ospfRouteType,proto3,enum=apipb.LsOspfRouteType" json:"ospf_route_type,omitempty"`
}
func (x *LsPrefixDescriptor) Reset() {
*x = LsPrefixDescriptor{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsPrefixDescriptor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsPrefixDescriptor) ProtoMessage() {}
func (x *LsPrefixDescriptor) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[36]
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)
}
// Deprecated: Use LsPrefixDescriptor.ProtoReflect.Descriptor instead.
func (*LsPrefixDescriptor) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{36}
}
func (x *LsPrefixDescriptor) GetIpReachability() []string {
if x != nil {
return x.IpReachability
}
return nil
}
func (x *LsPrefixDescriptor) GetOspfRouteType() LsOspfRouteType {
if x != nil {
return x.OspfRouteType
}
return LsOspfRouteType_LS_OSPF_ROUTE_TYPE_UNKNOWN
}
type LsNodeNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
}
func (x *LsNodeNLRI) Reset() {
*x = LsNodeNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsNodeNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsNodeNLRI) ProtoMessage() {}
func (x *LsNodeNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[37]
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)
}
// Deprecated: Use LsNodeNLRI.ProtoReflect.Descriptor instead.
func (*LsNodeNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{37}
}
func (x *LsNodeNLRI) GetLocalNode() *LsNodeDescriptor {
if x != nil {
return x.LocalNode
}
return nil
}
type LsLinkNLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
RemoteNode *LsNodeDescriptor `protobuf:"bytes,2,opt,name=remote_node,json=remoteNode,proto3" json:"remote_node,omitempty"`
LinkDescriptor *LsLinkDescriptor `protobuf:"bytes,3,opt,name=link_descriptor,json=linkDescriptor,proto3" json:"link_descriptor,omitempty"`
}
func (x *LsLinkNLRI) Reset() {
*x = LsLinkNLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsLinkNLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsLinkNLRI) ProtoMessage() {}
func (x *LsLinkNLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[38]
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)
}
// Deprecated: Use LsLinkNLRI.ProtoReflect.Descriptor instead.
func (*LsLinkNLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{38}
}
func (x *LsLinkNLRI) GetLocalNode() *LsNodeDescriptor {
if x != nil {
return x.LocalNode
}
return nil
}
func (x *LsLinkNLRI) GetRemoteNode() *LsNodeDescriptor {
if x != nil {
return x.RemoteNode
}
return nil
}
func (x *LsLinkNLRI) GetLinkDescriptor() *LsLinkDescriptor {
if x != nil {
return x.LinkDescriptor
}
return nil
}
type LsPrefixV4NLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
PrefixDescriptor *LsPrefixDescriptor `protobuf:"bytes,2,opt,name=prefix_descriptor,json=prefixDescriptor,proto3" json:"prefix_descriptor,omitempty"`
}
func (x *LsPrefixV4NLRI) Reset() {
*x = LsPrefixV4NLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsPrefixV4NLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsPrefixV4NLRI) ProtoMessage() {}
func (x *LsPrefixV4NLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[39]
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)
}
// Deprecated: Use LsPrefixV4NLRI.ProtoReflect.Descriptor instead.
func (*LsPrefixV4NLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{39}
}
func (x *LsPrefixV4NLRI) GetLocalNode() *LsNodeDescriptor {
if x != nil {
return x.LocalNode
}
return nil
}
func (x *LsPrefixV4NLRI) GetPrefixDescriptor() *LsPrefixDescriptor {
if x != nil {
return x.PrefixDescriptor
}
return nil
}
type LsPrefixV6NLRI struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
PrefixDescriptor *LsPrefixDescriptor `protobuf:"bytes,2,opt,name=prefix_descriptor,json=prefixDescriptor,proto3" json:"prefix_descriptor,omitempty"`
}
func (x *LsPrefixV6NLRI) Reset() {
*x = LsPrefixV6NLRI{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsPrefixV6NLRI) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsPrefixV6NLRI) ProtoMessage() {}
func (x *LsPrefixV6NLRI) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[40]
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)
}
// Deprecated: Use LsPrefixV6NLRI.ProtoReflect.Descriptor instead.
func (*LsPrefixV6NLRI) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{40}
}
func (x *LsPrefixV6NLRI) GetLocalNode() *LsNodeDescriptor {
if x != nil {
return x.LocalNode
}
return nil
}
func (x *LsPrefixV6NLRI) GetPrefixDescriptor() *LsPrefixDescriptor {
if x != nil {
return x.PrefixDescriptor
}
return nil
}
// LsAddrPrefix represents the NLRI for:
// - AFI=16388, SAFI=71
type LsAddrPrefix struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type LsNLRIType `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.LsNLRIType" json:"type,omitempty"`
// One of:
// - LsNodeNLRI
// - LsLinkNLRI
// - LsPrefixV4NLRI
// - LsPrefixV6NLRI
Nlri *anypb.Any `protobuf:"bytes,2,opt,name=nlri,proto3" json:"nlri,omitempty"`
Length uint32 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"`
ProtocolId LsProtocolID `protobuf:"varint,4,opt,name=protocol_id,json=protocolId,proto3,enum=apipb.LsProtocolID" json:"protocol_id,omitempty"`
Identifier uint64 `protobuf:"varint,5,opt,name=identifier,proto3" json:"identifier,omitempty"`
}
func (x *LsAddrPrefix) Reset() {
*x = LsAddrPrefix{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsAddrPrefix) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsAddrPrefix) ProtoMessage() {}
func (x *LsAddrPrefix) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[41]
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)
}
// Deprecated: Use LsAddrPrefix.ProtoReflect.Descriptor instead.
func (*LsAddrPrefix) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{41}
}
func (x *LsAddrPrefix) GetType() LsNLRIType {
if x != nil {
return x.Type
}
return LsNLRIType_LS_NLRI_UNKNOWN
}
func (x *LsAddrPrefix) GetNlri() *anypb.Any {
if x != nil {
return x.Nlri
}
return nil
}
func (x *LsAddrPrefix) GetLength() uint32 {
if x != nil {
return x.Length
}
return 0
}
func (x *LsAddrPrefix) GetProtocolId() LsProtocolID {
if x != nil {
return x.ProtocolId
}
return LsProtocolID_LS_PROTOCOL_UNKNOWN
}
func (x *LsAddrPrefix) GetIdentifier() uint64 {
if x != nil {
return x.Identifier
}
return 0
}
type MUPInterworkSegmentDiscoveryRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
}
func (x *MUPInterworkSegmentDiscoveryRoute) Reset() {
*x = MUPInterworkSegmentDiscoveryRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MUPInterworkSegmentDiscoveryRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MUPInterworkSegmentDiscoveryRoute) ProtoMessage() {}
func (x *MUPInterworkSegmentDiscoveryRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[42]
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)
}
// Deprecated: Use MUPInterworkSegmentDiscoveryRoute.ProtoReflect.Descriptor instead.
func (*MUPInterworkSegmentDiscoveryRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{42}
}
func (x *MUPInterworkSegmentDiscoveryRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *MUPInterworkSegmentDiscoveryRoute) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
type MUPDirectSegmentDiscoveryRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
}
func (x *MUPDirectSegmentDiscoveryRoute) Reset() {
*x = MUPDirectSegmentDiscoveryRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MUPDirectSegmentDiscoveryRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MUPDirectSegmentDiscoveryRoute) ProtoMessage() {}
func (x *MUPDirectSegmentDiscoveryRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[43]
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)
}
// Deprecated: Use MUPDirectSegmentDiscoveryRoute.ProtoReflect.Descriptor instead.
func (*MUPDirectSegmentDiscoveryRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{43}
}
func (x *MUPDirectSegmentDiscoveryRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *MUPDirectSegmentDiscoveryRoute) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type MUPType1SessionTransformedRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
// Deprecated: Do not use.
PrefixLength uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3" json:"prefix_length,omitempty"`
Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
Teid uint32 `protobuf:"varint,4,opt,name=teid,proto3" json:"teid,omitempty"`
Qfi uint32 `protobuf:"varint,5,opt,name=qfi,proto3" json:"qfi,omitempty"`
EndpointAddressLength uint32 `protobuf:"varint,6,opt,name=endpoint_address_length,json=endpointAddressLength,proto3" json:"endpoint_address_length,omitempty"`
EndpointAddress string `protobuf:"bytes,7,opt,name=endpoint_address,json=endpointAddress,proto3" json:"endpoint_address,omitempty"`
}
func (x *MUPType1SessionTransformedRoute) Reset() {
*x = MUPType1SessionTransformedRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MUPType1SessionTransformedRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MUPType1SessionTransformedRoute) ProtoMessage() {}
func (x *MUPType1SessionTransformedRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[44]
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)
}
// Deprecated: Use MUPType1SessionTransformedRoute.ProtoReflect.Descriptor instead.
func (*MUPType1SessionTransformedRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{44}
}
func (x *MUPType1SessionTransformedRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
// Deprecated: Do not use.
func (x *MUPType1SessionTransformedRoute) GetPrefixLength() uint32 {
if x != nil {
return x.PrefixLength
}
return 0
}
func (x *MUPType1SessionTransformedRoute) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *MUPType1SessionTransformedRoute) GetTeid() uint32 {
if x != nil {
return x.Teid
}
return 0
}
func (x *MUPType1SessionTransformedRoute) GetQfi() uint32 {
if x != nil {
return x.Qfi
}
return 0
}
func (x *MUPType1SessionTransformedRoute) GetEndpointAddressLength() uint32 {
if x != nil {
return x.EndpointAddressLength
}
return 0
}
func (x *MUPType1SessionTransformedRoute) GetEndpointAddress() string {
if x != nil {
return x.EndpointAddress
}
return ""
}
type MUPType2SessionTransformedRoute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One of:
// - RouteDistinguisherTwoOctetASN
// - RouteDistinguisherIPAddress
// - RouteDistinguisherFourOctetASN
Rd *anypb.Any `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
EndpointAddressLength uint32 `protobuf:"varint,2,opt,name=endpoint_address_length,json=endpointAddressLength,proto3" json:"endpoint_address_length,omitempty"`
EndpointAddress string `protobuf:"bytes,3,opt,name=endpoint_address,json=endpointAddress,proto3" json:"endpoint_address,omitempty"`
Teid uint32 `protobuf:"varint,4,opt,name=teid,proto3" json:"teid,omitempty"`
}
func (x *MUPType2SessionTransformedRoute) Reset() {
*x = MUPType2SessionTransformedRoute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MUPType2SessionTransformedRoute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MUPType2SessionTransformedRoute) ProtoMessage() {}
func (x *MUPType2SessionTransformedRoute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[45]
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)
}
// Deprecated: Use MUPType2SessionTransformedRoute.ProtoReflect.Descriptor instead.
func (*MUPType2SessionTransformedRoute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{45}
}
func (x *MUPType2SessionTransformedRoute) GetRd() *anypb.Any {
if x != nil {
return x.Rd
}
return nil
}
func (x *MUPType2SessionTransformedRoute) GetEndpointAddressLength() uint32 {
if x != nil {
return x.EndpointAddressLength
}
return 0
}
func (x *MUPType2SessionTransformedRoute) GetEndpointAddress() string {
if x != nil {
return x.EndpointAddress
}
return ""
}
func (x *MUPType2SessionTransformedRoute) GetTeid() uint32 {
if x != nil {
return x.Teid
}
return 0
}
type MpReachNLRIAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Family *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
NextHops []string `protobuf:"bytes,2,rep,name=next_hops,json=nextHops,proto3" json:"next_hops,omitempty"`
// Each NLRI must be one of:
// - IPAddressPrefix
// - LabeledIPAddressPrefix
// - EncapsulationNLRI
// - EVPNEthernetAutoDiscoveryRoute
// - EVPNMACIPAdvertisementRoute
// - EVPNInclusiveMulticastEthernetTagRoute
// - EVPNEthernetSegmentRoute
// - EVPNIPPrefixRoute
// - EVPNIPMSIRoute
// - LabeledVPNIPAddressPrefix
// - RouteTargetMembershipNLRI
// - FlowSpecNLRI
// - VPNFlowSpecNLRI
// - OpaqueNLRI
// - LsAddrPrefix
// - SR Policy NLRI
// - MUPInterworkSegmentDiscoveryRoute
// - MUPDirectSegmentDiscoveryRoute
// - MUPType1SessionTransformedRoute
// - MUPType2SessionTransformedRoute
Nlris []*anypb.Any `protobuf:"bytes,3,rep,name=nlris,proto3" json:"nlris,omitempty"`
}
func (x *MpReachNLRIAttribute) Reset() {
*x = MpReachNLRIAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MpReachNLRIAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MpReachNLRIAttribute) ProtoMessage() {}
func (x *MpReachNLRIAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[46]
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)
}
// Deprecated: Use MpReachNLRIAttribute.ProtoReflect.Descriptor instead.
func (*MpReachNLRIAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{46}
}
func (x *MpReachNLRIAttribute) GetFamily() *Family {
if x != nil {
return x.Family
}
return nil
}
func (x *MpReachNLRIAttribute) GetNextHops() []string {
if x != nil {
return x.NextHops
}
return nil
}
func (x *MpReachNLRIAttribute) GetNlris() []*anypb.Any {
if x != nil {
return x.Nlris
}
return nil
}
type MpUnreachNLRIAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Family *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
// The same as NLRI field of MpReachNLRIAttribute
Nlris []*anypb.Any `protobuf:"bytes,3,rep,name=nlris,proto3" json:"nlris,omitempty"`
}
func (x *MpUnreachNLRIAttribute) Reset() {
*x = MpUnreachNLRIAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MpUnreachNLRIAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MpUnreachNLRIAttribute) ProtoMessage() {}
func (x *MpUnreachNLRIAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[47]
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)
}
// Deprecated: Use MpUnreachNLRIAttribute.ProtoReflect.Descriptor instead.
func (*MpUnreachNLRIAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{47}
}
func (x *MpUnreachNLRIAttribute) GetFamily() *Family {
if x != nil {
return x.Family
}
return nil
}
func (x *MpUnreachNLRIAttribute) GetNlris() []*anypb.Any {
if x != nil {
return x.Nlris
}
return nil
}
type TwoOctetAsSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
Asn uint32 `protobuf:"varint,3,opt,name=asn,proto3" json:"asn,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *TwoOctetAsSpecificExtended) Reset() {
*x = TwoOctetAsSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TwoOctetAsSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TwoOctetAsSpecificExtended) ProtoMessage() {}
func (x *TwoOctetAsSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[48]
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)
}
// Deprecated: Use TwoOctetAsSpecificExtended.ProtoReflect.Descriptor instead.
func (*TwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{48}
}
func (x *TwoOctetAsSpecificExtended) GetIsTransitive() bool {
if x != nil {
return x.IsTransitive
}
return false
}
func (x *TwoOctetAsSpecificExtended) GetSubType() uint32 {
if x != nil {
return x.SubType
}
return 0
}
func (x *TwoOctetAsSpecificExtended) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *TwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type IPv4AddressSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *IPv4AddressSpecificExtended) Reset() {
*x = IPv4AddressSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IPv4AddressSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IPv4AddressSpecificExtended) ProtoMessage() {}
func (x *IPv4AddressSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[49]
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)
}
// Deprecated: Use IPv4AddressSpecificExtended.ProtoReflect.Descriptor instead.
func (*IPv4AddressSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{49}
}
func (x *IPv4AddressSpecificExtended) GetIsTransitive() bool {
if x != nil {
return x.IsTransitive
}
return false
}
func (x *IPv4AddressSpecificExtended) GetSubType() uint32 {
if x != nil {
return x.SubType
}
return 0
}
func (x *IPv4AddressSpecificExtended) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *IPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type FourOctetAsSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
Asn uint32 `protobuf:"varint,3,opt,name=asn,proto3" json:"asn,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *FourOctetAsSpecificExtended) Reset() {
*x = FourOctetAsSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FourOctetAsSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FourOctetAsSpecificExtended) ProtoMessage() {}
func (x *FourOctetAsSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[50]
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)
}
// Deprecated: Use FourOctetAsSpecificExtended.ProtoReflect.Descriptor instead.
func (*FourOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{50}
}
func (x *FourOctetAsSpecificExtended) GetIsTransitive() bool {
if x != nil {
return x.IsTransitive
}
return false
}
func (x *FourOctetAsSpecificExtended) GetSubType() uint32 {
if x != nil {
return x.SubType
}
return 0
}
func (x *FourOctetAsSpecificExtended) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *FourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type LinkBandwidthExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
Bandwidth float32 `protobuf:"fixed32,2,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
}
func (x *LinkBandwidthExtended) Reset() {
*x = LinkBandwidthExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LinkBandwidthExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LinkBandwidthExtended) ProtoMessage() {}
func (x *LinkBandwidthExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[51]
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)
}
// Deprecated: Use LinkBandwidthExtended.ProtoReflect.Descriptor instead.
func (*LinkBandwidthExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{51}
}
func (x *LinkBandwidthExtended) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *LinkBandwidthExtended) GetBandwidth() float32 {
if x != nil {
return x.Bandwidth
}
return 0
}
type ValidationExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
State uint32 `protobuf:"varint,1,opt,name=state,proto3" json:"state,omitempty"`
}
func (x *ValidationExtended) Reset() {
*x = ValidationExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ValidationExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ValidationExtended) ProtoMessage() {}
func (x *ValidationExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[52]
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)
}
// Deprecated: Use ValidationExtended.ProtoReflect.Descriptor instead.
func (*ValidationExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{52}
}
func (x *ValidationExtended) GetState() uint32 {
if x != nil {
return x.State
}
return 0
}
type ColorExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Color uint32 `protobuf:"varint,1,opt,name=color,proto3" json:"color,omitempty"`
}
func (x *ColorExtended) Reset() {
*x = ColorExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ColorExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ColorExtended) ProtoMessage() {}
func (x *ColorExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[53]
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)
}
// Deprecated: Use ColorExtended.ProtoReflect.Descriptor instead.
func (*ColorExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{53}
}
func (x *ColorExtended) GetColor() uint32 {
if x != nil {
return x.Color
}
return 0
}
type EncapExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TunnelType uint32 `protobuf:"varint,1,opt,name=tunnel_type,json=tunnelType,proto3" json:"tunnel_type,omitempty"`
}
func (x *EncapExtended) Reset() {
*x = EncapExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EncapExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EncapExtended) ProtoMessage() {}
func (x *EncapExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[54]
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)
}
// Deprecated: Use EncapExtended.ProtoReflect.Descriptor instead.
func (*EncapExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{54}
}
func (x *EncapExtended) GetTunnelType() uint32 {
if x != nil {
return x.TunnelType
}
return 0
}
type DefaultGatewayExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *DefaultGatewayExtended) Reset() {
*x = DefaultGatewayExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DefaultGatewayExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DefaultGatewayExtended) ProtoMessage() {}
func (x *DefaultGatewayExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[55]
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)
}
// Deprecated: Use DefaultGatewayExtended.ProtoReflect.Descriptor instead.
func (*DefaultGatewayExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{55}
}
type OpaqueExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *OpaqueExtended) Reset() {
*x = OpaqueExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OpaqueExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OpaqueExtended) ProtoMessage() {}
func (x *OpaqueExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[56]
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)
}
// Deprecated: Use OpaqueExtended.ProtoReflect.Descriptor instead.
func (*OpaqueExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{56}
}
func (x *OpaqueExtended) GetIsTransitive() bool {
if x != nil {
return x.IsTransitive
}
return false
}
func (x *OpaqueExtended) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
type ESILabelExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsSingleActive bool `protobuf:"varint,1,opt,name=is_single_active,json=isSingleActive,proto3" json:"is_single_active,omitempty"`
Label uint32 `protobuf:"varint,2,opt,name=label,proto3" json:"label,omitempty"`
}
func (x *ESILabelExtended) Reset() {
*x = ESILabelExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ESILabelExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ESILabelExtended) ProtoMessage() {}
func (x *ESILabelExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[57]
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)
}
// Deprecated: Use ESILabelExtended.ProtoReflect.Descriptor instead.
func (*ESILabelExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{57}
}
func (x *ESILabelExtended) GetIsSingleActive() bool {
if x != nil {
return x.IsSingleActive
}
return false
}
func (x *ESILabelExtended) GetLabel() uint32 {
if x != nil {
return x.Label
}
return 0
}
type ESImportRouteTarget struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
EsImport string `protobuf:"bytes,1,opt,name=es_import,json=esImport,proto3" json:"es_import,omitempty"`
}
func (x *ESImportRouteTarget) Reset() {
*x = ESImportRouteTarget{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ESImportRouteTarget) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ESImportRouteTarget) ProtoMessage() {}
func (x *ESImportRouteTarget) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[58]
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)
}
// Deprecated: Use ESImportRouteTarget.ProtoReflect.Descriptor instead.
func (*ESImportRouteTarget) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{58}
}
func (x *ESImportRouteTarget) GetEsImport() string {
if x != nil {
return x.EsImport
}
return ""
}
type MacMobilityExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsSticky bool `protobuf:"varint,1,opt,name=is_sticky,json=isSticky,proto3" json:"is_sticky,omitempty"`
SequenceNum uint32 `protobuf:"varint,2,opt,name=sequence_num,json=sequenceNum,proto3" json:"sequence_num,omitempty"`
}
func (x *MacMobilityExtended) Reset() {
*x = MacMobilityExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[59]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MacMobilityExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MacMobilityExtended) ProtoMessage() {}
func (x *MacMobilityExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[59]
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)
}
// Deprecated: Use MacMobilityExtended.ProtoReflect.Descriptor instead.
func (*MacMobilityExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{59}
}
func (x *MacMobilityExtended) GetIsSticky() bool {
if x != nil {
return x.IsSticky
}
return false
}
func (x *MacMobilityExtended) GetSequenceNum() uint32 {
if x != nil {
return x.SequenceNum
}
return 0
}
type RouterMacExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Mac string `protobuf:"bytes,1,opt,name=mac,proto3" json:"mac,omitempty"`
}
func (x *RouterMacExtended) Reset() {
*x = RouterMacExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouterMacExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouterMacExtended) ProtoMessage() {}
func (x *RouterMacExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[60]
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)
}
// Deprecated: Use RouterMacExtended.ProtoReflect.Descriptor instead.
func (*RouterMacExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{60}
}
func (x *RouterMacExtended) GetMac() string {
if x != nil {
return x.Mac
}
return ""
}
type TrafficRateExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
Rate float32 `protobuf:"fixed32,2,opt,name=rate,proto3" json:"rate,omitempty"`
}
func (x *TrafficRateExtended) Reset() {
*x = TrafficRateExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[61]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrafficRateExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrafficRateExtended) ProtoMessage() {}
func (x *TrafficRateExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[61]
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)
}
// Deprecated: Use TrafficRateExtended.ProtoReflect.Descriptor instead.
func (*TrafficRateExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{61}
}
func (x *TrafficRateExtended) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *TrafficRateExtended) GetRate() float32 {
if x != nil {
return x.Rate
}
return 0
}
type TrafficActionExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Terminal bool `protobuf:"varint,1,opt,name=terminal,proto3" json:"terminal,omitempty"`
Sample bool `protobuf:"varint,2,opt,name=sample,proto3" json:"sample,omitempty"`
}
func (x *TrafficActionExtended) Reset() {
*x = TrafficActionExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[62]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrafficActionExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrafficActionExtended) ProtoMessage() {}
func (x *TrafficActionExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[62]
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)
}
// Deprecated: Use TrafficActionExtended.ProtoReflect.Descriptor instead.
func (*TrafficActionExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{62}
}
func (x *TrafficActionExtended) GetTerminal() bool {
if x != nil {
return x.Terminal
}
return false
}
func (x *TrafficActionExtended) GetSample() bool {
if x != nil {
return x.Sample
}
return false
}
type RedirectTwoOctetAsSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *RedirectTwoOctetAsSpecificExtended) Reset() {
*x = RedirectTwoOctetAsSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[63]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RedirectTwoOctetAsSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RedirectTwoOctetAsSpecificExtended) ProtoMessage() {}
func (x *RedirectTwoOctetAsSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[63]
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)
}
// Deprecated: Use RedirectTwoOctetAsSpecificExtended.ProtoReflect.Descriptor instead.
func (*RedirectTwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{63}
}
func (x *RedirectTwoOctetAsSpecificExtended) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *RedirectTwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type RedirectIPv4AddressSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *RedirectIPv4AddressSpecificExtended) Reset() {
*x = RedirectIPv4AddressSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RedirectIPv4AddressSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RedirectIPv4AddressSpecificExtended) ProtoMessage() {}
func (x *RedirectIPv4AddressSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[64]
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)
}
// Deprecated: Use RedirectIPv4AddressSpecificExtended.ProtoReflect.Descriptor instead.
func (*RedirectIPv4AddressSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{64}
}
func (x *RedirectIPv4AddressSpecificExtended) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *RedirectIPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type RedirectFourOctetAsSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *RedirectFourOctetAsSpecificExtended) Reset() {
*x = RedirectFourOctetAsSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[65]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RedirectFourOctetAsSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RedirectFourOctetAsSpecificExtended) ProtoMessage() {}
func (x *RedirectFourOctetAsSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[65]
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)
}
// Deprecated: Use RedirectFourOctetAsSpecificExtended.ProtoReflect.Descriptor instead.
func (*RedirectFourOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{65}
}
func (x *RedirectFourOctetAsSpecificExtended) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *RedirectFourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type TrafficRemarkExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Dscp uint32 `protobuf:"varint,1,opt,name=dscp,proto3" json:"dscp,omitempty"`
}
func (x *TrafficRemarkExtended) Reset() {
*x = TrafficRemarkExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrafficRemarkExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrafficRemarkExtended) ProtoMessage() {}
func (x *TrafficRemarkExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[66]
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)
}
// Deprecated: Use TrafficRemarkExtended.ProtoReflect.Descriptor instead.
func (*TrafficRemarkExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{66}
}
func (x *TrafficRemarkExtended) GetDscp() uint32 {
if x != nil {
return x.Dscp
}
return 0
}
type MUPExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SubType uint32 `protobuf:"varint,1,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
SegmentId2 uint32 `protobuf:"varint,2,opt,name=segment_id2,json=segmentId2,proto3" json:"segment_id2,omitempty"`
SegmentId4 uint32 `protobuf:"varint,3,opt,name=segment_id4,json=segmentId4,proto3" json:"segment_id4,omitempty"`
}
func (x *MUPExtended) Reset() {
*x = MUPExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[67]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MUPExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MUPExtended) ProtoMessage() {}
func (x *MUPExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[67]
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)
}
// Deprecated: Use MUPExtended.ProtoReflect.Descriptor instead.
func (*MUPExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{67}
}
func (x *MUPExtended) GetSubType() uint32 {
if x != nil {
return x.SubType
}
return 0
}
func (x *MUPExtended) GetSegmentId2() uint32 {
if x != nil {
return x.SegmentId2
}
return 0
}
func (x *MUPExtended) GetSegmentId4() uint32 {
if x != nil {
return x.SegmentId4
}
return 0
}
type UnknownExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *UnknownExtended) Reset() {
*x = UnknownExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[68]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnknownExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnknownExtended) ProtoMessage() {}
func (x *UnknownExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[68]
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)
}
// Deprecated: Use UnknownExtended.ProtoReflect.Descriptor instead.
func (*UnknownExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{68}
}
func (x *UnknownExtended) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *UnknownExtended) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
type ExtendedCommunitiesAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Each Community must be one of:
// - TwoOctetAsSpecificExtended
// - IPv4AddressSpecificExtended
// - FourOctetAsSpecificExtended
// - OpaqueExtended
// - ESILabelExtended
// - MacMobilityExtended
// - RouterMacExtended
// - TrafficRateExtended
// - TrafficActionExtended
// - RedirectTwoOctetAsSpecificExtended
// - RedirectIPv4AddressSpecificExtended
// - RedirectFourOctetAsSpecificExtended
// - TrafficRemarkExtended
// - MUPExtended
// - UnknownExtended
Communities []*anypb.Any `protobuf:"bytes,1,rep,name=communities,proto3" json:"communities,omitempty"`
}
func (x *ExtendedCommunitiesAttribute) Reset() {
*x = ExtendedCommunitiesAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[69]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExtendedCommunitiesAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExtendedCommunitiesAttribute) ProtoMessage() {}
func (x *ExtendedCommunitiesAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[69]
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)
}
// Deprecated: Use ExtendedCommunitiesAttribute.ProtoReflect.Descriptor instead.
func (*ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{69}
}
func (x *ExtendedCommunitiesAttribute) GetCommunities() []*anypb.Any {
if x != nil {
return x.Communities
}
return nil
}
type As4PathAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Segments []*AsSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
}
func (x *As4PathAttribute) Reset() {
*x = As4PathAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[70]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *As4PathAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*As4PathAttribute) ProtoMessage() {}
func (x *As4PathAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[70]
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)
}
// Deprecated: Use As4PathAttribute.ProtoReflect.Descriptor instead.
func (*As4PathAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{70}
}
func (x *As4PathAttribute) GetSegments() []*AsSegment {
if x != nil {
return x.Segments
}
return nil
}
type As4AggregatorAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asn uint32 `protobuf:"varint,2,opt,name=asn,proto3" json:"asn,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
}
func (x *As4AggregatorAttribute) Reset() {
*x = As4AggregatorAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[71]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *As4AggregatorAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*As4AggregatorAttribute) ProtoMessage() {}
func (x *As4AggregatorAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[71]
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)
}
// Deprecated: Use As4AggregatorAttribute.ProtoReflect.Descriptor instead.
func (*As4AggregatorAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{71}
}
func (x *As4AggregatorAttribute) GetAsn() uint32 {
if x != nil {
return x.Asn
}
return 0
}
func (x *As4AggregatorAttribute) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type PmsiTunnelAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags uint32 `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`
Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
Label uint32 `protobuf:"varint,3,opt,name=label,proto3" json:"label,omitempty"`
Id []byte `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *PmsiTunnelAttribute) Reset() {
*x = PmsiTunnelAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[72]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PmsiTunnelAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PmsiTunnelAttribute) ProtoMessage() {}
func (x *PmsiTunnelAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[72]
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)
}
// Deprecated: Use PmsiTunnelAttribute.ProtoReflect.Descriptor instead.
func (*PmsiTunnelAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{72}
}
func (x *PmsiTunnelAttribute) GetFlags() uint32 {
if x != nil {
return x.Flags
}
return 0
}
func (x *PmsiTunnelAttribute) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *PmsiTunnelAttribute) GetLabel() uint32 {
if x != nil {
return x.Label
}
return 0
}
func (x *PmsiTunnelAttribute) GetId() []byte {
if x != nil {
return x.Id
}
return nil
}
type TunnelEncapSubTLVEncapsulation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Key uint32 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"`
Cookie []byte `protobuf:"bytes,2,opt,name=cookie,proto3" json:"cookie,omitempty"`
}
func (x *TunnelEncapSubTLVEncapsulation) Reset() {
*x = TunnelEncapSubTLVEncapsulation{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[73]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVEncapsulation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVEncapsulation) ProtoMessage() {}
func (x *TunnelEncapSubTLVEncapsulation) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[73]
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)
}
// Deprecated: Use TunnelEncapSubTLVEncapsulation.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVEncapsulation) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{73}
}
func (x *TunnelEncapSubTLVEncapsulation) GetKey() uint32 {
if x != nil {
return x.Key
}
return 0
}
func (x *TunnelEncapSubTLVEncapsulation) GetCookie() []byte {
if x != nil {
return x.Cookie
}
return nil
}
type TunnelEncapSubTLVProtocol struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Protocol uint32 `protobuf:"varint,1,opt,name=protocol,proto3" json:"protocol,omitempty"`
}
func (x *TunnelEncapSubTLVProtocol) Reset() {
*x = TunnelEncapSubTLVProtocol{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[74]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVProtocol) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVProtocol) ProtoMessage() {}
func (x *TunnelEncapSubTLVProtocol) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[74]
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)
}
// Deprecated: Use TunnelEncapSubTLVProtocol.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVProtocol) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{74}
}
func (x *TunnelEncapSubTLVProtocol) GetProtocol() uint32 {
if x != nil {
return x.Protocol
}
return 0
}
type TunnelEncapSubTLVColor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Color uint32 `protobuf:"varint,1,opt,name=color,proto3" json:"color,omitempty"`
}
func (x *TunnelEncapSubTLVColor) Reset() {
*x = TunnelEncapSubTLVColor{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[75]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVColor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVColor) ProtoMessage() {}
func (x *TunnelEncapSubTLVColor) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[75]
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)
}
// Deprecated: Use TunnelEncapSubTLVColor.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVColor) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{75}
}
func (x *TunnelEncapSubTLVColor) GetColor() uint32 {
if x != nil {
return x.Color
}
return 0
}
type TunnelEncapSubTLVSRPreference struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags uint32 `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`
Preference uint32 `protobuf:"varint,2,opt,name=preference,proto3" json:"preference,omitempty"`
}
func (x *TunnelEncapSubTLVSRPreference) Reset() {
*x = TunnelEncapSubTLVSRPreference{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[76]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVSRPreference) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVSRPreference) ProtoMessage() {}
func (x *TunnelEncapSubTLVSRPreference) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[76]
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)
}
// Deprecated: Use TunnelEncapSubTLVSRPreference.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVSRPreference) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{76}
}
func (x *TunnelEncapSubTLVSRPreference) GetFlags() uint32 {
if x != nil {
return x.Flags
}
return 0
}
func (x *TunnelEncapSubTLVSRPreference) GetPreference() uint32 {
if x != nil {
return x.Preference
}
return 0
}
type TunnelEncapSubTLVSRCandidatePathName struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CandidatePathName string `protobuf:"bytes,1,opt,name=candidate_path_name,json=candidatePathName,proto3" json:"candidate_path_name,omitempty"`
}
func (x *TunnelEncapSubTLVSRCandidatePathName) Reset() {
*x = TunnelEncapSubTLVSRCandidatePathName{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[77]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVSRCandidatePathName) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVSRCandidatePathName) ProtoMessage() {}
func (x *TunnelEncapSubTLVSRCandidatePathName) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[77]
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)
}
// Deprecated: Use TunnelEncapSubTLVSRCandidatePathName.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVSRCandidatePathName) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{77}
}
func (x *TunnelEncapSubTLVSRCandidatePathName) GetCandidatePathName() string {
if x != nil {
return x.CandidatePathName
}
return ""
}
type TunnelEncapSubTLVSRPriority struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Priority uint32 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty"`
}
func (x *TunnelEncapSubTLVSRPriority) Reset() {
*x = TunnelEncapSubTLVSRPriority{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[78]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVSRPriority) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVSRPriority) ProtoMessage() {}
func (x *TunnelEncapSubTLVSRPriority) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[78]
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)
}
// Deprecated: Use TunnelEncapSubTLVSRPriority.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVSRPriority) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{78}
}
func (x *TunnelEncapSubTLVSRPriority) GetPriority() uint32 {
if x != nil {
return x.Priority
}
return 0
}
type TunnelEncapSubTLVSRBindingSID struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// bsid must be one of:
// - SRBindingSID
// - SRv6BindingSID
Bsid *anypb.Any `protobuf:"bytes,1,opt,name=bsid,proto3" json:"bsid,omitempty"`
}
func (x *TunnelEncapSubTLVSRBindingSID) Reset() {
*x = TunnelEncapSubTLVSRBindingSID{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[79]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVSRBindingSID) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVSRBindingSID) ProtoMessage() {}
func (x *TunnelEncapSubTLVSRBindingSID) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[79]
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)
}
// Deprecated: Use TunnelEncapSubTLVSRBindingSID.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVSRBindingSID) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{79}
}
func (x *TunnelEncapSubTLVSRBindingSID) GetBsid() *anypb.Any {
if x != nil {
return x.Bsid
}
return nil
}
type SRBindingSID struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SFlag bool `protobuf:"varint,1,opt,name=s_flag,json=sFlag,proto3" json:"s_flag,omitempty"`
IFlag bool `protobuf:"varint,2,opt,name=i_flag,json=iFlag,proto3" json:"i_flag,omitempty"`
Sid []byte `protobuf:"bytes,3,opt,name=sid,proto3" json:"sid,omitempty"`
}
func (x *SRBindingSID) Reset() {
*x = SRBindingSID{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[80]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRBindingSID) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRBindingSID) ProtoMessage() {}
func (x *SRBindingSID) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[80]
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)
}
// Deprecated: Use SRBindingSID.ProtoReflect.Descriptor instead.
func (*SRBindingSID) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{80}
}
func (x *SRBindingSID) GetSFlag() bool {
if x != nil {
return x.SFlag
}
return false
}
func (x *SRBindingSID) GetIFlag() bool {
if x != nil {
return x.IFlag
}
return false
}
func (x *SRBindingSID) GetSid() []byte {
if x != nil {
return x.Sid
}
return nil
}
type SRv6EndPointBehavior struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Behavior SRv6Behavior `protobuf:"varint,1,opt,name=behavior,proto3,enum=apipb.SRv6Behavior" json:"behavior,omitempty"`
BlockLen uint32 `protobuf:"varint,2,opt,name=block_len,json=blockLen,proto3" json:"block_len,omitempty"`
NodeLen uint32 `protobuf:"varint,3,opt,name=node_len,json=nodeLen,proto3" json:"node_len,omitempty"`
FuncLen uint32 `protobuf:"varint,4,opt,name=func_len,json=funcLen,proto3" json:"func_len,omitempty"`
ArgLen uint32 `protobuf:"varint,5,opt,name=arg_len,json=argLen,proto3" json:"arg_len,omitempty"`
}
func (x *SRv6EndPointBehavior) Reset() {
*x = SRv6EndPointBehavior{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[81]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6EndPointBehavior) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6EndPointBehavior) ProtoMessage() {}
func (x *SRv6EndPointBehavior) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[81]
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)
}
// Deprecated: Use SRv6EndPointBehavior.ProtoReflect.Descriptor instead.
func (*SRv6EndPointBehavior) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{81}
}
func (x *SRv6EndPointBehavior) GetBehavior() SRv6Behavior {
if x != nil {
return x.Behavior
}
return SRv6Behavior_RESERVED
}
func (x *SRv6EndPointBehavior) GetBlockLen() uint32 {
if x != nil {
return x.BlockLen
}
return 0
}
func (x *SRv6EndPointBehavior) GetNodeLen() uint32 {
if x != nil {
return x.NodeLen
}
return 0
}
func (x *SRv6EndPointBehavior) GetFuncLen() uint32 {
if x != nil {
return x.FuncLen
}
return 0
}
func (x *SRv6EndPointBehavior) GetArgLen() uint32 {
if x != nil {
return x.ArgLen
}
return 0
}
type SRv6BindingSID struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SFlag bool `protobuf:"varint,1,opt,name=s_flag,json=sFlag,proto3" json:"s_flag,omitempty"`
IFlag bool `protobuf:"varint,2,opt,name=i_flag,json=iFlag,proto3" json:"i_flag,omitempty"`
BFlag bool `protobuf:"varint,3,opt,name=b_flag,json=bFlag,proto3" json:"b_flag,omitempty"`
Sid []byte `protobuf:"bytes,4,opt,name=sid,proto3" json:"sid,omitempty"`
EndpointBehaviorStructure *SRv6EndPointBehavior `protobuf:"bytes,5,opt,name=endpoint_behavior_structure,json=endpointBehaviorStructure,proto3" json:"endpoint_behavior_structure,omitempty"`
}
func (x *SRv6BindingSID) Reset() {
*x = SRv6BindingSID{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[82]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6BindingSID) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6BindingSID) ProtoMessage() {}
func (x *SRv6BindingSID) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[82]
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)
}
// Deprecated: Use SRv6BindingSID.ProtoReflect.Descriptor instead.
func (*SRv6BindingSID) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{82}
}
func (x *SRv6BindingSID) GetSFlag() bool {
if x != nil {
return x.SFlag
}
return false
}
func (x *SRv6BindingSID) GetIFlag() bool {
if x != nil {
return x.IFlag
}
return false
}
func (x *SRv6BindingSID) GetBFlag() bool {
if x != nil {
return x.BFlag
}
return false
}
func (x *SRv6BindingSID) GetSid() []byte {
if x != nil {
return x.Sid
}
return nil
}
func (x *SRv6BindingSID) GetEndpointBehaviorStructure() *SRv6EndPointBehavior {
if x != nil {
return x.EndpointBehaviorStructure
}
return nil
}
type TunnelEncapSubTLVSRENLP struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags uint32 `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`
Enlp ENLPType `protobuf:"varint,2,opt,name=enlp,proto3,enum=apipb.ENLPType" json:"enlp,omitempty"`
}
func (x *TunnelEncapSubTLVSRENLP) Reset() {
*x = TunnelEncapSubTLVSRENLP{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[83]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVSRENLP) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVSRENLP) ProtoMessage() {}
func (x *TunnelEncapSubTLVSRENLP) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[83]
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)
}
// Deprecated: Use TunnelEncapSubTLVSRENLP.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVSRENLP) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{83}
}
func (x *TunnelEncapSubTLVSRENLP) GetFlags() uint32 {
if x != nil {
return x.Flags
}
return 0
}
func (x *TunnelEncapSubTLVSRENLP) GetEnlp() ENLPType {
if x != nil {
return x.Enlp
}
return ENLPType_Reserved
}
type SRWeight struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags uint32 `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`
Weight uint32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
}
func (x *SRWeight) Reset() {
*x = SRWeight{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[84]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRWeight) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRWeight) ProtoMessage() {}
func (x *SRWeight) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[84]
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)
}
// Deprecated: Use SRWeight.ProtoReflect.Descriptor instead.
func (*SRWeight) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{84}
}
func (x *SRWeight) GetFlags() uint32 {
if x != nil {
return x.Flags
}
return 0
}
func (x *SRWeight) GetWeight() uint32 {
if x != nil {
return x.Weight
}
return 0
}
type SegmentFlags struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
VFlag bool `protobuf:"varint,1,opt,name=v_flag,json=vFlag,proto3" json:"v_flag,omitempty"`
AFlag bool `protobuf:"varint,2,opt,name=a_flag,json=aFlag,proto3" json:"a_flag,omitempty"`
SFlag bool `protobuf:"varint,3,opt,name=s_flag,json=sFlag,proto3" json:"s_flag,omitempty"`
BFlag bool `protobuf:"varint,4,opt,name=b_flag,json=bFlag,proto3" json:"b_flag,omitempty"`
}
func (x *SegmentFlags) Reset() {
*x = SegmentFlags{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[85]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SegmentFlags) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SegmentFlags) ProtoMessage() {}
func (x *SegmentFlags) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[85]
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)
}
// Deprecated: Use SegmentFlags.ProtoReflect.Descriptor instead.
func (*SegmentFlags) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{85}
}
func (x *SegmentFlags) GetVFlag() bool {
if x != nil {
return x.VFlag
}
return false
}
func (x *SegmentFlags) GetAFlag() bool {
if x != nil {
return x.AFlag
}
return false
}
func (x *SegmentFlags) GetSFlag() bool {
if x != nil {
return x.SFlag
}
return false
}
func (x *SegmentFlags) GetBFlag() bool {
if x != nil {
return x.BFlag
}
return false
}
type SegmentTypeA struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags *SegmentFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"`
Label uint32 `protobuf:"varint,2,opt,name=label,proto3" json:"label,omitempty"`
}
func (x *SegmentTypeA) Reset() {
*x = SegmentTypeA{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[86]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SegmentTypeA) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SegmentTypeA) ProtoMessage() {}
func (x *SegmentTypeA) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[86]
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)
}
// Deprecated: Use SegmentTypeA.ProtoReflect.Descriptor instead.
func (*SegmentTypeA) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{86}
}
func (x *SegmentTypeA) GetFlags() *SegmentFlags {
if x != nil {
return x.Flags
}
return nil
}
func (x *SegmentTypeA) GetLabel() uint32 {
if x != nil {
return x.Label
}
return 0
}
type SegmentTypeB struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags *SegmentFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"`
Sid []byte `protobuf:"bytes,2,opt,name=sid,proto3" json:"sid,omitempty"`
EndpointBehaviorStructure *SRv6EndPointBehavior `protobuf:"bytes,3,opt,name=endpoint_behavior_structure,json=endpointBehaviorStructure,proto3" json:"endpoint_behavior_structure,omitempty"`
}
func (x *SegmentTypeB) Reset() {
*x = SegmentTypeB{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[87]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SegmentTypeB) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SegmentTypeB) ProtoMessage() {}
func (x *SegmentTypeB) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[87]
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)
}
// Deprecated: Use SegmentTypeB.ProtoReflect.Descriptor instead.
func (*SegmentTypeB) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{87}
}
func (x *SegmentTypeB) GetFlags() *SegmentFlags {
if x != nil {
return x.Flags
}
return nil
}
func (x *SegmentTypeB) GetSid() []byte {
if x != nil {
return x.Sid
}
return nil
}
func (x *SegmentTypeB) GetEndpointBehaviorStructure() *SRv6EndPointBehavior {
if x != nil {
return x.EndpointBehaviorStructure
}
return nil
}
type TunnelEncapSubTLVSRSegmentList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Weight *SRWeight `protobuf:"bytes,1,opt,name=weight,proto3" json:"weight,omitempty"`
// segments must be one of:
// - SegmentTypeA
// - SegmentTypeB
Segments []*anypb.Any `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"`
}
func (x *TunnelEncapSubTLVSRSegmentList) Reset() {
*x = TunnelEncapSubTLVSRSegmentList{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[88]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVSRSegmentList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVSRSegmentList) ProtoMessage() {}
func (x *TunnelEncapSubTLVSRSegmentList) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[88]
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)
}
// Deprecated: Use TunnelEncapSubTLVSRSegmentList.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVSRSegmentList) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{88}
}
func (x *TunnelEncapSubTLVSRSegmentList) GetWeight() *SRWeight {
if x != nil {
return x.Weight
}
return nil
}
func (x *TunnelEncapSubTLVSRSegmentList) GetSegments() []*anypb.Any {
if x != nil {
return x.Segments
}
return nil
}
type TunnelEncapSubTLVEgressEndpoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
}
func (x *TunnelEncapSubTLVEgressEndpoint) Reset() {
*x = TunnelEncapSubTLVEgressEndpoint{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[89]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVEgressEndpoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVEgressEndpoint) ProtoMessage() {}
func (x *TunnelEncapSubTLVEgressEndpoint) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[89]
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)
}
// Deprecated: Use TunnelEncapSubTLVEgressEndpoint.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVEgressEndpoint) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{89}
}
func (x *TunnelEncapSubTLVEgressEndpoint) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type TunnelEncapSubTLVUDPDestPort struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
}
func (x *TunnelEncapSubTLVUDPDestPort) Reset() {
*x = TunnelEncapSubTLVUDPDestPort{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[90]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVUDPDestPort) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVUDPDestPort) ProtoMessage() {}
func (x *TunnelEncapSubTLVUDPDestPort) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[90]
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)
}
// Deprecated: Use TunnelEncapSubTLVUDPDestPort.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVUDPDestPort) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{90}
}
func (x *TunnelEncapSubTLVUDPDestPort) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
type TunnelEncapSubTLVUnknown struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *TunnelEncapSubTLVUnknown) Reset() {
*x = TunnelEncapSubTLVUnknown{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[91]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapSubTLVUnknown) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapSubTLVUnknown) ProtoMessage() {}
func (x *TunnelEncapSubTLVUnknown) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[91]
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)
}
// Deprecated: Use TunnelEncapSubTLVUnknown.ProtoReflect.Descriptor instead.
func (*TunnelEncapSubTLVUnknown) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{91}
}
func (x *TunnelEncapSubTLVUnknown) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *TunnelEncapSubTLVUnknown) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
type TunnelEncapTLV struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
// Each TLV must be one of:
// - TunnelEncapSubTLVEncapsulation
// - TunnelEncapSubTLVProtocol
// - TunnelEncapSubTLVColor
// - TunnelEncapSubTLVSRPolicy
// - TunnelEncapSubTLVUnknown
Tlvs []*anypb.Any `protobuf:"bytes,2,rep,name=tlvs,proto3" json:"tlvs,omitempty"`
}
func (x *TunnelEncapTLV) Reset() {
*x = TunnelEncapTLV{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[92]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapTLV) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapTLV) ProtoMessage() {}
func (x *TunnelEncapTLV) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[92]
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)
}
// Deprecated: Use TunnelEncapTLV.ProtoReflect.Descriptor instead.
func (*TunnelEncapTLV) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{92}
}
func (x *TunnelEncapTLV) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *TunnelEncapTLV) GetTlvs() []*anypb.Any {
if x != nil {
return x.Tlvs
}
return nil
}
type TunnelEncapAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tlvs []*TunnelEncapTLV `protobuf:"bytes,1,rep,name=tlvs,proto3" json:"tlvs,omitempty"`
}
func (x *TunnelEncapAttribute) Reset() {
*x = TunnelEncapAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[93]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TunnelEncapAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TunnelEncapAttribute) ProtoMessage() {}
func (x *TunnelEncapAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[93]
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)
}
// Deprecated: Use TunnelEncapAttribute.ProtoReflect.Descriptor instead.
func (*TunnelEncapAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{93}
}
func (x *TunnelEncapAttribute) GetTlvs() []*TunnelEncapTLV {
if x != nil {
return x.Tlvs
}
return nil
}
type IPv6AddressSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *IPv6AddressSpecificExtended) Reset() {
*x = IPv6AddressSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[94]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IPv6AddressSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IPv6AddressSpecificExtended) ProtoMessage() {}
func (x *IPv6AddressSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[94]
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)
}
// Deprecated: Use IPv6AddressSpecificExtended.ProtoReflect.Descriptor instead.
func (*IPv6AddressSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{94}
}
func (x *IPv6AddressSpecificExtended) GetIsTransitive() bool {
if x != nil {
return x.IsTransitive
}
return false
}
func (x *IPv6AddressSpecificExtended) GetSubType() uint32 {
if x != nil {
return x.SubType
}
return 0
}
func (x *IPv6AddressSpecificExtended) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *IPv6AddressSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type RedirectIPv6AddressSpecificExtended struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
}
func (x *RedirectIPv6AddressSpecificExtended) Reset() {
*x = RedirectIPv6AddressSpecificExtended{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[95]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RedirectIPv6AddressSpecificExtended) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RedirectIPv6AddressSpecificExtended) ProtoMessage() {}
func (x *RedirectIPv6AddressSpecificExtended) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[95]
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)
}
// Deprecated: Use RedirectIPv6AddressSpecificExtended.ProtoReflect.Descriptor instead.
func (*RedirectIPv6AddressSpecificExtended) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{95}
}
func (x *RedirectIPv6AddressSpecificExtended) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *RedirectIPv6AddressSpecificExtended) GetLocalAdmin() uint32 {
if x != nil {
return x.LocalAdmin
}
return 0
}
type IP6ExtendedCommunitiesAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Each Community must be one of:
// - IPv6AddressSpecificExtended
// - RedirectIPv6AddressSpecificExtended
Communities []*anypb.Any `protobuf:"bytes,1,rep,name=communities,proto3" json:"communities,omitempty"`
}
func (x *IP6ExtendedCommunitiesAttribute) Reset() {
*x = IP6ExtendedCommunitiesAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[96]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IP6ExtendedCommunitiesAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IP6ExtendedCommunitiesAttribute) ProtoMessage() {}
func (x *IP6ExtendedCommunitiesAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[96]
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)
}
// Deprecated: Use IP6ExtendedCommunitiesAttribute.ProtoReflect.Descriptor instead.
func (*IP6ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{96}
}
func (x *IP6ExtendedCommunitiesAttribute) GetCommunities() []*anypb.Any {
if x != nil {
return x.Communities
}
return nil
}
type AigpTLVIGPMetric struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Metric uint64 `protobuf:"varint,1,opt,name=metric,proto3" json:"metric,omitempty"`
}
func (x *AigpTLVIGPMetric) Reset() {
*x = AigpTLVIGPMetric{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[97]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AigpTLVIGPMetric) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AigpTLVIGPMetric) ProtoMessage() {}
func (x *AigpTLVIGPMetric) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[97]
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)
}
// Deprecated: Use AigpTLVIGPMetric.ProtoReflect.Descriptor instead.
func (*AigpTLVIGPMetric) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{97}
}
func (x *AigpTLVIGPMetric) GetMetric() uint64 {
if x != nil {
return x.Metric
}
return 0
}
type AigpTLVUnknown struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *AigpTLVUnknown) Reset() {
*x = AigpTLVUnknown{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[98]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AigpTLVUnknown) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AigpTLVUnknown) ProtoMessage() {}
func (x *AigpTLVUnknown) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[98]
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)
}
// Deprecated: Use AigpTLVUnknown.ProtoReflect.Descriptor instead.
func (*AigpTLVUnknown) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{98}
}
func (x *AigpTLVUnknown) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *AigpTLVUnknown) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
type AigpAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Each TLV must be one of:
// - AigpTLVIGPMetric
// - AigpTLVUnknown
Tlvs []*anypb.Any `protobuf:"bytes,1,rep,name=tlvs,proto3" json:"tlvs,omitempty"`
}
func (x *AigpAttribute) Reset() {
*x = AigpAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[99]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AigpAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AigpAttribute) ProtoMessage() {}
func (x *AigpAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[99]
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)
}
// Deprecated: Use AigpAttribute.ProtoReflect.Descriptor instead.
func (*AigpAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{99}
}
func (x *AigpAttribute) GetTlvs() []*anypb.Any {
if x != nil {
return x.Tlvs
}
return nil
}
type LargeCommunity struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
GlobalAdmin uint32 `protobuf:"varint,1,opt,name=global_admin,json=globalAdmin,proto3" json:"global_admin,omitempty"`
LocalData1 uint32 `protobuf:"varint,2,opt,name=local_data1,json=localData1,proto3" json:"local_data1,omitempty"`
LocalData2 uint32 `protobuf:"varint,3,opt,name=local_data2,json=localData2,proto3" json:"local_data2,omitempty"`
}
func (x *LargeCommunity) Reset() {
*x = LargeCommunity{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[100]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LargeCommunity) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LargeCommunity) ProtoMessage() {}
func (x *LargeCommunity) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[100]
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)
}
// Deprecated: Use LargeCommunity.ProtoReflect.Descriptor instead.
func (*LargeCommunity) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{100}
}
func (x *LargeCommunity) GetGlobalAdmin() uint32 {
if x != nil {
return x.GlobalAdmin
}
return 0
}
func (x *LargeCommunity) GetLocalData1() uint32 {
if x != nil {
return x.LocalData1
}
return 0
}
func (x *LargeCommunity) GetLocalData2() uint32 {
if x != nil {
return x.LocalData2
}
return 0
}
type LargeCommunitiesAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Communities []*LargeCommunity `protobuf:"bytes,1,rep,name=communities,proto3" json:"communities,omitempty"`
}
func (x *LargeCommunitiesAttribute) Reset() {
*x = LargeCommunitiesAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[101]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LargeCommunitiesAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LargeCommunitiesAttribute) ProtoMessage() {}
func (x *LargeCommunitiesAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[101]
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)
}
// Deprecated: Use LargeCommunitiesAttribute.ProtoReflect.Descriptor instead.
func (*LargeCommunitiesAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{101}
}
func (x *LargeCommunitiesAttribute) GetCommunities() []*LargeCommunity {
if x != nil {
return x.Communities
}
return nil
}
type LsNodeFlags struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Overload bool `protobuf:"varint,1,opt,name=overload,proto3" json:"overload,omitempty"`
Attached bool `protobuf:"varint,2,opt,name=attached,proto3" json:"attached,omitempty"`
External bool `protobuf:"varint,3,opt,name=external,proto3" json:"external,omitempty"`
Abr bool `protobuf:"varint,4,opt,name=abr,proto3" json:"abr,omitempty"`
Router bool `protobuf:"varint,5,opt,name=router,proto3" json:"router,omitempty"`
V6 bool `protobuf:"varint,6,opt,name=v6,proto3" json:"v6,omitempty"`
}
func (x *LsNodeFlags) Reset() {
*x = LsNodeFlags{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[102]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsNodeFlags) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsNodeFlags) ProtoMessage() {}
func (x *LsNodeFlags) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[102]
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)
}
// Deprecated: Use LsNodeFlags.ProtoReflect.Descriptor instead.
func (*LsNodeFlags) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{102}
}
func (x *LsNodeFlags) GetOverload() bool {
if x != nil {
return x.Overload
}
return false
}
func (x *LsNodeFlags) GetAttached() bool {
if x != nil {
return x.Attached
}
return false
}
func (x *LsNodeFlags) GetExternal() bool {
if x != nil {
return x.External
}
return false
}
func (x *LsNodeFlags) GetAbr() bool {
if x != nil {
return x.Abr
}
return false
}
func (x *LsNodeFlags) GetRouter() bool {
if x != nil {
return x.Router
}
return false
}
func (x *LsNodeFlags) GetV6() bool {
if x != nil {
return x.V6
}
return false
}
type LsIGPFlags struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Down bool `protobuf:"varint,1,opt,name=down,proto3" json:"down,omitempty"`
NoUnicast bool `protobuf:"varint,2,opt,name=no_unicast,json=noUnicast,proto3" json:"no_unicast,omitempty"`
LocalAddress bool `protobuf:"varint,3,opt,name=local_address,json=localAddress,proto3" json:"local_address,omitempty"`
PropagateNssa bool `protobuf:"varint,4,opt,name=propagate_nssa,json=propagateNssa,proto3" json:"propagate_nssa,omitempty"`
}
func (x *LsIGPFlags) Reset() {
*x = LsIGPFlags{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[103]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsIGPFlags) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsIGPFlags) ProtoMessage() {}
func (x *LsIGPFlags) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[103]
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)
}
// Deprecated: Use LsIGPFlags.ProtoReflect.Descriptor instead.
func (*LsIGPFlags) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{103}
}
func (x *LsIGPFlags) GetDown() bool {
if x != nil {
return x.Down
}
return false
}
func (x *LsIGPFlags) GetNoUnicast() bool {
if x != nil {
return x.NoUnicast
}
return false
}
func (x *LsIGPFlags) GetLocalAddress() bool {
if x != nil {
return x.LocalAddress
}
return false
}
func (x *LsIGPFlags) GetPropagateNssa() bool {
if x != nil {
return x.PropagateNssa
}
return false
}
type LsSrRange struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Begin uint32 `protobuf:"varint,1,opt,name=begin,proto3" json:"begin,omitempty"`
End uint32 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
}
func (x *LsSrRange) Reset() {
*x = LsSrRange{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[104]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsSrRange) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsSrRange) ProtoMessage() {}
func (x *LsSrRange) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[104]
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)
}
// Deprecated: Use LsSrRange.ProtoReflect.Descriptor instead.
func (*LsSrRange) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{104}
}
func (x *LsSrRange) GetBegin() uint32 {
if x != nil {
return x.Begin
}
return 0
}
func (x *LsSrRange) GetEnd() uint32 {
if x != nil {
return x.End
}
return 0
}
type LsSrCapabilities struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ipv4Supported bool `protobuf:"varint,1,opt,name=ipv4_supported,json=ipv4Supported,proto3" json:"ipv4_supported,omitempty"`
Ipv6Supported bool `protobuf:"varint,2,opt,name=ipv6_supported,json=ipv6Supported,proto3" json:"ipv6_supported,omitempty"`
Ranges []*LsSrRange `protobuf:"bytes,3,rep,name=ranges,proto3" json:"ranges,omitempty"`
}
func (x *LsSrCapabilities) Reset() {
*x = LsSrCapabilities{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[105]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsSrCapabilities) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsSrCapabilities) ProtoMessage() {}
func (x *LsSrCapabilities) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[105]
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)
}
// Deprecated: Use LsSrCapabilities.ProtoReflect.Descriptor instead.
func (*LsSrCapabilities) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{105}
}
func (x *LsSrCapabilities) GetIpv4Supported() bool {
if x != nil {
return x.Ipv4Supported
}
return false
}
func (x *LsSrCapabilities) GetIpv6Supported() bool {
if x != nil {
return x.Ipv6Supported
}
return false
}
func (x *LsSrCapabilities) GetRanges() []*LsSrRange {
if x != nil {
return x.Ranges
}
return nil
}
type LsSrLocalBlock struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ranges []*LsSrRange `protobuf:"bytes,1,rep,name=ranges,proto3" json:"ranges,omitempty"`
}
func (x *LsSrLocalBlock) Reset() {
*x = LsSrLocalBlock{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[106]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsSrLocalBlock) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsSrLocalBlock) ProtoMessage() {}
func (x *LsSrLocalBlock) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[106]
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)
}
// Deprecated: Use LsSrLocalBlock.ProtoReflect.Descriptor instead.
func (*LsSrLocalBlock) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{106}
}
func (x *LsSrLocalBlock) GetRanges() []*LsSrRange {
if x != nil {
return x.Ranges
}
return nil
}
type LsAttributeNode struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Flags *LsNodeFlags `protobuf:"bytes,2,opt,name=flags,proto3" json:"flags,omitempty"`
LocalRouterId string `protobuf:"bytes,3,opt,name=local_router_id,json=localRouterId,proto3" json:"local_router_id,omitempty"`
LocalRouterIdV6 string `protobuf:"bytes,4,opt,name=local_router_id_v6,json=localRouterIdV6,proto3" json:"local_router_id_v6,omitempty"`
IsisArea []byte `protobuf:"bytes,5,opt,name=isis_area,json=isisArea,proto3" json:"isis_area,omitempty"`
Opaque []byte `protobuf:"bytes,6,opt,name=opaque,proto3" json:"opaque,omitempty"`
SrCapabilities *LsSrCapabilities `protobuf:"bytes,7,opt,name=sr_capabilities,json=srCapabilities,proto3" json:"sr_capabilities,omitempty"`
SrAlgorithms []byte `protobuf:"bytes,8,opt,name=sr_algorithms,json=srAlgorithms,proto3" json:"sr_algorithms,omitempty"`
SrLocalBlock *LsSrLocalBlock `protobuf:"bytes,9,opt,name=sr_local_block,json=srLocalBlock,proto3" json:"sr_local_block,omitempty"`
}
func (x *LsAttributeNode) Reset() {
*x = LsAttributeNode{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[107]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsAttributeNode) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsAttributeNode) ProtoMessage() {}
func (x *LsAttributeNode) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[107]
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)
}
// Deprecated: Use LsAttributeNode.ProtoReflect.Descriptor instead.
func (*LsAttributeNode) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{107}
}
func (x *LsAttributeNode) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *LsAttributeNode) GetFlags() *LsNodeFlags {
if x != nil {
return x.Flags
}
return nil
}
func (x *LsAttributeNode) GetLocalRouterId() string {
if x != nil {
return x.LocalRouterId
}
return ""
}
func (x *LsAttributeNode) GetLocalRouterIdV6() string {
if x != nil {
return x.LocalRouterIdV6
}
return ""
}
func (x *LsAttributeNode) GetIsisArea() []byte {
if x != nil {
return x.IsisArea
}
return nil
}
func (x *LsAttributeNode) GetOpaque() []byte {
if x != nil {
return x.Opaque
}
return nil
}
func (x *LsAttributeNode) GetSrCapabilities() *LsSrCapabilities {
if x != nil {
return x.SrCapabilities
}
return nil
}
func (x *LsAttributeNode) GetSrAlgorithms() []byte {
if x != nil {
return x.SrAlgorithms
}
return nil
}
func (x *LsAttributeNode) GetSrLocalBlock() *LsSrLocalBlock {
if x != nil {
return x.SrLocalBlock
}
return nil
}
type LsAttributeLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
LocalRouterId string `protobuf:"bytes,2,opt,name=local_router_id,json=localRouterId,proto3" json:"local_router_id,omitempty"`
LocalRouterIdV6 string `protobuf:"bytes,3,opt,name=local_router_id_v6,json=localRouterIdV6,proto3" json:"local_router_id_v6,omitempty"`
RemoteRouterId string `protobuf:"bytes,4,opt,name=remote_router_id,json=remoteRouterId,proto3" json:"remote_router_id,omitempty"`
RemoteRouterIdV6 string `protobuf:"bytes,5,opt,name=remote_router_id_v6,json=remoteRouterIdV6,proto3" json:"remote_router_id_v6,omitempty"`
AdminGroup uint32 `protobuf:"varint,6,opt,name=admin_group,json=adminGroup,proto3" json:"admin_group,omitempty"`
DefaultTeMetric uint32 `protobuf:"varint,7,opt,name=default_te_metric,json=defaultTeMetric,proto3" json:"default_te_metric,omitempty"`
IgpMetric uint32 `protobuf:"varint,8,opt,name=igp_metric,json=igpMetric,proto3" json:"igp_metric,omitempty"`
Opaque []byte `protobuf:"bytes,9,opt,name=opaque,proto3" json:"opaque,omitempty"`
Bandwidth float32 `protobuf:"fixed32,10,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
ReservableBandwidth float32 `protobuf:"fixed32,11,opt,name=reservable_bandwidth,json=reservableBandwidth,proto3" json:"reservable_bandwidth,omitempty"`
UnreservedBandwidth []float32 `protobuf:"fixed32,12,rep,packed,name=unreserved_bandwidth,json=unreservedBandwidth,proto3" json:"unreserved_bandwidth,omitempty"`
SrAdjacencySid uint32 `protobuf:"varint,13,opt,name=sr_adjacency_sid,json=srAdjacencySid,proto3" json:"sr_adjacency_sid,omitempty"`
Srlgs []uint32 `protobuf:"varint,14,rep,packed,name=srlgs,proto3" json:"srlgs,omitempty"`
}
func (x *LsAttributeLink) Reset() {
*x = LsAttributeLink{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[108]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsAttributeLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsAttributeLink) ProtoMessage() {}
func (x *LsAttributeLink) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[108]
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)
}
// Deprecated: Use LsAttributeLink.ProtoReflect.Descriptor instead.
func (*LsAttributeLink) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{108}
}
func (x *LsAttributeLink) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *LsAttributeLink) GetLocalRouterId() string {
if x != nil {
return x.LocalRouterId
}
return ""
}
func (x *LsAttributeLink) GetLocalRouterIdV6() string {
if x != nil {
return x.LocalRouterIdV6
}
return ""
}
func (x *LsAttributeLink) GetRemoteRouterId() string {
if x != nil {
return x.RemoteRouterId
}
return ""
}
func (x *LsAttributeLink) GetRemoteRouterIdV6() string {
if x != nil {
return x.RemoteRouterIdV6
}
return ""
}
func (x *LsAttributeLink) GetAdminGroup() uint32 {
if x != nil {
return x.AdminGroup
}
return 0
}
func (x *LsAttributeLink) GetDefaultTeMetric() uint32 {
if x != nil {
return x.DefaultTeMetric
}
return 0
}
func (x *LsAttributeLink) GetIgpMetric() uint32 {
if x != nil {
return x.IgpMetric
}
return 0
}
func (x *LsAttributeLink) GetOpaque() []byte {
if x != nil {
return x.Opaque
}
return nil
}
func (x *LsAttributeLink) GetBandwidth() float32 {
if x != nil {
return x.Bandwidth
}
return 0
}
func (x *LsAttributeLink) GetReservableBandwidth() float32 {
if x != nil {
return x.ReservableBandwidth
}
return 0
}
func (x *LsAttributeLink) GetUnreservedBandwidth() []float32 {
if x != nil {
return x.UnreservedBandwidth
}
return nil
}
func (x *LsAttributeLink) GetSrAdjacencySid() uint32 {
if x != nil {
return x.SrAdjacencySid
}
return 0
}
func (x *LsAttributeLink) GetSrlgs() []uint32 {
if x != nil {
return x.Srlgs
}
return nil
}
type LsAttributePrefix struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IgpFlags *LsIGPFlags `protobuf:"bytes,1,opt,name=igp_flags,json=igpFlags,proto3" json:"igp_flags,omitempty"`
Opaque []byte `protobuf:"bytes,2,opt,name=opaque,proto3" json:"opaque,omitempty"`
SrPrefixSid uint32 `protobuf:"varint,3,opt,name=sr_prefix_sid,json=srPrefixSid,proto3" json:"sr_prefix_sid,omitempty"`
}
func (x *LsAttributePrefix) Reset() {
*x = LsAttributePrefix{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[109]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsAttributePrefix) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsAttributePrefix) ProtoMessage() {}
func (x *LsAttributePrefix) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[109]
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)
}
// Deprecated: Use LsAttributePrefix.ProtoReflect.Descriptor instead.
func (*LsAttributePrefix) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{109}
}
func (x *LsAttributePrefix) GetIgpFlags() *LsIGPFlags {
if x != nil {
return x.IgpFlags
}
return nil
}
func (x *LsAttributePrefix) GetOpaque() []byte {
if x != nil {
return x.Opaque
}
return nil
}
func (x *LsAttributePrefix) GetSrPrefixSid() uint32 {
if x != nil {
return x.SrPrefixSid
}
return 0
}
type LsAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Node *LsAttributeNode `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
Link *LsAttributeLink `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"`
Prefix *LsAttributePrefix `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
}
func (x *LsAttribute) Reset() {
*x = LsAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[110]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LsAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LsAttribute) ProtoMessage() {}
func (x *LsAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[110]
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)
}
// Deprecated: Use LsAttribute.ProtoReflect.Descriptor instead.
func (*LsAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{110}
}
func (x *LsAttribute) GetNode() *LsAttributeNode {
if x != nil {
return x.Node
}
return nil
}
func (x *LsAttribute) GetLink() *LsAttributeLink {
if x != nil {
return x.Link
}
return nil
}
func (x *LsAttribute) GetPrefix() *LsAttributePrefix {
if x != nil {
return x.Prefix
}
return nil
}
type UnknownAttribute struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags uint32 `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`
Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *UnknownAttribute) Reset() {
*x = UnknownAttribute{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[111]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnknownAttribute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnknownAttribute) ProtoMessage() {}
func (x *UnknownAttribute) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[111]
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)
}
// Deprecated: Use UnknownAttribute.ProtoReflect.Descriptor instead.
func (*UnknownAttribute) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{111}
}
func (x *UnknownAttribute) GetFlags() uint32 {
if x != nil {
return x.Flags
}
return 0
}
func (x *UnknownAttribute) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *UnknownAttribute) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
// https://www.rfc-editor.org/rfc/rfc9252.html#section-3.2.1
type SRv6StructureSubSubTLV struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LocatorBlockLength uint32 `protobuf:"varint,1,opt,name=locator_block_length,json=locatorBlockLength,proto3" json:"locator_block_length,omitempty"`
LocatorNodeLength uint32 `protobuf:"varint,2,opt,name=locator_node_length,json=locatorNodeLength,proto3" json:"locator_node_length,omitempty"`
FunctionLength uint32 `protobuf:"varint,3,opt,name=function_length,json=functionLength,proto3" json:"function_length,omitempty"`
ArgumentLength uint32 `protobuf:"varint,4,opt,name=argument_length,json=argumentLength,proto3" json:"argument_length,omitempty"`
TranspositionLength uint32 `protobuf:"varint,5,opt,name=transposition_length,json=transpositionLength,proto3" json:"transposition_length,omitempty"`
TranspositionOffset uint32 `protobuf:"varint,6,opt,name=transposition_offset,json=transpositionOffset,proto3" json:"transposition_offset,omitempty"`
}
func (x *SRv6StructureSubSubTLV) Reset() {
*x = SRv6StructureSubSubTLV{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[112]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6StructureSubSubTLV) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6StructureSubSubTLV) ProtoMessage() {}
func (x *SRv6StructureSubSubTLV) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[112]
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)
}
// Deprecated: Use SRv6StructureSubSubTLV.ProtoReflect.Descriptor instead.
func (*SRv6StructureSubSubTLV) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{112}
}
func (x *SRv6StructureSubSubTLV) GetLocatorBlockLength() uint32 {
if x != nil {
return x.LocatorBlockLength
}
return 0
}
func (x *SRv6StructureSubSubTLV) GetLocatorNodeLength() uint32 {
if x != nil {
return x.LocatorNodeLength
}
return 0
}
func (x *SRv6StructureSubSubTLV) GetFunctionLength() uint32 {
if x != nil {
return x.FunctionLength
}
return 0
}
func (x *SRv6StructureSubSubTLV) GetArgumentLength() uint32 {
if x != nil {
return x.ArgumentLength
}
return 0
}
func (x *SRv6StructureSubSubTLV) GetTranspositionLength() uint32 {
if x != nil {
return x.TranspositionLength
}
return 0
}
func (x *SRv6StructureSubSubTLV) GetTranspositionOffset() uint32 {
if x != nil {
return x.TranspositionOffset
}
return 0
}
type SRv6SIDFlags struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Placeholder for future sid flags
Flag_1 bool `protobuf:"varint,1,opt,name=flag_1,json=flag1,proto3" json:"flag_1,omitempty"`
}
func (x *SRv6SIDFlags) Reset() {
*x = SRv6SIDFlags{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[113]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6SIDFlags) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6SIDFlags) ProtoMessage() {}
func (x *SRv6SIDFlags) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[113]
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)
}
// Deprecated: Use SRv6SIDFlags.ProtoReflect.Descriptor instead.
func (*SRv6SIDFlags) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{113}
}
func (x *SRv6SIDFlags) GetFlag_1() bool {
if x != nil {
return x.Flag_1
}
return false
}
type SRv6TLV struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tlv []*anypb.Any `protobuf:"bytes,1,rep,name=tlv,proto3" json:"tlv,omitempty"`
}
func (x *SRv6TLV) Reset() {
*x = SRv6TLV{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[114]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6TLV) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6TLV) ProtoMessage() {}
func (x *SRv6TLV) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[114]
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)
}
// Deprecated: Use SRv6TLV.ProtoReflect.Descriptor instead.
func (*SRv6TLV) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{114}
}
func (x *SRv6TLV) GetTlv() []*anypb.Any {
if x != nil {
return x.Tlv
}
return nil
}
// https://tools.ietf.org/html/draft-dawra-bess-srv6-services-02#section-2.1.1
type SRv6InformationSubTLV struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Sid []byte `protobuf:"bytes,1,opt,name=sid,proto3" json:"sid,omitempty"`
Flags *SRv6SIDFlags `protobuf:"bytes,2,opt,name=flags,proto3" json:"flags,omitempty"`
EndpointBehavior uint32 `protobuf:"varint,3,opt,name=endpoint_behavior,json=endpointBehavior,proto3" json:"endpoint_behavior,omitempty"`
// SRv6TLV is one of:
// - SRv6StructureSubSubTLV
SubSubTlvs map[uint32]*SRv6TLV `protobuf:"bytes,4,rep,name=sub_sub_tlvs,json=subSubTlvs,proto3" json:"sub_sub_tlvs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *SRv6InformationSubTLV) Reset() {
*x = SRv6InformationSubTLV{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[115]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6InformationSubTLV) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6InformationSubTLV) ProtoMessage() {}
func (x *SRv6InformationSubTLV) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[115]
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)
}
// Deprecated: Use SRv6InformationSubTLV.ProtoReflect.Descriptor instead.
func (*SRv6InformationSubTLV) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{115}
}
func (x *SRv6InformationSubTLV) GetSid() []byte {
if x != nil {
return x.Sid
}
return nil
}
func (x *SRv6InformationSubTLV) GetFlags() *SRv6SIDFlags {
if x != nil {
return x.Flags
}
return nil
}
func (x *SRv6InformationSubTLV) GetEndpointBehavior() uint32 {
if x != nil {
return x.EndpointBehavior
}
return 0
}
func (x *SRv6InformationSubTLV) GetSubSubTlvs() map[uint32]*SRv6TLV {
if x != nil {
return x.SubSubTlvs
}
return nil
}
// https://www.rfc-editor.org/rfc/rfc9252.html#section-2
type SRv6L3ServiceTLV struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// SRv6TLV is one of:
// - SRv6InformationSubTLV
SubTlvs map[uint32]*SRv6TLV `protobuf:"bytes,1,rep,name=sub_tlvs,json=subTlvs,proto3" json:"sub_tlvs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *SRv6L3ServiceTLV) Reset() {
*x = SRv6L3ServiceTLV{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[116]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6L3ServiceTLV) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6L3ServiceTLV) ProtoMessage() {}
func (x *SRv6L3ServiceTLV) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[116]
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)
}
// Deprecated: Use SRv6L3ServiceTLV.ProtoReflect.Descriptor instead.
func (*SRv6L3ServiceTLV) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{116}
}
func (x *SRv6L3ServiceTLV) GetSubTlvs() map[uint32]*SRv6TLV {
if x != nil {
return x.SubTlvs
}
return nil
}
// https://www.rfc-editor.org/rfc/rfc9252.html#section-2
type SRv6L2ServiceTLV struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// SRv6TLV is one of:
// - SRv6InformationSubTLV
SubTlvs map[uint32]*SRv6TLV `protobuf:"bytes,1,rep,name=sub_tlvs,json=subTlvs,proto3" json:"sub_tlvs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *SRv6L2ServiceTLV) Reset() {
*x = SRv6L2ServiceTLV{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[117]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SRv6L2ServiceTLV) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SRv6L2ServiceTLV) ProtoMessage() {}
func (x *SRv6L2ServiceTLV) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[117]
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)
}
// Deprecated: Use SRv6L2ServiceTLV.ProtoReflect.Descriptor instead.
func (*SRv6L2ServiceTLV) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{117}
}
func (x *SRv6L2ServiceTLV) GetSubTlvs() map[uint32]*SRv6TLV {
if x != nil {
return x.SubTlvs
}
return nil
}
// https://tools.ietf.org/html/rfc8669
type PrefixSID struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// tlv is one of:
// - IndexLabelTLV Type 1 (not yet implemented)
// - OriginatorSRGBTLV Type 3 (not yet implemented)
// - SRv6L3ServiceTLV Type 5
// - SRv6L2ServiceTLV Type 6
Tlvs []*anypb.Any `protobuf:"bytes,1,rep,name=tlvs,proto3" json:"tlvs,omitempty"`
}
func (x *PrefixSID) Reset() {
*x = PrefixSID{}
if protoimpl.UnsafeEnabled {
mi := &file_attribute_proto_msgTypes[118]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PrefixSID) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PrefixSID) ProtoMessage() {}
func (x *PrefixSID) ProtoReflect() protoreflect.Message {
mi := &file_attribute_proto_msgTypes[118]
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)
}
// Deprecated: Use PrefixSID.ProtoReflect.Descriptor instead.
func (*PrefixSID) Descriptor() ([]byte, []int) {
return file_attribute_proto_rawDescGZIP(), []int{118}
}
func (x *PrefixSID) GetTlvs() []*anypb.Any {
if x != nil {
return x.Tlvs
}
return nil
}
var File_attribute_proto protoreflect.FileDescriptor
var file_attribute_proto_rawDesc = []byte{
0x0a, 0x0f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x05, 0x61, 0x70, 0x69, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x67, 0x6f, 0x62, 0x67, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0x29, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
0x75, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x09,
0x41, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
0x41, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x5b,
0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x53, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12,
0x0f, 0x0a, 0x0b, 0x41, 0x53, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x02,
0x12, 0x16, 0x0a, 0x12, 0x41, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x45, 0x44, 0x5f, 0x53, 0x45,
0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x53, 0x5f, 0x43,
0x4f, 0x4e, 0x46, 0x45, 0x44, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x04, 0x22, 0x3f, 0x0a, 0x0f, 0x41,
0x73, 0x50, 0x61, 0x74, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2c,
0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65,
0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x2d, 0x0a, 0x10,
0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x22, 0x2a, 0x0a, 0x16, 0x4d,
0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x41, 0x74, 0x74, 0x72,
0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x03, 0x6d, 0x65, 0x64, 0x22, 0x33, 0x0a, 0x12, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
0x50, 0x72, 0x65, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1d, 0x0a,
0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x22, 0x1a, 0x0a, 0x18,
0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41,
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x13, 0x41, 0x67, 0x67, 0x72,
0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12,
0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73,
0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x38, 0x0a, 0x14, 0x43,
0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
0x75, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69,
0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e,
0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x27, 0x0a, 0x15, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x28,
0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x48, 0x0a, 0x0f, 0x49, 0x50, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72,
0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66,
0x69, 0x78, 0x22, 0x67, 0x0a, 0x16, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06,
0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x61,
0x62, 0x65, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c,
0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
0x4c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x2d, 0x0a, 0x11, 0x45,
0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x4c, 0x52, 0x49,
0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x51, 0x0a, 0x1d, 0x52, 0x6f,
0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72,
0x54, 0x77, 0x6f, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x53, 0x4e, 0x12, 0x14, 0x0a, 0x05, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69,
0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x22, 0x4f, 0x0a,
0x1b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73,
0x68, 0x65, 0x72, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x22, 0x52,
0x0a, 0x1e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69,
0x73, 0x68, 0x65, 0x72, 0x46, 0x6f, 0x75, 0x72, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x53, 0x4e,
0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e,
0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e,
0x65, 0x64, 0x22, 0x45, 0x0a, 0x19, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65,
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74,
0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x1e, 0x45, 0x56,
0x50, 0x4e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x44, 0x69,
0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x02,
0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02,
0x72, 0x64, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x20, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74,
0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
0x72, 0x52, 0x03, 0x65, 0x73, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e,
0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x74,
0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62,
0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
0xf2, 0x01, 0x0a, 0x1b, 0x45, 0x56, 0x50, 0x4e, 0x4d, 0x41, 0x43, 0x49, 0x50, 0x41, 0x64, 0x76,
0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12,
0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72,
0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
0x66, 0x69, 0x65, 0x72, 0x52, 0x03, 0x65, 0x73, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x74, 0x68,
0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0b, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x0b,
0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a,
0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06,
0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x61,
0x62, 0x65, 0x6c, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x26, 0x45, 0x56, 0x50, 0x4e, 0x49, 0x6e, 0x63,
0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x45,
0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12,
0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65,
0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x74, 0x68,
0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x18, 0x45, 0x56, 0x50, 0x4e,
0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x73,
0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x03, 0x65, 0x73, 0x69, 0x12, 0x1d,
0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x86, 0x02,
0x0a, 0x11, 0x45, 0x56, 0x50, 0x4e, 0x49, 0x50, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x6f,
0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x73, 0x69,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45,
0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x03, 0x65, 0x73, 0x69, 0x12, 0x21, 0x0a,
0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67,
0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x22, 0x0a,
0x0d, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65,
0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x77, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x7f, 0x0a, 0x0e, 0x45, 0x56, 0x50, 0x4e, 0x49, 0x50,
0x4d, 0x53, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x21,
0x0a, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61,
0x67, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x74, 0x22, 0x7e, 0x0a, 0x0c, 0x53, 0x52, 0x50, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74,
0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12,
0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75,
0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65,
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65,
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x19, 0x4c, 0x61, 0x62, 0x65,
0x6c, 0x65, 0x64, 0x56, 0x50, 0x4e, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50,
0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x24, 0x0a,
0x02, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,
0x02, 0x72, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c,
0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x53, 0x0a, 0x19, 0x52, 0x6f,
0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
0x68, 0x69, 0x70, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x74, 0x22,
0x75, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x49, 0x50, 0x50, 0x72, 0x65,
0x66, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69,
0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65,
0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16,
0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x3b, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70,
0x65, 0x63, 0x4d, 0x41, 0x43, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x22, 0x3d, 0x0a, 0x15, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x43,
0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02,
0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x22, 0x5b, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x43, 0x6f,
0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69,
0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69,
0x70, 0x62, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
0x6e, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22,
0x3a, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x4e, 0x4c, 0x52, 0x49, 0x12,
0x2a, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x0f, 0x56,
0x50, 0x4e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x24,
0x0a, 0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
0x52, 0x02, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73,
0x22, 0x34, 0x0a, 0x0a, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x10, 0x4c, 0x73, 0x4e, 0x6f, 0x64,
0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61,
0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1a, 0x0a,
0x09, 0x62, 0x67, 0x70, 0x5f, 0x6c, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x07, 0x62, 0x67, 0x70, 0x4c, 0x73, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6f, 0x73, 0x70,
0x66, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0a, 0x6f, 0x73, 0x70, 0x66, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70,
0x73, 0x65, 0x75, 0x64, 0x6f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0a, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69,
0x67, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x69, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22,
0x98, 0x02, 0x0a, 0x10, 0x4c, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,
0x70, 0x74, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x69, 0x6e,
0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x6b,
0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x64, 0x12, 0x2e,
0x0a, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72,
0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x74,
0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x49, 0x70, 0x76, 0x34, 0x12, 0x2c,
0x0a, 0x12, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f,
0x69, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x65, 0x69, 0x67,
0x68, 0x62, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x49, 0x70, 0x76, 0x34, 0x12, 0x2e, 0x0a, 0x13,
0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x69,
0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72,
0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x49, 0x70, 0x76, 0x36, 0x12, 0x2c, 0x0a, 0x12,
0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x69, 0x70,
0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x49, 0x70, 0x76, 0x36, 0x22, 0x7d, 0x0a, 0x12, 0x4c, 0x73,
0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72,
0x12, 0x27, 0x0a, 0x0f, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x70, 0x52, 0x65, 0x61,
0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x73, 0x70,
0x66, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x4f, 0x73, 0x70,
0x66, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x6f, 0x73, 0x70, 0x66,
0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x44, 0x0a, 0x0a, 0x4c, 0x73, 0x4e,
0x6f, 0x64, 0x65, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x36, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70,
0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,
0x70, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x22,
0xc0, 0x01, 0x0a, 0x0a, 0x4c, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x36,
0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x4e, 0x6f, 0x64,
0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70,
0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,
0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65,
0x12, 0x40, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70,
0x62, 0x2e, 0x4c, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x6f, 0x72, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x6f, 0x72, 0x22, 0x90, 0x01, 0x0a, 0x0e, 0x4c, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56,
0x34, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x36, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6e,
0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70,
0x62, 0x2e, 0x4c, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x6f, 0x72, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a,
0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
0x2e, 0x4c, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
0x74, 0x6f, 0x72, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72,
0x69, 0x70, 0x74, 0x6f, 0x72, 0x22, 0x90, 0x01, 0x0a, 0x0e, 0x4c, 0x73, 0x50, 0x72, 0x65, 0x66,
0x69, 0x78, 0x56, 0x36, 0x4e, 0x4c, 0x52, 0x49, 0x12, 0x36, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72,
0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65,
0x12, 0x46, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72,
0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70,
0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x65, 0x73, 0x63,
0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x65,
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x4c, 0x73, 0x41,
0x64, 0x64, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
0x4c, 0x73, 0x4e, 0x4c, 0x52, 0x49, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
0x12, 0x28, 0x0a, 0x04, 0x6e, 0x6c, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x6e, 0x6c, 0x72, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65,
0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67,
0x74, 0x68, 0x12, 0x34, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x69,
0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
0x4c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x44, 0x52, 0x0a, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x61, 0x0a, 0x21, 0x4d, 0x55, 0x50, 0x49,
0x6e, 0x74, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44,
0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a,
0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,
0x02, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x60, 0x0a, 0x1e, 0x4d,
0x55, 0x50, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44,
0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a,
0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,
0x02, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x91, 0x02,
0x0a, 0x1f, 0x4d, 0x55, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74,
0x65, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69,
0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02,
0x18, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68,
0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
0x71, 0x66, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x71, 0x66, 0x69, 0x12, 0x36,
0x0a, 0x17, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x15, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x22, 0xbe, 0x01, 0x0a, 0x1f, 0x4d, 0x55, 0x50, 0x54, 0x79, 0x70, 0x65, 0x32, 0x53, 0x65,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64,
0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x65,
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f,
0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x6e,
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x65, 0x6e,
0x67, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f,
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65,
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12,
0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65,
0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x4d, 0x70, 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x4c,
0x52, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x66,
0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70,
0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69,
0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x73, 0x12,
0x2a, 0x0a, 0x05, 0x6e, 0x6c, 0x72, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x6e, 0x6c, 0x72, 0x69, 0x73, 0x22, 0x6b, 0x0a, 0x16, 0x4d,
0x70, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x4c, 0x52, 0x49, 0x41, 0x74, 0x74, 0x72,
0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61,
0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x05,
0x6e, 0x6c, 0x72, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x79, 0x52, 0x05, 0x6e, 0x6c, 0x72, 0x69, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 0x54, 0x77, 0x6f,
0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x74, 0x72,
0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08,
0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a,
0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x1b, 0x49,
0x50, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66,
0x69, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73,
0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12,
0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64,
0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x46, 0x6f, 0x75, 0x72, 0x4f, 0x63,
0x74, 0x65, 0x74, 0x41, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x78, 0x74,
0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73,
0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75,
0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x75,
0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x47, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x6b,
0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65,
0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03,
0x61, 0x73, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68,
0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74,
0x68, 0x22, 0x2a, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x25, 0x0a,
0x0d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x14,
0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63,
0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x30, 0x0a, 0x0d, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x78, 0x74,
0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f,
0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e,
0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c,
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64,
0x22, 0x4b, 0x0a, 0x0e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64,
0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74,
0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x72, 0x61,
0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x52, 0x0a,
0x10, 0x45, 0x53, 0x49, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65,
0x64, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61,
0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x53,
0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c,
0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65,
0x6c, 0x22, 0x32, 0x0a, 0x13, 0x45, 0x53, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x6f, 0x75,
0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x73, 0x5f, 0x69,
0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x73, 0x49,
0x6d, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x55, 0x0a, 0x13, 0x4d, 0x61, 0x63, 0x4d, 0x6f, 0x62, 0x69,
0x6c, 0x69, 0x74, 0x79, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09,
0x69, 0x73, 0x5f, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
0x08, 0x69, 0x73, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x71,
0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x25, 0x0a, 0x11,
0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65,
0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6d, 0x61, 0x63, 0x22, 0x3b, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x61,
0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x12, 0x0a, 0x04,
0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65,
0x22, 0x4b, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x72,
0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x65, 0x72,
0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x22, 0x57, 0x0a,
0x22, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x77, 0x6f, 0x4f, 0x63, 0x74, 0x65,
0x74, 0x41, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x64, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x60, 0x0a, 0x23, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65,
0x63, 0x74, 0x49, 0x50, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65,
0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a,
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x58, 0x0a, 0x23, 0x52, 0x65, 0x64, 0x69,
0x72, 0x65, 0x63, 0x74, 0x46, 0x6f, 0x75, 0x72, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x53,
0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12,
0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73,
0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x6d,
0x69, 0x6e, 0x22, 0x2b, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x6d,
0x61, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64,
0x73, 0x63, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x22,
0x6a, 0x0a, 0x0b, 0x4d, 0x55, 0x50, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x19,
0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x67,
0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a,
0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65,
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x34, 0x22, 0x3b, 0x0a, 0x0f, 0x55,
0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79,
0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x56, 0x0a, 0x1c, 0x45, 0x78, 0x74, 0x65,
0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x41,
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d,
0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x41, 0x6e, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73,
0x22, 0x40, 0x0a, 0x10, 0x41, 0x73, 0x34, 0x50, 0x61, 0x74, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41,
0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
0x74, 0x73, 0x22, 0x44, 0x0a, 0x16, 0x41, 0x73, 0x34, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03,
0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x18,
0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x65, 0x0a, 0x13, 0x50, 0x6d, 0x73, 0x69,
0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62,
0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22,
0x4a, 0x0a, 0x1e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75,
0x62, 0x54, 0x4c, 0x56, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03,
0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x22, 0x37, 0x0a, 0x19, 0x54,
0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56,
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x2e, 0x0a, 0x16, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e,
0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14,
0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63,
0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x55, 0x0a, 0x1d, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e,
0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x53, 0x52, 0x50, 0x72, 0x65, 0x66, 0x65,
0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70,
0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x24, 0x54,
0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56,
0x53, 0x52, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x4e,
0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65,
0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x4e,
0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x1b, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63,
0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x53, 0x52, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69,
0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x49,
0x0a, 0x1d, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62,
0x54, 0x4c, 0x56, 0x53, 0x52, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x49, 0x44, 0x12,
0x28, 0x0a, 0x04, 0x62, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x41, 0x6e, 0x79, 0x52, 0x04, 0x62, 0x73, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x0c, 0x53, 0x52, 0x42,
0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x49, 0x44, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x5f, 0x66,
0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67,
0x12, 0x15, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x64, 0x22, 0xb3, 0x01, 0x0a, 0x14, 0x53, 0x52,
0x76, 0x36, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69,
0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76,
0x36, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76,
0x69, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x65, 0x6e,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e,
0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x66,
0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66,
0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65,
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x22,
0xc4, 0x01, 0x0a, 0x0e, 0x53, 0x52, 0x76, 0x36, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53,
0x49, 0x44, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01,
0x28, 0x08, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x5f, 0x66,
0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67,
0x12, 0x15, 0x0a, 0x06, 0x62, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
0x52, 0x05, 0x62, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, 0x5b, 0x0a, 0x1b, 0x65, 0x6e, 0x64,
0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x73,
0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x19, 0x65, 0x6e, 0x64,
0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x53, 0x74, 0x72,
0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x54, 0x0a, 0x17, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x53, 0x52, 0x45, 0x4e, 0x4c,
0x50, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x6e, 0x6c, 0x70, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x4e,
0x4c, 0x50, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x65, 0x6e, 0x6c, 0x70, 0x22, 0x38, 0x0a, 0x08,
0x53, 0x52, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16,
0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x6a, 0x0a, 0x0c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x76, 0x5f, 0x66, 0x6c, 0x61, 0x67,
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x15, 0x0a,
0x06, 0x61, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61,
0x46, 0x6c, 0x61, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03,
0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x62,
0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x46, 0x6c,
0x61, 0x67, 0x22, 0x4f, 0x0a, 0x0c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
0x65, 0x41, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a,
0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61,
0x62, 0x65, 0x6c, 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54,
0x79, 0x70, 0x65, 0x42, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x67, 0x6d,
0x65, 0x6e, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12,
0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69,
0x64, 0x12, 0x5b, 0x0a, 0x1b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65,
0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53,
0x52, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76,
0x69, 0x6f, 0x72, 0x52, 0x19, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68,
0x61, 0x76, 0x69, 0x6f, 0x72, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x7b,
0x0a, 0x1e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62,
0x54, 0x4c, 0x56, 0x53, 0x52, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
0x12, 0x27, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x57, 0x65, 0x69, 0x67, 0x68,
0x74, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x73, 0x65, 0x67,
0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x79, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3b, 0x0a, 0x1f, 0x54,
0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56,
0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18,
0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x32, 0x0a, 0x1c, 0x54, 0x75, 0x6e, 0x6e,
0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x55, 0x44, 0x50,
0x44, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x44, 0x0a, 0x18,
0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x75, 0x62, 0x54, 0x4c,
0x56, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x22, 0x4e, 0x0a, 0x0e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61,
0x70, 0x54, 0x4c, 0x56, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x74, 0x6c,
0x76, 0x73, 0x22, 0x41, 0x0a, 0x14, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61,
0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x6c,
0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x54, 0x4c, 0x56, 0x52,
0x04, 0x74, 0x6c, 0x76, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x1b, 0x49, 0x50, 0x76, 0x36, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x78, 0x74,
0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73,
0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75,
0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x75,
0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e,
0x22, 0x60, 0x0a, 0x23, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x49, 0x50, 0x76, 0x36,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x6d,
0x69, 0x6e, 0x22, 0x59, 0x0a, 0x1f, 0x49, 0x50, 0x36, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65,
0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72,
0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69,
0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x2a, 0x0a,
0x10, 0x41, 0x69, 0x67, 0x70, 0x54, 0x4c, 0x56, 0x49, 0x47, 0x50, 0x4d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28,
0x04, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x3a, 0x0a, 0x0e, 0x41, 0x69, 0x67,
0x70, 0x54, 0x4c, 0x56, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74,
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x39, 0x0a, 0x0d, 0x41, 0x69, 0x67, 0x70, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73,
0x22, 0x75, 0x0a, 0x0e, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69,
0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64,
0x61, 0x74, 0x61, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
0x6c, 0x44, 0x61, 0x74, 0x61, 0x31, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
0x64, 0x61, 0x74, 0x61, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x32, 0x22, 0x54, 0x0a, 0x19, 0x4c, 0x61, 0x72, 0x67, 0x65,
0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70,
0x62, 0x2e, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79,
0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x9b, 0x01,
0x0a, 0x0b, 0x4c, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x0a,
0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74,
0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x74, 0x74,
0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x62, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
0x61, 0x62, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x76,
0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x76, 0x36, 0x22, 0x8b, 0x01, 0x0a, 0x0a,
0x4c, 0x73, 0x49, 0x47, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f,
0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1d,
0x0a, 0x0a, 0x6e, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x08, 0x52, 0x09, 0x6e, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x23, 0x0a,
0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x5f,
0x6e, 0x73, 0x73, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70,
0x61, 0x67, 0x61, 0x74, 0x65, 0x4e, 0x73, 0x73, 0x61, 0x22, 0x33, 0x0a, 0x09, 0x4c, 0x73, 0x53,
0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03,
0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x8a,
0x01, 0x0a, 0x10, 0x4c, 0x73, 0x53, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x75, 0x70, 0x70,
0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x70, 0x76,
0x34, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x70,
0x76, 0x36, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65,
0x64, 0x12, 0x28, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x53, 0x72, 0x52, 0x61,
0x6e, 0x67, 0x65, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x3a, 0x0a, 0x0e, 0x4c,
0x73, 0x53, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x28, 0x0a,
0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e,
0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x53, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52,
0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xfd, 0x02, 0x0a, 0x0f, 0x4c, 0x73, 0x41, 0x74,
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x28, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x6c, 0x61,
0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49,
0x64, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65,
0x72, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c,
0x6f, 0x63, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x56, 0x36, 0x12, 0x1b,
0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x41, 0x72, 0x65, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6f,
0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x70, 0x61,
0x71, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x73, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69,
0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x53, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0e, 0x73, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f,
0x72, 0x69, 0x74, 0x68, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x72,
0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x73, 0x72,
0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x53, 0x72, 0x4c,
0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0c, 0x73, 0x72, 0x4c, 0x6f, 0x63,
0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x9b, 0x04, 0x0a, 0x0f, 0x4c, 0x73, 0x41, 0x74,
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x36, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72,
0x49, 0x64, 0x56, 0x36, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x72,
0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2d,
0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f,
0x69, 0x64, 0x5f, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x6d,
0x6f, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x56, 0x36, 0x12, 0x1f, 0x0a,
0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a,
0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x74,
0x72, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75,
0x6c, 0x74, 0x54, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x67,
0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09,
0x69, 0x67, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x61,
0x71, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75,
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12,
0x31, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61,
0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x72,
0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
0x74, 0x68, 0x12, 0x31, 0x0a, 0x14, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x02,
0x52, 0x13, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x61, 0x6e, 0x64,
0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x72, 0x5f, 0x61, 0x64, 0x6a, 0x61,
0x63, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0e, 0x73, 0x72, 0x41, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x69, 0x64, 0x12,
0x14, 0x0a, 0x05, 0x73, 0x72, 0x6c, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05,
0x73, 0x72, 0x6c, 0x67, 0x73, 0x22, 0x7f, 0x0a, 0x11, 0x4c, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x67,
0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x49, 0x47, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73,
0x52, 0x08, 0x69, 0x67, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70,
0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71,
0x75, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f,
0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x72, 0x50, 0x72, 0x65,
0x66, 0x69, 0x78, 0x53, 0x69, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x4c, 0x73, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x41,
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f,
0x64, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x30,
0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
0x22, 0x52, 0x0a, 0x10, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x16, 0x53, 0x52, 0x76, 0x36, 0x53, 0x74, 0x72,
0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x12,
0x30, 0x0a, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c,
0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74,
0x68, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x6f, 0x64,
0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11,
0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74,
0x68, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65,
0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x72,
0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e,
0x67, 0x74, 0x68, 0x12, 0x31, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x31, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x25, 0x0a, 0x0c, 0x53, 0x52, 0x76,
0x36, 0x53, 0x49, 0x44, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x6c, 0x61,
0x67, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x31,
0x22, 0x31, 0x0a, 0x07, 0x53, 0x52, 0x76, 0x36, 0x54, 0x4c, 0x56, 0x12, 0x26, 0x0a, 0x03, 0x74,
0x6c, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03,
0x74, 0x6c, 0x76, 0x22, 0xa0, 0x02, 0x0a, 0x15, 0x53, 0x52, 0x76, 0x36, 0x49, 0x6e, 0x66, 0x6f,
0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x12, 0x10, 0x0a,
0x03, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12,
0x29, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x46, 0x6c,
0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x6e,
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42,
0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x5f, 0x73,
0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x54, 0x4c, 0x56, 0x2e, 0x53, 0x75, 0x62, 0x53,
0x75, 0x62, 0x54, 0x6c, 0x76, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x75, 0x62,
0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x73, 0x1a, 0x4d, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x53, 0x75,
0x62, 0x54, 0x6c, 0x76, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70,
0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x54, 0x4c, 0x56, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x10, 0x53, 0x52, 0x76, 0x36, 0x4c,
0x33, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x4c, 0x56, 0x12, 0x3f, 0x0a, 0x08, 0x73,
0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,
0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x4c, 0x33, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x54, 0x4c, 0x56, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x73, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x73, 0x1a, 0x4a, 0x0a, 0x0c,
0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x54, 0x4c, 0x56, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x10, 0x53, 0x52, 0x76,
0x36, 0x4c, 0x32, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x4c, 0x56, 0x12, 0x3f, 0x0a,
0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x24, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x4c, 0x32, 0x53, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x4c, 0x56, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x73, 0x1a, 0x4a,
0x0a, 0x0c, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x52, 0x76, 0x36, 0x54, 0x4c, 0x56, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x35, 0x0a, 0x09, 0x50, 0x72,
0x65, 0x66, 0x69, 0x78, 0x53, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x74, 0x6c, 0x76,
0x73, 0x2a, 0xf7, 0x01, 0x0a, 0x0f, 0x4c, 0x73, 0x4f, 0x73, 0x70, 0x66, 0x52, 0x6f, 0x75, 0x74,
0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x53, 0x5f, 0x4f, 0x53, 0x50, 0x46,
0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x53, 0x5f, 0x4f, 0x53, 0x50, 0x46,
0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x52,
0x41, 0x5f, 0x41, 0x52, 0x45, 0x41, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x53, 0x5f, 0x4f,
0x53, 0x50, 0x46, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49,
0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x52, 0x45, 0x41, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4c,
0x53, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50,
0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x31, 0x10, 0x03, 0x12, 0x20, 0x0a,
0x1c, 0x4c, 0x53, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54,
0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x32, 0x10, 0x04, 0x12,
0x1c, 0x0a, 0x18, 0x4c, 0x53, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45,
0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x53, 0x53, 0x41, 0x31, 0x10, 0x05, 0x12, 0x1c, 0x0a,
0x18, 0x4c, 0x53, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54,
0x59, 0x50, 0x45, 0x5f, 0x4e, 0x53, 0x53, 0x41, 0x32, 0x10, 0x06, 0x2a, 0x73, 0x0a, 0x0a, 0x4c,
0x73, 0x4e, 0x4c, 0x52, 0x49, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x53, 0x5f,
0x4e, 0x4c, 0x52, 0x49, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10,
0x0a, 0x0c, 0x4c, 0x53, 0x5f, 0x4e, 0x4c, 0x52, 0x49, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x01,
0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x53, 0x5f, 0x4e, 0x4c, 0x52, 0x49, 0x5f, 0x4c, 0x49, 0x4e, 0x4b,
0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x53, 0x5f, 0x4e, 0x4c, 0x52, 0x49, 0x5f, 0x50, 0x52,
0x45, 0x46, 0x49, 0x58, 0x5f, 0x56, 0x34, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x53, 0x5f,
0x4e, 0x4c, 0x52, 0x49, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x5f, 0x56, 0x36, 0x10, 0x04,
0x2a, 0xbb, 0x01, 0x0a, 0x0c, 0x4c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49,
0x44, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c,
0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x53,
0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x49, 0x53, 0x49, 0x53, 0x5f, 0x4c,
0x31, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43,
0x4f, 0x4c, 0x5f, 0x49, 0x53, 0x49, 0x53, 0x5f, 0x4c, 0x32, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13,
0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4f, 0x53, 0x50, 0x46,
0x5f, 0x56, 0x32, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54,
0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x04, 0x12, 0x16, 0x0a,
0x12, 0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41,
0x54, 0x49, 0x43, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54,
0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x5f, 0x56, 0x33, 0x10, 0x06, 0x2a, 0xed,
0x05, 0x0a, 0x0c, 0x53, 0x52, 0x76, 0x36, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12,
0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a,
0x03, 0x45, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x4e, 0x44, 0x5f, 0x57, 0x49,
0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x4e, 0x44, 0x5f,
0x57, 0x49, 0x54, 0x48, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e,
0x44, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x04,
0x12, 0x08, 0x0a, 0x04, 0x45, 0x4e, 0x44, 0x58, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e,
0x44, 0x58, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x10, 0x06, 0x12, 0x11, 0x0a,
0x0d, 0x45, 0x4e, 0x44, 0x58, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x07,
0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x44, 0x58, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x53,
0x50, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x4e, 0x44, 0x54, 0x10,
0x09, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x44, 0x54, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50,
0x53, 0x50, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x44, 0x54, 0x5f, 0x57, 0x49, 0x54,
0x48, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x44, 0x54, 0x5f,
0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x0c, 0x12, 0x11,
0x0a, 0x0d, 0x45, 0x4e, 0x44, 0x5f, 0x42, 0x36, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x10,
0x0e, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x44, 0x5f, 0x42, 0x4d, 0x10, 0x0f, 0x12, 0x0b, 0x0a,
0x07, 0x45, 0x4e, 0x44, 0x5f, 0x44, 0x58, 0x36, 0x10, 0x10, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e,
0x44, 0x5f, 0x44, 0x58, 0x34, 0x10, 0x11, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x44, 0x5f, 0x44,
0x54, 0x36, 0x10, 0x12, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x44, 0x5f, 0x44, 0x54, 0x34, 0x10,
0x13, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x44, 0x5f, 0x44, 0x54, 0x34, 0x36, 0x10, 0x14, 0x12,
0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x44, 0x5f, 0x44, 0x58, 0x32, 0x10, 0x15, 0x12, 0x0c, 0x0a, 0x08,
0x45, 0x4e, 0x44, 0x5f, 0x44, 0x58, 0x32, 0x56, 0x10, 0x16, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e,
0x44, 0x5f, 0x44, 0x54, 0x32, 0x55, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x44, 0x5f,
0x44, 0x54, 0x32, 0x4d, 0x10, 0x18, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x44, 0x5f, 0x42, 0x36,
0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x5f, 0x52, 0x65, 0x64, 0x10, 0x1b, 0x12, 0x10, 0x0a,
0x0c, 0x45, 0x4e, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x1c, 0x12,
0x14, 0x0a, 0x10, 0x45, 0x4e, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x5f,
0x55, 0x53, 0x44, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x44, 0x5f, 0x57, 0x49, 0x54,
0x48, 0x5f, 0x55, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x1e, 0x12, 0x18, 0x0a, 0x14, 0x45,
0x4e, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x50, 0x5f,
0x55, 0x53, 0x44, 0x10, 0x1f, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x44, 0x58, 0x5f, 0x57, 0x49,
0x54, 0x48, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x20, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x44, 0x58,
0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x21, 0x12,
0x15, 0x0a, 0x11, 0x45, 0x4e, 0x44, 0x58, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x55, 0x53, 0x50,
0x5f, 0x55, 0x53, 0x44, 0x10, 0x22, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x44, 0x58, 0x5f, 0x57,
0x49, 0x54, 0x48, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x44, 0x10,
0x23, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x44, 0x54, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x55,
0x53, 0x44, 0x10, 0x24, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x44, 0x54, 0x5f, 0x57, 0x49, 0x54,
0x48, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x25, 0x12, 0x15, 0x0a, 0x11, 0x45,
0x4e, 0x44, 0x54, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x55, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x44,
0x10, 0x26, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x44, 0x54, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f,
0x50, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x50, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x27, 0x12, 0x0e, 0x0a,
0x0a, 0x45, 0x4e, 0x44, 0x4d, 0x5f, 0x47, 0x54, 0x50, 0x36, 0x44, 0x10, 0x45, 0x12, 0x0f, 0x0a,
0x0b, 0x45, 0x4e, 0x44, 0x4d, 0x5f, 0x47, 0x54, 0x50, 0x36, 0x44, 0x49, 0x10, 0x46, 0x12, 0x0e,
0x0a, 0x0a, 0x45, 0x4e, 0x44, 0x4d, 0x5f, 0x47, 0x54, 0x50, 0x36, 0x45, 0x10, 0x47, 0x12, 0x0e,
0x0a, 0x0a, 0x45, 0x4e, 0x44, 0x4d, 0x5f, 0x47, 0x54, 0x50, 0x34, 0x45, 0x10, 0x48, 0x2a, 0x44,
0x0a, 0x08, 0x45, 0x4e, 0x4c, 0x50, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65,
0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x79, 0x70, 0x65,
0x31, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x79, 0x70, 0x65, 0x32, 0x10, 0x02, 0x12, 0x09,
0x0a, 0x05, 0x54, 0x79, 0x70, 0x65, 0x33, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x79, 0x70,
0x65, 0x34, 0x10, 0x04, 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x6f, 0x73, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x62, 0x67, 0x70, 0x2f, 0x76, 0x33,
0x2f, 0x61, 0x70, 0x69, 0x3b, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_attribute_proto_rawDescOnce sync.Once
file_attribute_proto_rawDescData = file_attribute_proto_rawDesc
)
func file_attribute_proto_rawDescGZIP() []byte {
file_attribute_proto_rawDescOnce.Do(func() {
file_attribute_proto_rawDescData = protoimpl.X.CompressGZIP(file_attribute_proto_rawDescData)
})
return file_attribute_proto_rawDescData
}
var file_attribute_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_attribute_proto_msgTypes = make([]protoimpl.MessageInfo, 122)
var file_attribute_proto_goTypes = []interface{}{
(LsOspfRouteType)(0), // 0: apipb.LsOspfRouteType
(LsNLRIType)(0), // 1: apipb.LsNLRIType
(LsProtocolID)(0), // 2: apipb.LsProtocolID
(SRv6Behavior)(0), // 3: apipb.SRv6Behavior
(ENLPType)(0), // 4: apipb.ENLPType
(AsSegment_Type)(0), // 5: apipb.AsSegment.Type
(*OriginAttribute)(nil), // 6: apipb.OriginAttribute
(*AsSegment)(nil), // 7: apipb.AsSegment
(*AsPathAttribute)(nil), // 8: apipb.AsPathAttribute
(*NextHopAttribute)(nil), // 9: apipb.NextHopAttribute
(*MultiExitDiscAttribute)(nil), // 10: apipb.MultiExitDiscAttribute
(*LocalPrefAttribute)(nil), // 11: apipb.LocalPrefAttribute
(*AtomicAggregateAttribute)(nil), // 12: apipb.AtomicAggregateAttribute
(*AggregatorAttribute)(nil), // 13: apipb.AggregatorAttribute
(*CommunitiesAttribute)(nil), // 14: apipb.CommunitiesAttribute
(*OriginatorIdAttribute)(nil), // 15: apipb.OriginatorIdAttribute
(*ClusterListAttribute)(nil), // 16: apipb.ClusterListAttribute
(*IPAddressPrefix)(nil), // 17: apipb.IPAddressPrefix
(*LabeledIPAddressPrefix)(nil), // 18: apipb.LabeledIPAddressPrefix
(*EncapsulationNLRI)(nil), // 19: apipb.EncapsulationNLRI
(*RouteDistinguisherTwoOctetASN)(nil), // 20: apipb.RouteDistinguisherTwoOctetASN
(*RouteDistinguisherIPAddress)(nil), // 21: apipb.RouteDistinguisherIPAddress
(*RouteDistinguisherFourOctetASN)(nil), // 22: apipb.RouteDistinguisherFourOctetASN
(*EthernetSegmentIdentifier)(nil), // 23: apipb.EthernetSegmentIdentifier
(*EVPNEthernetAutoDiscoveryRoute)(nil), // 24: apipb.EVPNEthernetAutoDiscoveryRoute
(*EVPNMACIPAdvertisementRoute)(nil), // 25: apipb.EVPNMACIPAdvertisementRoute
(*EVPNInclusiveMulticastEthernetTagRoute)(nil), // 26: apipb.EVPNInclusiveMulticastEthernetTagRoute
(*EVPNEthernetSegmentRoute)(nil), // 27: apipb.EVPNEthernetSegmentRoute
(*EVPNIPPrefixRoute)(nil), // 28: apipb.EVPNIPPrefixRoute
(*EVPNIPMSIRoute)(nil), // 29: apipb.EVPNIPMSIRoute
(*SRPolicyNLRI)(nil), // 30: apipb.SRPolicyNLRI
(*LabeledVPNIPAddressPrefix)(nil), // 31: apipb.LabeledVPNIPAddressPrefix
(*RouteTargetMembershipNLRI)(nil), // 32: apipb.RouteTargetMembershipNLRI
(*FlowSpecIPPrefix)(nil), // 33: apipb.FlowSpecIPPrefix
(*FlowSpecMAC)(nil), // 34: apipb.FlowSpecMAC
(*FlowSpecComponentItem)(nil), // 35: apipb.FlowSpecComponentItem
(*FlowSpecComponent)(nil), // 36: apipb.FlowSpecComponent
(*FlowSpecNLRI)(nil), // 37: apipb.FlowSpecNLRI
(*VPNFlowSpecNLRI)(nil), // 38: apipb.VPNFlowSpecNLRI
(*OpaqueNLRI)(nil), // 39: apipb.OpaqueNLRI
(*LsNodeDescriptor)(nil), // 40: apipb.LsNodeDescriptor
(*LsLinkDescriptor)(nil), // 41: apipb.LsLinkDescriptor
(*LsPrefixDescriptor)(nil), // 42: apipb.LsPrefixDescriptor
(*LsNodeNLRI)(nil), // 43: apipb.LsNodeNLRI
(*LsLinkNLRI)(nil), // 44: apipb.LsLinkNLRI
(*LsPrefixV4NLRI)(nil), // 45: apipb.LsPrefixV4NLRI
(*LsPrefixV6NLRI)(nil), // 46: apipb.LsPrefixV6NLRI
(*LsAddrPrefix)(nil), // 47: apipb.LsAddrPrefix
(*MUPInterworkSegmentDiscoveryRoute)(nil), // 48: apipb.MUPInterworkSegmentDiscoveryRoute
(*MUPDirectSegmentDiscoveryRoute)(nil), // 49: apipb.MUPDirectSegmentDiscoveryRoute
(*MUPType1SessionTransformedRoute)(nil), // 50: apipb.MUPType1SessionTransformedRoute
(*MUPType2SessionTransformedRoute)(nil), // 51: apipb.MUPType2SessionTransformedRoute
(*MpReachNLRIAttribute)(nil), // 52: apipb.MpReachNLRIAttribute
(*MpUnreachNLRIAttribute)(nil), // 53: apipb.MpUnreachNLRIAttribute
(*TwoOctetAsSpecificExtended)(nil), // 54: apipb.TwoOctetAsSpecificExtended
(*IPv4AddressSpecificExtended)(nil), // 55: apipb.IPv4AddressSpecificExtended
(*FourOctetAsSpecificExtended)(nil), // 56: apipb.FourOctetAsSpecificExtended
(*LinkBandwidthExtended)(nil), // 57: apipb.LinkBandwidthExtended
(*ValidationExtended)(nil), // 58: apipb.ValidationExtended
(*ColorExtended)(nil), // 59: apipb.ColorExtended
(*EncapExtended)(nil), // 60: apipb.EncapExtended
(*DefaultGatewayExtended)(nil), // 61: apipb.DefaultGatewayExtended
(*OpaqueExtended)(nil), // 62: apipb.OpaqueExtended
(*ESILabelExtended)(nil), // 63: apipb.ESILabelExtended
(*ESImportRouteTarget)(nil), // 64: apipb.ESImportRouteTarget
(*MacMobilityExtended)(nil), // 65: apipb.MacMobilityExtended
(*RouterMacExtended)(nil), // 66: apipb.RouterMacExtended
(*TrafficRateExtended)(nil), // 67: apipb.TrafficRateExtended
(*TrafficActionExtended)(nil), // 68: apipb.TrafficActionExtended
(*RedirectTwoOctetAsSpecificExtended)(nil), // 69: apipb.RedirectTwoOctetAsSpecificExtended
(*RedirectIPv4AddressSpecificExtended)(nil), // 70: apipb.RedirectIPv4AddressSpecificExtended
(*RedirectFourOctetAsSpecificExtended)(nil), // 71: apipb.RedirectFourOctetAsSpecificExtended
(*TrafficRemarkExtended)(nil), // 72: apipb.TrafficRemarkExtended
(*MUPExtended)(nil), // 73: apipb.MUPExtended
(*UnknownExtended)(nil), // 74: apipb.UnknownExtended
(*ExtendedCommunitiesAttribute)(nil), // 75: apipb.ExtendedCommunitiesAttribute
(*As4PathAttribute)(nil), // 76: apipb.As4PathAttribute
(*As4AggregatorAttribute)(nil), // 77: apipb.As4AggregatorAttribute
(*PmsiTunnelAttribute)(nil), // 78: apipb.PmsiTunnelAttribute
(*TunnelEncapSubTLVEncapsulation)(nil), // 79: apipb.TunnelEncapSubTLVEncapsulation
(*TunnelEncapSubTLVProtocol)(nil), // 80: apipb.TunnelEncapSubTLVProtocol
(*TunnelEncapSubTLVColor)(nil), // 81: apipb.TunnelEncapSubTLVColor
(*TunnelEncapSubTLVSRPreference)(nil), // 82: apipb.TunnelEncapSubTLVSRPreference
(*TunnelEncapSubTLVSRCandidatePathName)(nil), // 83: apipb.TunnelEncapSubTLVSRCandidatePathName
(*TunnelEncapSubTLVSRPriority)(nil), // 84: apipb.TunnelEncapSubTLVSRPriority
(*TunnelEncapSubTLVSRBindingSID)(nil), // 85: apipb.TunnelEncapSubTLVSRBindingSID
(*SRBindingSID)(nil), // 86: apipb.SRBindingSID
(*SRv6EndPointBehavior)(nil), // 87: apipb.SRv6EndPointBehavior
(*SRv6BindingSID)(nil), // 88: apipb.SRv6BindingSID
(*TunnelEncapSubTLVSRENLP)(nil), // 89: apipb.TunnelEncapSubTLVSRENLP
(*SRWeight)(nil), // 90: apipb.SRWeight
(*SegmentFlags)(nil), // 91: apipb.SegmentFlags
(*SegmentTypeA)(nil), // 92: apipb.SegmentTypeA
(*SegmentTypeB)(nil), // 93: apipb.SegmentTypeB
(*TunnelEncapSubTLVSRSegmentList)(nil), // 94: apipb.TunnelEncapSubTLVSRSegmentList
(*TunnelEncapSubTLVEgressEndpoint)(nil), // 95: apipb.TunnelEncapSubTLVEgressEndpoint
(*TunnelEncapSubTLVUDPDestPort)(nil), // 96: apipb.TunnelEncapSubTLVUDPDestPort
(*TunnelEncapSubTLVUnknown)(nil), // 97: apipb.TunnelEncapSubTLVUnknown
(*TunnelEncapTLV)(nil), // 98: apipb.TunnelEncapTLV
(*TunnelEncapAttribute)(nil), // 99: apipb.TunnelEncapAttribute
(*IPv6AddressSpecificExtended)(nil), // 100: apipb.IPv6AddressSpecificExtended
(*RedirectIPv6AddressSpecificExtended)(nil), // 101: apipb.RedirectIPv6AddressSpecificExtended
(*IP6ExtendedCommunitiesAttribute)(nil), // 102: apipb.IP6ExtendedCommunitiesAttribute
(*AigpTLVIGPMetric)(nil), // 103: apipb.AigpTLVIGPMetric
(*AigpTLVUnknown)(nil), // 104: apipb.AigpTLVUnknown
(*AigpAttribute)(nil), // 105: apipb.AigpAttribute
(*LargeCommunity)(nil), // 106: apipb.LargeCommunity
(*LargeCommunitiesAttribute)(nil), // 107: apipb.LargeCommunitiesAttribute
(*LsNodeFlags)(nil), // 108: apipb.LsNodeFlags
(*LsIGPFlags)(nil), // 109: apipb.LsIGPFlags
(*LsSrRange)(nil), // 110: apipb.LsSrRange
(*LsSrCapabilities)(nil), // 111: apipb.LsSrCapabilities
(*LsSrLocalBlock)(nil), // 112: apipb.LsSrLocalBlock
(*LsAttributeNode)(nil), // 113: apipb.LsAttributeNode
(*LsAttributeLink)(nil), // 114: apipb.LsAttributeLink
(*LsAttributePrefix)(nil), // 115: apipb.LsAttributePrefix
(*LsAttribute)(nil), // 116: apipb.LsAttribute
(*UnknownAttribute)(nil), // 117: apipb.UnknownAttribute
(*SRv6StructureSubSubTLV)(nil), // 118: apipb.SRv6StructureSubSubTLV
(*SRv6SIDFlags)(nil), // 119: apipb.SRv6SIDFlags
(*SRv6TLV)(nil), // 120: apipb.SRv6TLV
(*SRv6InformationSubTLV)(nil), // 121: apipb.SRv6InformationSubTLV
(*SRv6L3ServiceTLV)(nil), // 122: apipb.SRv6L3ServiceTLV
(*SRv6L2ServiceTLV)(nil), // 123: apipb.SRv6L2ServiceTLV
(*PrefixSID)(nil), // 124: apipb.PrefixSID
nil, // 125: apipb.SRv6InformationSubTLV.SubSubTlvsEntry
nil, // 126: apipb.SRv6L3ServiceTLV.SubTlvsEntry
nil, // 127: apipb.SRv6L2ServiceTLV.SubTlvsEntry
(*anypb.Any)(nil), // 128: google.protobuf.Any
(*Family)(nil), // 129: apipb.Family
}
var file_attribute_proto_depIdxs = []int32{
5, // 0: apipb.AsSegment.type:type_name -> apipb.AsSegment.Type
7, // 1: apipb.AsPathAttribute.segments:type_name -> apipb.AsSegment
128, // 2: apipb.EVPNEthernetAutoDiscoveryRoute.rd:type_name -> google.protobuf.Any
23, // 3: apipb.EVPNEthernetAutoDiscoveryRoute.esi:type_name -> apipb.EthernetSegmentIdentifier
128, // 4: apipb.EVPNMACIPAdvertisementRoute.rd:type_name -> google.protobuf.Any
23, // 5: apipb.EVPNMACIPAdvertisementRoute.esi:type_name -> apipb.EthernetSegmentIdentifier
128, // 6: apipb.EVPNInclusiveMulticastEthernetTagRoute.rd:type_name -> google.protobuf.Any
128, // 7: apipb.EVPNEthernetSegmentRoute.rd:type_name -> google.protobuf.Any
23, // 8: apipb.EVPNEthernetSegmentRoute.esi:type_name -> apipb.EthernetSegmentIdentifier
128, // 9: apipb.EVPNIPPrefixRoute.rd:type_name -> google.protobuf.Any
23, // 10: apipb.EVPNIPPrefixRoute.esi:type_name -> apipb.EthernetSegmentIdentifier
128, // 11: apipb.EVPNIPMSIRoute.rd:type_name -> google.protobuf.Any
128, // 12: apipb.EVPNIPMSIRoute.rt:type_name -> google.protobuf.Any
128, // 13: apipb.LabeledVPNIPAddressPrefix.rd:type_name -> google.protobuf.Any
128, // 14: apipb.RouteTargetMembershipNLRI.rt:type_name -> google.protobuf.Any
35, // 15: apipb.FlowSpecComponent.items:type_name -> apipb.FlowSpecComponentItem
128, // 16: apipb.FlowSpecNLRI.rules:type_name -> google.protobuf.Any
128, // 17: apipb.VPNFlowSpecNLRI.rd:type_name -> google.protobuf.Any
128, // 18: apipb.VPNFlowSpecNLRI.rules:type_name -> google.protobuf.Any
0, // 19: apipb.LsPrefixDescriptor.ospf_route_type:type_name -> apipb.LsOspfRouteType
40, // 20: apipb.LsNodeNLRI.local_node:type_name -> apipb.LsNodeDescriptor
40, // 21: apipb.LsLinkNLRI.local_node:type_name -> apipb.LsNodeDescriptor
40, // 22: apipb.LsLinkNLRI.remote_node:type_name -> apipb.LsNodeDescriptor
41, // 23: apipb.LsLinkNLRI.link_descriptor:type_name -> apipb.LsLinkDescriptor
40, // 24: apipb.LsPrefixV4NLRI.local_node:type_name -> apipb.LsNodeDescriptor
42, // 25: apipb.LsPrefixV4NLRI.prefix_descriptor:type_name -> apipb.LsPrefixDescriptor
40, // 26: apipb.LsPrefixV6NLRI.local_node:type_name -> apipb.LsNodeDescriptor
42, // 27: apipb.LsPrefixV6NLRI.prefix_descriptor:type_name -> apipb.LsPrefixDescriptor
1, // 28: apipb.LsAddrPrefix.type:type_name -> apipb.LsNLRIType
128, // 29: apipb.LsAddrPrefix.nlri:type_name -> google.protobuf.Any
2, // 30: apipb.LsAddrPrefix.protocol_id:type_name -> apipb.LsProtocolID
128, // 31: apipb.MUPInterworkSegmentDiscoveryRoute.rd:type_name -> google.protobuf.Any
128, // 32: apipb.MUPDirectSegmentDiscoveryRoute.rd:type_name -> google.protobuf.Any
128, // 33: apipb.MUPType1SessionTransformedRoute.rd:type_name -> google.protobuf.Any
128, // 34: apipb.MUPType2SessionTransformedRoute.rd:type_name -> google.protobuf.Any
129, // 35: apipb.MpReachNLRIAttribute.family:type_name -> apipb.Family
128, // 36: apipb.MpReachNLRIAttribute.nlris:type_name -> google.protobuf.Any
129, // 37: apipb.MpUnreachNLRIAttribute.family:type_name -> apipb.Family
128, // 38: apipb.MpUnreachNLRIAttribute.nlris:type_name -> google.protobuf.Any
128, // 39: apipb.ExtendedCommunitiesAttribute.communities:type_name -> google.protobuf.Any
7, // 40: apipb.As4PathAttribute.segments:type_name -> apipb.AsSegment
128, // 41: apipb.TunnelEncapSubTLVSRBindingSID.bsid:type_name -> google.protobuf.Any
3, // 42: apipb.SRv6EndPointBehavior.behavior:type_name -> apipb.SRv6Behavior
87, // 43: apipb.SRv6BindingSID.endpoint_behavior_structure:type_name -> apipb.SRv6EndPointBehavior
4, // 44: apipb.TunnelEncapSubTLVSRENLP.enlp:type_name -> apipb.ENLPType
91, // 45: apipb.SegmentTypeA.flags:type_name -> apipb.SegmentFlags
91, // 46: apipb.SegmentTypeB.flags:type_name -> apipb.SegmentFlags
87, // 47: apipb.SegmentTypeB.endpoint_behavior_structure:type_name -> apipb.SRv6EndPointBehavior
90, // 48: apipb.TunnelEncapSubTLVSRSegmentList.weight:type_name -> apipb.SRWeight
128, // 49: apipb.TunnelEncapSubTLVSRSegmentList.segments:type_name -> google.protobuf.Any
128, // 50: apipb.TunnelEncapTLV.tlvs:type_name -> google.protobuf.Any
98, // 51: apipb.TunnelEncapAttribute.tlvs:type_name -> apipb.TunnelEncapTLV
128, // 52: apipb.IP6ExtendedCommunitiesAttribute.communities:type_name -> google.protobuf.Any
128, // 53: apipb.AigpAttribute.tlvs:type_name -> google.protobuf.Any
106, // 54: apipb.LargeCommunitiesAttribute.communities:type_name -> apipb.LargeCommunity
110, // 55: apipb.LsSrCapabilities.ranges:type_name -> apipb.LsSrRange
110, // 56: apipb.LsSrLocalBlock.ranges:type_name -> apipb.LsSrRange
108, // 57: apipb.LsAttributeNode.flags:type_name -> apipb.LsNodeFlags
111, // 58: apipb.LsAttributeNode.sr_capabilities:type_name -> apipb.LsSrCapabilities
112, // 59: apipb.LsAttributeNode.sr_local_block:type_name -> apipb.LsSrLocalBlock
109, // 60: apipb.LsAttributePrefix.igp_flags:type_name -> apipb.LsIGPFlags
113, // 61: apipb.LsAttribute.node:type_name -> apipb.LsAttributeNode
114, // 62: apipb.LsAttribute.link:type_name -> apipb.LsAttributeLink
115, // 63: apipb.LsAttribute.prefix:type_name -> apipb.LsAttributePrefix
128, // 64: apipb.SRv6TLV.tlv:type_name -> google.protobuf.Any
119, // 65: apipb.SRv6InformationSubTLV.flags:type_name -> apipb.SRv6SIDFlags
125, // 66: apipb.SRv6InformationSubTLV.sub_sub_tlvs:type_name -> apipb.SRv6InformationSubTLV.SubSubTlvsEntry
126, // 67: apipb.SRv6L3ServiceTLV.sub_tlvs:type_name -> apipb.SRv6L3ServiceTLV.SubTlvsEntry
127, // 68: apipb.SRv6L2ServiceTLV.sub_tlvs:type_name -> apipb.SRv6L2ServiceTLV.SubTlvsEntry
128, // 69: apipb.PrefixSID.tlvs:type_name -> google.protobuf.Any
120, // 70: apipb.SRv6InformationSubTLV.SubSubTlvsEntry.value:type_name -> apipb.SRv6TLV
120, // 71: apipb.SRv6L3ServiceTLV.SubTlvsEntry.value:type_name -> apipb.SRv6TLV
120, // 72: apipb.SRv6L2ServiceTLV.SubTlvsEntry.value:type_name -> apipb.SRv6TLV
73, // [73:73] is the sub-list for method output_type
73, // [73:73] is the sub-list for method input_type
73, // [73:73] is the sub-list for extension type_name
73, // [73:73] is the sub-list for extension extendee
0, // [0:73] is the sub-list for field type_name
}
func init() { file_attribute_proto_init() }
func file_attribute_proto_init() {
if File_attribute_proto != nil {
return
}
file_gobgp_proto_init()
if !protoimpl.UnsafeEnabled {
file_attribute_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OriginAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AsSegment); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AsPathAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NextHopAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MultiExitDiscAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LocalPrefAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AtomicAggregateAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AggregatorAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CommunitiesAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OriginatorIdAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClusterListAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IPAddressPrefix); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LabeledIPAddressPrefix); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EncapsulationNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteDistinguisherTwoOctetASN); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteDistinguisherIPAddress); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteDistinguisherFourOctetASN); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EthernetSegmentIdentifier); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EVPNEthernetAutoDiscoveryRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EVPNMACIPAdvertisementRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EVPNInclusiveMulticastEthernetTagRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EVPNEthernetSegmentRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EVPNIPPrefixRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EVPNIPMSIRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRPolicyNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LabeledVPNIPAddressPrefix); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteTargetMembershipNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FlowSpecIPPrefix); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FlowSpecMAC); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FlowSpecComponentItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FlowSpecComponent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FlowSpecNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VPNFlowSpecNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OpaqueNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsNodeDescriptor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsLinkDescriptor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsPrefixDescriptor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsNodeNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsLinkNLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsPrefixV4NLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsPrefixV6NLRI); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsAddrPrefix); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MUPInterworkSegmentDiscoveryRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MUPDirectSegmentDiscoveryRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MUPType1SessionTransformedRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MUPType2SessionTransformedRoute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MpReachNLRIAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MpUnreachNLRIAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TwoOctetAsSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IPv4AddressSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FourOctetAsSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LinkBandwidthExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ValidationExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ColorExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EncapExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DefaultGatewayExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OpaqueExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ESILabelExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ESImportRouteTarget); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MacMobilityExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouterMacExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrafficRateExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrafficActionExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RedirectTwoOctetAsSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RedirectIPv4AddressSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RedirectFourOctetAsSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrafficRemarkExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MUPExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnknownExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExtendedCommunitiesAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*As4PathAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*As4AggregatorAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PmsiTunnelAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVEncapsulation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVProtocol); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVColor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVSRPreference); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVSRCandidatePathName); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVSRPriority); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVSRBindingSID); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRBindingSID); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6EndPointBehavior); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6BindingSID); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVSRENLP); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRWeight); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SegmentFlags); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SegmentTypeA); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SegmentTypeB); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVSRSegmentList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVEgressEndpoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVUDPDestPort); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapSubTLVUnknown); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapTLV); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TunnelEncapAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IPv6AddressSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RedirectIPv6AddressSpecificExtended); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IP6ExtendedCommunitiesAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AigpTLVIGPMetric); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AigpTLVUnknown); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AigpAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LargeCommunity); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LargeCommunitiesAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsNodeFlags); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsIGPFlags); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsSrRange); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsSrCapabilities); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsSrLocalBlock); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsAttributeNode); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsAttributeLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsAttributePrefix); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnknownAttribute); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6StructureSubSubTLV); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6SIDFlags); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6TLV); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6InformationSubTLV); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6L3ServiceTLV); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SRv6L2ServiceTLV); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_attribute_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PrefixSID); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_attribute_proto_rawDesc,
NumEnums: 6,
NumMessages: 122,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_attribute_proto_goTypes,
DependencyIndexes: file_attribute_proto_depIdxs,
EnumInfos: file_attribute_proto_enumTypes,
MessageInfos: file_attribute_proto_msgTypes,
}.Build()
File_attribute_proto = out.File
file_attribute_proto_rawDesc = nil
file_attribute_proto_goTypes = nil
file_attribute_proto_depIdxs = nil
}