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
Mikael Magnusson c70d99cc91 add pb for UDP destination port sub-TLV
Generated with tools/grpc/genproto.sh

Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
2021-01-23 09:03:18 +09:00

4156 lines
147 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: attribute.proto
/*
Package gobgpapi is a generated protocol buffer package.
It is generated from these files:
attribute.proto
capability.proto
gobgp.proto
It has these top-level messages:
OriginAttribute
AsSegment
AsPathAttribute
NextHopAttribute
MultiExitDiscAttribute
LocalPrefAttribute
AtomicAggregateAttribute
AggregatorAttribute
CommunitiesAttribute
OriginatorIdAttribute
ClusterListAttribute
IPAddressPrefix
LabeledIPAddressPrefix
EncapsulationNLRI
RouteDistinguisherTwoOctetAS
RouteDistinguisherIPAddress
RouteDistinguisherFourOctetAS
EthernetSegmentIdentifier
EVPNEthernetAutoDiscoveryRoute
EVPNMACIPAdvertisementRoute
EVPNInclusiveMulticastEthernetTagRoute
EVPNEthernetSegmentRoute
EVPNIPPrefixRoute
EVPNIPMSIRoute
SRPolicyNLRI
LabeledVPNIPAddressPrefix
RouteTargetMembershipNLRI
FlowSpecIPPrefix
FlowSpecMAC
FlowSpecComponentItem
FlowSpecComponent
FlowSpecNLRI
VPNFlowSpecNLRI
OpaqueNLRI
LsNodeDescriptor
LsLinkDescriptor
LsPrefixDescriptor
LsNodeNLRI
LsLinkNLRI
LsPrefixV4NLRI
LsPrefixV6NLRI
LsAddrPrefix
MpReachNLRIAttribute
MpUnreachNLRIAttribute
TwoOctetAsSpecificExtended
IPv4AddressSpecificExtended
FourOctetAsSpecificExtended
ValidationExtended
ColorExtended
EncapExtended
DefaultGatewayExtended
OpaqueExtended
ESILabelExtended
ESImportRouteTarget
MacMobilityExtended
RouterMacExtended
TrafficRateExtended
TrafficActionExtended
RedirectTwoOctetAsSpecificExtended
RedirectIPv4AddressSpecificExtended
RedirectFourOctetAsSpecificExtended
TrafficRemarkExtended
UnknownExtended
ExtendedCommunitiesAttribute
As4PathAttribute
As4AggregatorAttribute
PmsiTunnelAttribute
TunnelEncapSubTLVEncapsulation
TunnelEncapSubTLVProtocol
TunnelEncapSubTLVColor
TunnelEncapSubTLVSRPreference
TunnelEncapSubTLVSRCandidatePathName
TunnelEncapSubTLVSRPriority
TunnelEncapSubTLVSRBindingSID
SRBindingSID
SRv6EndPpointBehavior
SRv6BindingSID
TunnelEncapSubTLVSRENLP
SRWeight
SegmentFlags
SegmentTypeA
SegmentTypeB
TunnelEncapSubTLVSRSegmentList
TunnelEncapSubTLVUDPDestPort
TunnelEncapSubTLVUnknown
TunnelEncapTLV
TunnelEncapAttribute
IPv6AddressSpecificExtended
RedirectIPv6AddressSpecificExtended
IP6ExtendedCommunitiesAttribute
AigpTLVIGPMetric
AigpTLVUnknown
AigpAttribute
LargeCommunity
LargeCommunitiesAttribute
LsNodeFlags
LsIGPFlags
LsSrRange
LsSrCapabilities
LsSrLocalBlock
LsAttributeNode
LsAttributeLink
LsAttributePrefix
LsAttribute
UnknownAttribute
SRv6StructureSubSubTLV
SRv6SIDFlags
SRv6TLV
SRv6InformationSubTLV
SRv6L3ServiceTLV
PrefixSID
MultiProtocolCapability
RouteRefreshCapability
CarryingLabelInfoCapability
ExtendedNexthopCapabilityTuple
ExtendedNexthopCapability
GracefulRestartCapabilityTuple
GracefulRestartCapability
FourOctetASNumberCapability
AddPathCapabilityTuple
AddPathCapability
EnhancedRouteRefreshCapability
LongLivedGracefulRestartCapabilityTuple
LongLivedGracefulRestartCapability
RouteRefreshCiscoCapability
UnknownCapability
StartBgpRequest
StopBgpRequest
GetBgpRequest
GetBgpResponse
AddPeerRequest
DeletePeerRequest
ListPeerRequest
ListPeerResponse
UpdatePeerRequest
UpdatePeerResponse
ResetPeerRequest
ShutdownPeerRequest
EnablePeerRequest
DisablePeerRequest
MonitorPeerRequest
MonitorPeerResponse
AddPeerGroupRequest
DeletePeerGroupRequest
UpdatePeerGroupRequest
UpdatePeerGroupResponse
AddDynamicNeighborRequest
AddPathRequest
AddPathResponse
DeletePathRequest
ListPathRequest
ListPathResponse
AddPathStreamRequest
GetTableRequest
GetTableResponse
MonitorTableRequest
MonitorTableResponse
AddVrfRequest
DeleteVrfRequest
ListVrfRequest
ListVrfResponse
AddPolicyRequest
DeletePolicyRequest
ListPolicyRequest
ListPolicyResponse
SetPoliciesRequest
AddDefinedSetRequest
DeleteDefinedSetRequest
ListDefinedSetRequest
ListDefinedSetResponse
AddStatementRequest
DeleteStatementRequest
ListStatementRequest
ListStatementResponse
AddPolicyAssignmentRequest
DeletePolicyAssignmentRequest
ListPolicyAssignmentRequest
ListPolicyAssignmentResponse
SetPolicyAssignmentRequest
AddRpkiRequest
DeleteRpkiRequest
ListRpkiRequest
ListRpkiResponse
EnableRpkiRequest
DisableRpkiRequest
ResetRpkiRequest
ListRpkiTableRequest
ListRpkiTableResponse
EnableZebraRequest
EnableMrtRequest
DisableMrtRequest
AddBmpRequest
DeleteBmpRequest
Family
Validation
Path
Destination
TableLookupPrefix
Peer
PeerGroup
DynamicNeighbor
ApplyPolicy
PrefixLimit
PeerConf
PeerGroupConf
PeerGroupState
EbgpMultihop
RouteReflector
PeerState
Messages
Message
Queues
Timers
TimersConfig
TimersState
Transport
RouteServer
GracefulRestart
MpGracefulRestartConfig
MpGracefulRestartState
MpGracefulRestart
AfiSafiConfig
AfiSafiState
RouteSelectionOptionsConfig
RouteSelectionOptionsState
RouteSelectionOptions
UseMultiplePathsConfig
UseMultiplePathsState
EbgpConfig
EbgpState
Ebgp
IbgpConfig
IbgpState
Ibgp
UseMultiplePaths
RouteTargetMembershipConfig
RouteTargetMembershipState
RouteTargetMembership
LongLivedGracefulRestartConfig
LongLivedGracefulRestartState
LongLivedGracefulRestart
AfiSafi
AddPathsConfig
AddPathsState
AddPaths
Prefix
DefinedSet
MatchSet
AsPathLength
Conditions
CommunityAction
MedAction
AsPrependAction
NexthopAction
LocalPrefAction
Actions
Statement
Policy
PolicyAssignment
RoutingPolicy
Roa
Vrf
DefaultRouteDistance
Global
Confederation
RPKIConf
RPKIState
Rpki
SetLogLevelRequest
*/
package gobgpapi
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/any"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// 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
)
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",
}
var 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) String() string {
return proto.EnumName(LsNLRIType_name, int32(x))
}
func (LsNLRIType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
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
)
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",
}
var 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) String() string {
return proto.EnumName(LsProtocolID_name, int32(x))
}
func (LsProtocolID) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
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
)
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",
}
var 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,
}
func (x SRv6Behavior) String() string {
return proto.EnumName(SRv6Behavior_name, int32(x))
}
func (SRv6Behavior) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
type ENLPType int32
const (
ENLPType_Reserved ENLPType = 0
ENLPType_Type1 ENLPType = 1
ENLPType_Type2 ENLPType = 2
ENLPType_Type3 ENLPType = 3
ENLPType_Type4 ENLPType = 4
)
var ENLPType_name = map[int32]string{
0: "Reserved",
1: "Type1",
2: "Type2",
3: "Type3",
4: "Type4",
}
var ENLPType_value = map[string]int32{
"Reserved": 0,
"Type1": 1,
"Type2": 2,
"Type3": 3,
"Type4": 4,
}
func (x ENLPType) String() string {
return proto.EnumName(ENLPType_name, int32(x))
}
func (ENLPType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
type OriginAttribute struct {
Origin uint32 `protobuf:"varint,1,opt,name=origin" json:"origin,omitempty"`
}
func (m *OriginAttribute) Reset() { *m = OriginAttribute{} }
func (m *OriginAttribute) String() string { return proto.CompactTextString(m) }
func (*OriginAttribute) ProtoMessage() {}
func (*OriginAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *OriginAttribute) GetOrigin() uint32 {
if m != nil {
return m.Origin
}
return 0
}
type AsSegment struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Numbers []uint32 `protobuf:"varint,2,rep,packed,name=numbers" json:"numbers,omitempty"`
}
func (m *AsSegment) Reset() { *m = AsSegment{} }
func (m *AsSegment) String() string { return proto.CompactTextString(m) }
func (*AsSegment) ProtoMessage() {}
func (*AsSegment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (m *AsSegment) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *AsSegment) GetNumbers() []uint32 {
if m != nil {
return m.Numbers
}
return nil
}
type AsPathAttribute struct {
Segments []*AsSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
}
func (m *AsPathAttribute) Reset() { *m = AsPathAttribute{} }
func (m *AsPathAttribute) String() string { return proto.CompactTextString(m) }
func (*AsPathAttribute) ProtoMessage() {}
func (*AsPathAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
func (m *AsPathAttribute) GetSegments() []*AsSegment {
if m != nil {
return m.Segments
}
return nil
}
type NextHopAttribute struct {
NextHop string `protobuf:"bytes,1,opt,name=next_hop,json=nextHop" json:"next_hop,omitempty"`
}
func (m *NextHopAttribute) Reset() { *m = NextHopAttribute{} }
func (m *NextHopAttribute) String() string { return proto.CompactTextString(m) }
func (*NextHopAttribute) ProtoMessage() {}
func (*NextHopAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (m *NextHopAttribute) GetNextHop() string {
if m != nil {
return m.NextHop
}
return ""
}
type MultiExitDiscAttribute struct {
Med uint32 `protobuf:"varint,1,opt,name=med" json:"med,omitempty"`
}
func (m *MultiExitDiscAttribute) Reset() { *m = MultiExitDiscAttribute{} }
func (m *MultiExitDiscAttribute) String() string { return proto.CompactTextString(m) }
func (*MultiExitDiscAttribute) ProtoMessage() {}
func (*MultiExitDiscAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
func (m *MultiExitDiscAttribute) GetMed() uint32 {
if m != nil {
return m.Med
}
return 0
}
type LocalPrefAttribute struct {
LocalPref uint32 `protobuf:"varint,1,opt,name=local_pref,json=localPref" json:"local_pref,omitempty"`
}
func (m *LocalPrefAttribute) Reset() { *m = LocalPrefAttribute{} }
func (m *LocalPrefAttribute) String() string { return proto.CompactTextString(m) }
func (*LocalPrefAttribute) ProtoMessage() {}
func (*LocalPrefAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *LocalPrefAttribute) GetLocalPref() uint32 {
if m != nil {
return m.LocalPref
}
return 0
}
type AtomicAggregateAttribute struct {
}
func (m *AtomicAggregateAttribute) Reset() { *m = AtomicAggregateAttribute{} }
func (m *AtomicAggregateAttribute) String() string { return proto.CompactTextString(m) }
func (*AtomicAggregateAttribute) ProtoMessage() {}
func (*AtomicAggregateAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
type AggregatorAttribute struct {
As uint32 `protobuf:"varint,2,opt,name=as" json:"as,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
}
func (m *AggregatorAttribute) Reset() { *m = AggregatorAttribute{} }
func (m *AggregatorAttribute) String() string { return proto.CompactTextString(m) }
func (*AggregatorAttribute) ProtoMessage() {}
func (*AggregatorAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *AggregatorAttribute) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *AggregatorAttribute) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
type CommunitiesAttribute struct {
Communities []uint32 `protobuf:"varint,1,rep,packed,name=communities" json:"communities,omitempty"`
}
func (m *CommunitiesAttribute) Reset() { *m = CommunitiesAttribute{} }
func (m *CommunitiesAttribute) String() string { return proto.CompactTextString(m) }
func (*CommunitiesAttribute) ProtoMessage() {}
func (*CommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *CommunitiesAttribute) GetCommunities() []uint32 {
if m != nil {
return m.Communities
}
return nil
}
type OriginatorIdAttribute struct {
Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
}
func (m *OriginatorIdAttribute) Reset() { *m = OriginatorIdAttribute{} }
func (m *OriginatorIdAttribute) String() string { return proto.CompactTextString(m) }
func (*OriginatorIdAttribute) ProtoMessage() {}
func (*OriginatorIdAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (m *OriginatorIdAttribute) GetId() string {
if m != nil {
return m.Id
}
return ""
}
type ClusterListAttribute struct {
Ids []string `protobuf:"bytes,1,rep,name=ids" json:"ids,omitempty"`
}
func (m *ClusterListAttribute) Reset() { *m = ClusterListAttribute{} }
func (m *ClusterListAttribute) String() string { return proto.CompactTextString(m) }
func (*ClusterListAttribute) ProtoMessage() {}
func (*ClusterListAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (m *ClusterListAttribute) GetIds() []string {
if m != nil {
return m.Ids
}
return nil
}
// IPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=1
// - AFI=2, SAFI=1
type IPAddressPrefix struct {
PrefixLen uint32 `protobuf:"varint,1,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"`
}
func (m *IPAddressPrefix) Reset() { *m = IPAddressPrefix{} }
func (m *IPAddressPrefix) String() string { return proto.CompactTextString(m) }
func (*IPAddressPrefix) ProtoMessage() {}
func (*IPAddressPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *IPAddressPrefix) GetPrefixLen() uint32 {
if m != nil {
return m.PrefixLen
}
return 0
}
func (m *IPAddressPrefix) GetPrefix() string {
if m != nil {
return m.Prefix
}
return ""
}
// LabeledIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=4
// - AFI=2, SAFI=4
type LabeledIPAddressPrefix struct {
Labels []uint32 `protobuf:"varint,1,rep,packed,name=labels" json:"labels,omitempty"`
PrefixLen uint32 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,3,opt,name=prefix" json:"prefix,omitempty"`
}
func (m *LabeledIPAddressPrefix) Reset() { *m = LabeledIPAddressPrefix{} }
func (m *LabeledIPAddressPrefix) String() string { return proto.CompactTextString(m) }
func (*LabeledIPAddressPrefix) ProtoMessage() {}
func (*LabeledIPAddressPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (m *LabeledIPAddressPrefix) GetLabels() []uint32 {
if m != nil {
return m.Labels
}
return nil
}
func (m *LabeledIPAddressPrefix) GetPrefixLen() uint32 {
if m != nil {
return m.PrefixLen
}
return 0
}
func (m *LabeledIPAddressPrefix) GetPrefix() string {
if m != nil {
return m.Prefix
}
return ""
}
// EncapsulationNLRI represents the NLRI for:
// - AFI=1, SAFI=7
// - AFI=2, SAFI=7
type EncapsulationNLRI struct {
Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
}
func (m *EncapsulationNLRI) Reset() { *m = EncapsulationNLRI{} }
func (m *EncapsulationNLRI) String() string { return proto.CompactTextString(m) }
func (*EncapsulationNLRI) ProtoMessage() {}
func (*EncapsulationNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (m *EncapsulationNLRI) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
type RouteDistinguisherTwoOctetAS struct {
Admin uint32 `protobuf:"varint,1,opt,name=admin" json:"admin,omitempty"`
Assigned uint32 `protobuf:"varint,2,opt,name=assigned" json:"assigned,omitempty"`
}
func (m *RouteDistinguisherTwoOctetAS) Reset() { *m = RouteDistinguisherTwoOctetAS{} }
func (m *RouteDistinguisherTwoOctetAS) String() string { return proto.CompactTextString(m) }
func (*RouteDistinguisherTwoOctetAS) ProtoMessage() {}
func (*RouteDistinguisherTwoOctetAS) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *RouteDistinguisherTwoOctetAS) GetAdmin() uint32 {
if m != nil {
return m.Admin
}
return 0
}
func (m *RouteDistinguisherTwoOctetAS) GetAssigned() uint32 {
if m != nil {
return m.Assigned
}
return 0
}
type RouteDistinguisherIPAddress struct {
Admin string `protobuf:"bytes,1,opt,name=admin" json:"admin,omitempty"`
Assigned uint32 `protobuf:"varint,2,opt,name=assigned" json:"assigned,omitempty"`
}
func (m *RouteDistinguisherIPAddress) Reset() { *m = RouteDistinguisherIPAddress{} }
func (m *RouteDistinguisherIPAddress) String() string { return proto.CompactTextString(m) }
func (*RouteDistinguisherIPAddress) ProtoMessage() {}
func (*RouteDistinguisherIPAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *RouteDistinguisherIPAddress) GetAdmin() string {
if m != nil {
return m.Admin
}
return ""
}
func (m *RouteDistinguisherIPAddress) GetAssigned() uint32 {
if m != nil {
return m.Assigned
}
return 0
}
type RouteDistinguisherFourOctetAS struct {
Admin uint32 `protobuf:"varint,1,opt,name=admin" json:"admin,omitempty"`
Assigned uint32 `protobuf:"varint,2,opt,name=assigned" json:"assigned,omitempty"`
}
func (m *RouteDistinguisherFourOctetAS) Reset() { *m = RouteDistinguisherFourOctetAS{} }
func (m *RouteDistinguisherFourOctetAS) String() string { return proto.CompactTextString(m) }
func (*RouteDistinguisherFourOctetAS) ProtoMessage() {}
func (*RouteDistinguisherFourOctetAS) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *RouteDistinguisherFourOctetAS) GetAdmin() uint32 {
if m != nil {
return m.Admin
}
return 0
}
func (m *RouteDistinguisherFourOctetAS) GetAssigned() uint32 {
if m != nil {
return m.Assigned
}
return 0
}
type EthernetSegmentIdentifier struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *EthernetSegmentIdentifier) Reset() { *m = EthernetSegmentIdentifier{} }
func (m *EthernetSegmentIdentifier) String() string { return proto.CompactTextString(m) }
func (*EthernetSegmentIdentifier) ProtoMessage() {}
func (*EthernetSegmentIdentifier) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *EthernetSegmentIdentifier) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *EthernetSegmentIdentifier) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
// EVPNEthernetAutoDiscoveryRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=1
type EVPNEthernetAutoDiscoveryRoute struct {
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
EthernetTag uint32 `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
Label uint32 `protobuf:"varint,4,opt,name=label" json:"label,omitempty"`
}
func (m *EVPNEthernetAutoDiscoveryRoute) Reset() { *m = EVPNEthernetAutoDiscoveryRoute{} }
func (m *EVPNEthernetAutoDiscoveryRoute) String() string { return proto.CompactTextString(m) }
func (*EVPNEthernetAutoDiscoveryRoute) ProtoMessage() {}
func (*EVPNEthernetAutoDiscoveryRoute) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{18}
}
func (m *EVPNEthernetAutoDiscoveryRoute) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *EVPNEthernetAutoDiscoveryRoute) GetEsi() *EthernetSegmentIdentifier {
if m != nil {
return m.Esi
}
return nil
}
func (m *EVPNEthernetAutoDiscoveryRoute) GetEthernetTag() uint32 {
if m != nil {
return m.EthernetTag
}
return 0
}
func (m *EVPNEthernetAutoDiscoveryRoute) GetLabel() uint32 {
if m != nil {
return m.Label
}
return 0
}
// EVPNMACIPAdvertisementRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=2
type EVPNMACIPAdvertisementRoute struct {
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
EthernetTag uint32 `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
MacAddress string `protobuf:"bytes,4,opt,name=mac_address,json=macAddress" json:"mac_address,omitempty"`
IpAddress string `protobuf:"bytes,5,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
Labels []uint32 `protobuf:"varint,6,rep,packed,name=labels" json:"labels,omitempty"`
}
func (m *EVPNMACIPAdvertisementRoute) Reset() { *m = EVPNMACIPAdvertisementRoute{} }
func (m *EVPNMACIPAdvertisementRoute) String() string { return proto.CompactTextString(m) }
func (*EVPNMACIPAdvertisementRoute) ProtoMessage() {}
func (*EVPNMACIPAdvertisementRoute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *EVPNMACIPAdvertisementRoute) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *EVPNMACIPAdvertisementRoute) GetEsi() *EthernetSegmentIdentifier {
if m != nil {
return m.Esi
}
return nil
}
func (m *EVPNMACIPAdvertisementRoute) GetEthernetTag() uint32 {
if m != nil {
return m.EthernetTag
}
return 0
}
func (m *EVPNMACIPAdvertisementRoute) GetMacAddress() string {
if m != nil {
return m.MacAddress
}
return ""
}
func (m *EVPNMACIPAdvertisementRoute) GetIpAddress() string {
if m != nil {
return m.IpAddress
}
return ""
}
func (m *EVPNMACIPAdvertisementRoute) GetLabels() []uint32 {
if m != nil {
return m.Labels
}
return nil
}
// EVPNInclusiveMulticastEthernetTagRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=3
type EVPNInclusiveMulticastEthernetTagRoute struct {
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
EthernetTag uint32 `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
}
func (m *EVPNInclusiveMulticastEthernetTagRoute) Reset() {
*m = EVPNInclusiveMulticastEthernetTagRoute{}
}
func (m *EVPNInclusiveMulticastEthernetTagRoute) String() string { return proto.CompactTextString(m) }
func (*EVPNInclusiveMulticastEthernetTagRoute) ProtoMessage() {}
func (*EVPNInclusiveMulticastEthernetTagRoute) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{20}
}
func (m *EVPNInclusiveMulticastEthernetTagRoute) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *EVPNInclusiveMulticastEthernetTagRoute) GetEthernetTag() uint32 {
if m != nil {
return m.EthernetTag
}
return 0
}
func (m *EVPNInclusiveMulticastEthernetTagRoute) GetIpAddress() string {
if m != nil {
return m.IpAddress
}
return ""
}
// EVPNEthernetSegmentRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=4
type EVPNEthernetSegmentRoute struct {
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
}
func (m *EVPNEthernetSegmentRoute) Reset() { *m = EVPNEthernetSegmentRoute{} }
func (m *EVPNEthernetSegmentRoute) String() string { return proto.CompactTextString(m) }
func (*EVPNEthernetSegmentRoute) ProtoMessage() {}
func (*EVPNEthernetSegmentRoute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (m *EVPNEthernetSegmentRoute) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *EVPNEthernetSegmentRoute) GetEsi() *EthernetSegmentIdentifier {
if m != nil {
return m.Esi
}
return nil
}
func (m *EVPNEthernetSegmentRoute) GetIpAddress() string {
if m != nil {
return m.IpAddress
}
return ""
}
// EVPNIPPrefixRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=5
type EVPNIPPrefixRoute struct {
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
Esi *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
EthernetTag uint32 `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
IpPrefix string `protobuf:"bytes,4,opt,name=ip_prefix,json=ipPrefix" json:"ip_prefix,omitempty"`
IpPrefixLen uint32 `protobuf:"varint,5,opt,name=ip_prefix_len,json=ipPrefixLen" json:"ip_prefix_len,omitempty"`
GwAddress string `protobuf:"bytes,6,opt,name=gw_address,json=gwAddress" json:"gw_address,omitempty"`
Label uint32 `protobuf:"varint,7,opt,name=label" json:"label,omitempty"`
}
func (m *EVPNIPPrefixRoute) Reset() { *m = EVPNIPPrefixRoute{} }
func (m *EVPNIPPrefixRoute) String() string { return proto.CompactTextString(m) }
func (*EVPNIPPrefixRoute) ProtoMessage() {}
func (*EVPNIPPrefixRoute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (m *EVPNIPPrefixRoute) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *EVPNIPPrefixRoute) GetEsi() *EthernetSegmentIdentifier {
if m != nil {
return m.Esi
}
return nil
}
func (m *EVPNIPPrefixRoute) GetEthernetTag() uint32 {
if m != nil {
return m.EthernetTag
}
return 0
}
func (m *EVPNIPPrefixRoute) GetIpPrefix() string {
if m != nil {
return m.IpPrefix
}
return ""
}
func (m *EVPNIPPrefixRoute) GetIpPrefixLen() uint32 {
if m != nil {
return m.IpPrefixLen
}
return 0
}
func (m *EVPNIPPrefixRoute) GetGwAddress() string {
if m != nil {
return m.GwAddress
}
return ""
}
func (m *EVPNIPPrefixRoute) GetLabel() uint32 {
if m != nil {
return m.Label
}
return 0
}
// EVPNIPMSIRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=9
type EVPNIPMSIRoute struct {
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
EthernetTag uint32 `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
Rt *google_protobuf.Any `protobuf:"bytes,3,opt,name=rt" json:"rt,omitempty"`
}
func (m *EVPNIPMSIRoute) Reset() { *m = EVPNIPMSIRoute{} }
func (m *EVPNIPMSIRoute) String() string { return proto.CompactTextString(m) }
func (*EVPNIPMSIRoute) ProtoMessage() {}
func (*EVPNIPMSIRoute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (m *EVPNIPMSIRoute) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *EVPNIPMSIRoute) GetEthernetTag() uint32 {
if m != nil {
return m.EthernetTag
}
return 0
}
func (m *EVPNIPMSIRoute) GetRt() *google_protobuf.Any {
if m != nil {
return m.Rt
}
return nil
}
// SRPolicyNLRI represents the NLRI for:
// - AFI=1, SAFI=73
// - AFI=2, SAFI=73
type SRPolicyNLRI struct {
// length field carries the length of NLRI portion expressed in bits
Length uint32 `protobuf:"varint,1,opt,name=length" 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" 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" 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 (m *SRPolicyNLRI) Reset() { *m = SRPolicyNLRI{} }
func (m *SRPolicyNLRI) String() string { return proto.CompactTextString(m) }
func (*SRPolicyNLRI) ProtoMessage() {}
func (*SRPolicyNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (m *SRPolicyNLRI) GetLength() uint32 {
if m != nil {
return m.Length
}
return 0
}
func (m *SRPolicyNLRI) GetDistinguisher() uint32 {
if m != nil {
return m.Distinguisher
}
return 0
}
func (m *SRPolicyNLRI) GetColor() uint32 {
if m != nil {
return m.Color
}
return 0
}
func (m *SRPolicyNLRI) GetEndpoint() []byte {
if m != nil {
return m.Endpoint
}
return nil
}
// LabeledVPNIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=128
// - AFI=2, SAFI=128
type LabeledVPNIPAddressPrefix struct {
Labels []uint32 `protobuf:"varint,1,rep,packed,name=labels" json:"labels,omitempty"`
// One of:
// - TwoOctetAsSpecificExtended
// - IPv4AddressSpecificExtended
// - FourOctetAsSpecificExtended
Rd *google_protobuf.Any `protobuf:"bytes,2,opt,name=rd" json:"rd,omitempty"`
PrefixLen uint32 `protobuf:"varint,3,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,4,opt,name=prefix" json:"prefix,omitempty"`
}
func (m *LabeledVPNIPAddressPrefix) Reset() { *m = LabeledVPNIPAddressPrefix{} }
func (m *LabeledVPNIPAddressPrefix) String() string { return proto.CompactTextString(m) }
func (*LabeledVPNIPAddressPrefix) ProtoMessage() {}
func (*LabeledVPNIPAddressPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *LabeledVPNIPAddressPrefix) GetLabels() []uint32 {
if m != nil {
return m.Labels
}
return nil
}
func (m *LabeledVPNIPAddressPrefix) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *LabeledVPNIPAddressPrefix) GetPrefixLen() uint32 {
if m != nil {
return m.PrefixLen
}
return 0
}
func (m *LabeledVPNIPAddressPrefix) GetPrefix() string {
if m != nil {
return m.Prefix
}
return ""
}
// RouteTargetMembershipNLRI represents the NLRI for:
// - AFI=1, SAFI=132
type RouteTargetMembershipNLRI struct {
As uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
// One of:
// - TwoOctetAsSpecificExtended
// - IPv4AddressSpecificExtended
// - FourOctetAsSpecificExtended
Rt *google_protobuf.Any `protobuf:"bytes,2,opt,name=rt" json:"rt,omitempty"`
}
func (m *RouteTargetMembershipNLRI) Reset() { *m = RouteTargetMembershipNLRI{} }
func (m *RouteTargetMembershipNLRI) String() string { return proto.CompactTextString(m) }
func (*RouteTargetMembershipNLRI) ProtoMessage() {}
func (*RouteTargetMembershipNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (m *RouteTargetMembershipNLRI) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *RouteTargetMembershipNLRI) GetRt() *google_protobuf.Any {
if m != nil {
return m.Rt
}
return nil
}
type FlowSpecIPPrefix struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
PrefixLen uint32 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
Prefix string `protobuf:"bytes,3,opt,name=prefix" json:"prefix,omitempty"`
// IPv6 only
Offset uint32 `protobuf:"varint,4,opt,name=offset" json:"offset,omitempty"`
}
func (m *FlowSpecIPPrefix) Reset() { *m = FlowSpecIPPrefix{} }
func (m *FlowSpecIPPrefix) String() string { return proto.CompactTextString(m) }
func (*FlowSpecIPPrefix) ProtoMessage() {}
func (*FlowSpecIPPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
func (m *FlowSpecIPPrefix) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *FlowSpecIPPrefix) GetPrefixLen() uint32 {
if m != nil {
return m.PrefixLen
}
return 0
}
func (m *FlowSpecIPPrefix) GetPrefix() string {
if m != nil {
return m.Prefix
}
return ""
}
func (m *FlowSpecIPPrefix) GetOffset() uint32 {
if m != nil {
return m.Offset
}
return 0
}
type FlowSpecMAC struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
}
func (m *FlowSpecMAC) Reset() { *m = FlowSpecMAC{} }
func (m *FlowSpecMAC) String() string { return proto.CompactTextString(m) }
func (*FlowSpecMAC) ProtoMessage() {}
func (*FlowSpecMAC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (m *FlowSpecMAC) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *FlowSpecMAC) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
type FlowSpecComponentItem struct {
// Operator for Numeric type, Operand for Bitmask type
Op uint32 `protobuf:"varint,1,opt,name=op" json:"op,omitempty"`
Value uint64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}
func (m *FlowSpecComponentItem) Reset() { *m = FlowSpecComponentItem{} }
func (m *FlowSpecComponentItem) String() string { return proto.CompactTextString(m) }
func (*FlowSpecComponentItem) ProtoMessage() {}
func (*FlowSpecComponentItem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
func (m *FlowSpecComponentItem) GetOp() uint32 {
if m != nil {
return m.Op
}
return 0
}
func (m *FlowSpecComponentItem) GetValue() uint64 {
if m != nil {
return m.Value
}
return 0
}
type FlowSpecComponent struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Items []*FlowSpecComponentItem `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"`
}
func (m *FlowSpecComponent) Reset() { *m = FlowSpecComponent{} }
func (m *FlowSpecComponent) String() string { return proto.CompactTextString(m) }
func (*FlowSpecComponent) ProtoMessage() {}
func (*FlowSpecComponent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
func (m *FlowSpecComponent) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *FlowSpecComponent) GetItems() []*FlowSpecComponentItem {
if m != nil {
return m.Items
}
return nil
}
// FlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=133
// - AFI=2, SAFI=133
type FlowSpecNLRI struct {
// One of:
// - FlowSpecIPPrefix
// - FlowSpecMAC
// - FlowSpecComponent
Rules []*google_protobuf.Any `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
}
func (m *FlowSpecNLRI) Reset() { *m = FlowSpecNLRI{} }
func (m *FlowSpecNLRI) String() string { return proto.CompactTextString(m) }
func (*FlowSpecNLRI) ProtoMessage() {}
func (*FlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
func (m *FlowSpecNLRI) GetRules() []*google_protobuf.Any {
if m != nil {
return m.Rules
}
return nil
}
// VPNFlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=134
// - AFI=2, SAFI=134
// - AFI=25, SAFI=134
type VPNFlowSpecNLRI struct {
// One of:
// - RouteDistinguisherTwoOctetAS
// - RouteDistinguisherIPAddressAS
// - RouteDistinguisherFourOctetAS
Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
// One of:
// - FlowSpecIPPrefix
// - FlowSpecMAC
// - FlowSpecComponent
Rules []*google_protobuf.Any `protobuf:"bytes,2,rep,name=rules" json:"rules,omitempty"`
}
func (m *VPNFlowSpecNLRI) Reset() { *m = VPNFlowSpecNLRI{} }
func (m *VPNFlowSpecNLRI) String() string { return proto.CompactTextString(m) }
func (*VPNFlowSpecNLRI) ProtoMessage() {}
func (*VPNFlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
func (m *VPNFlowSpecNLRI) GetRd() *google_protobuf.Any {
if m != nil {
return m.Rd
}
return nil
}
func (m *VPNFlowSpecNLRI) GetRules() []*google_protobuf.Any {
if m != nil {
return m.Rules
}
return nil
}
// OpaqueNLRI represents the NLRI for:
// - AFI=16397, SAFI=241
type OpaqueNLRI struct {
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 (m *OpaqueNLRI) Reset() { *m = OpaqueNLRI{} }
func (m *OpaqueNLRI) String() string { return proto.CompactTextString(m) }
func (*OpaqueNLRI) ProtoMessage() {}
func (*OpaqueNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
func (m *OpaqueNLRI) GetKey() []byte {
if m != nil {
return m.Key
}
return nil
}
func (m *OpaqueNLRI) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
type LsNodeDescriptor struct {
Asn uint32 `protobuf:"varint,1,opt,name=asn" json:"asn,omitempty"`
BgpLsId uint32 `protobuf:"varint,2,opt,name=bgp_ls_id,json=bgpLsId" json:"bgp_ls_id,omitempty"`
OspfAreaId uint32 `protobuf:"varint,3,opt,name=ospf_area_id,json=ospfAreaId" json:"ospf_area_id,omitempty"`
Pseudonode bool `protobuf:"varint,4,opt,name=pseudonode" json:"pseudonode,omitempty"`
IgpRouterId string `protobuf:"bytes,5,opt,name=igp_router_id,json=igpRouterId" json:"igp_router_id,omitempty"`
}
func (m *LsNodeDescriptor) Reset() { *m = LsNodeDescriptor{} }
func (m *LsNodeDescriptor) String() string { return proto.CompactTextString(m) }
func (*LsNodeDescriptor) ProtoMessage() {}
func (*LsNodeDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
func (m *LsNodeDescriptor) GetAsn() uint32 {
if m != nil {
return m.Asn
}
return 0
}
func (m *LsNodeDescriptor) GetBgpLsId() uint32 {
if m != nil {
return m.BgpLsId
}
return 0
}
func (m *LsNodeDescriptor) GetOspfAreaId() uint32 {
if m != nil {
return m.OspfAreaId
}
return 0
}
func (m *LsNodeDescriptor) GetPseudonode() bool {
if m != nil {
return m.Pseudonode
}
return false
}
func (m *LsNodeDescriptor) GetIgpRouterId() string {
if m != nil {
return m.IgpRouterId
}
return ""
}
type LsLinkDescriptor struct {
LinkLocalId uint32 `protobuf:"varint,1,opt,name=link_local_id,json=linkLocalId" json:"link_local_id,omitempty"`
LinkRemoteId uint32 `protobuf:"varint,2,opt,name=link_remote_id,json=linkRemoteId" json:"link_remote_id,omitempty"`
InterfaceAddrIpv4 string `protobuf:"bytes,3,opt,name=interface_addr_ipv4,json=interfaceAddrIpv4" json:"interface_addr_ipv4,omitempty"`
NeighborAddrIpv4 string `protobuf:"bytes,4,opt,name=neighbor_addr_ipv4,json=neighborAddrIpv4" json:"neighbor_addr_ipv4,omitempty"`
InterfaceAddrIpv6 string `protobuf:"bytes,5,opt,name=interface_addr_ipv6,json=interfaceAddrIpv6" json:"interface_addr_ipv6,omitempty"`
NeighborAddrIpv6 string `protobuf:"bytes,6,opt,name=neighbor_addr_ipv6,json=neighborAddrIpv6" json:"neighbor_addr_ipv6,omitempty"`
}
func (m *LsLinkDescriptor) Reset() { *m = LsLinkDescriptor{} }
func (m *LsLinkDescriptor) String() string { return proto.CompactTextString(m) }
func (*LsLinkDescriptor) ProtoMessage() {}
func (*LsLinkDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
func (m *LsLinkDescriptor) GetLinkLocalId() uint32 {
if m != nil {
return m.LinkLocalId
}
return 0
}
func (m *LsLinkDescriptor) GetLinkRemoteId() uint32 {
if m != nil {
return m.LinkRemoteId
}
return 0
}
func (m *LsLinkDescriptor) GetInterfaceAddrIpv4() string {
if m != nil {
return m.InterfaceAddrIpv4
}
return ""
}
func (m *LsLinkDescriptor) GetNeighborAddrIpv4() string {
if m != nil {
return m.NeighborAddrIpv4
}
return ""
}
func (m *LsLinkDescriptor) GetInterfaceAddrIpv6() string {
if m != nil {
return m.InterfaceAddrIpv6
}
return ""
}
func (m *LsLinkDescriptor) GetNeighborAddrIpv6() string {
if m != nil {
return m.NeighborAddrIpv6
}
return ""
}
type LsPrefixDescriptor struct {
IpReachability []string `protobuf:"bytes,1,rep,name=ip_reachability,json=ipReachability" json:"ip_reachability,omitempty"`
OspfRouteType string `protobuf:"bytes,2,opt,name=ospf_route_type,json=ospfRouteType" json:"ospf_route_type,omitempty"`
}
func (m *LsPrefixDescriptor) Reset() { *m = LsPrefixDescriptor{} }
func (m *LsPrefixDescriptor) String() string { return proto.CompactTextString(m) }
func (*LsPrefixDescriptor) ProtoMessage() {}
func (*LsPrefixDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
func (m *LsPrefixDescriptor) GetIpReachability() []string {
if m != nil {
return m.IpReachability
}
return nil
}
func (m *LsPrefixDescriptor) GetOspfRouteType() string {
if m != nil {
return m.OspfRouteType
}
return ""
}
type LsNodeNLRI struct {
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode" json:"local_node,omitempty"`
}
func (m *LsNodeNLRI) Reset() { *m = LsNodeNLRI{} }
func (m *LsNodeNLRI) String() string { return proto.CompactTextString(m) }
func (*LsNodeNLRI) ProtoMessage() {}
func (*LsNodeNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
func (m *LsNodeNLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
return m.LocalNode
}
return nil
}
type LsLinkNLRI struct {
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode" json:"local_node,omitempty"`
RemoteNode *LsNodeDescriptor `protobuf:"bytes,2,opt,name=remote_node,json=remoteNode" json:"remote_node,omitempty"`
LinkDescriptor *LsLinkDescriptor `protobuf:"bytes,3,opt,name=link_descriptor,json=linkDescriptor" json:"link_descriptor,omitempty"`
}
func (m *LsLinkNLRI) Reset() { *m = LsLinkNLRI{} }
func (m *LsLinkNLRI) String() string { return proto.CompactTextString(m) }
func (*LsLinkNLRI) ProtoMessage() {}
func (*LsLinkNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
func (m *LsLinkNLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
return m.LocalNode
}
return nil
}
func (m *LsLinkNLRI) GetRemoteNode() *LsNodeDescriptor {
if m != nil {
return m.RemoteNode
}
return nil
}
func (m *LsLinkNLRI) GetLinkDescriptor() *LsLinkDescriptor {
if m != nil {
return m.LinkDescriptor
}
return nil
}
type LsPrefixV4NLRI struct {
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode" json:"local_node,omitempty"`
PrefixDescriptor *LsPrefixDescriptor `protobuf:"bytes,2,opt,name=prefix_descriptor,json=prefixDescriptor" json:"prefix_descriptor,omitempty"`
}
func (m *LsPrefixV4NLRI) Reset() { *m = LsPrefixV4NLRI{} }
func (m *LsPrefixV4NLRI) String() string { return proto.CompactTextString(m) }
func (*LsPrefixV4NLRI) ProtoMessage() {}
func (*LsPrefixV4NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (m *LsPrefixV4NLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
return m.LocalNode
}
return nil
}
func (m *LsPrefixV4NLRI) GetPrefixDescriptor() *LsPrefixDescriptor {
if m != nil {
return m.PrefixDescriptor
}
return nil
}
type LsPrefixV6NLRI struct {
LocalNode *LsNodeDescriptor `protobuf:"bytes,1,opt,name=local_node,json=localNode" json:"local_node,omitempty"`
PrefixDescriptor *LsPrefixDescriptor `protobuf:"bytes,2,opt,name=prefix_descriptor,json=prefixDescriptor" json:"prefix_descriptor,omitempty"`
}
func (m *LsPrefixV6NLRI) Reset() { *m = LsPrefixV6NLRI{} }
func (m *LsPrefixV6NLRI) String() string { return proto.CompactTextString(m) }
func (*LsPrefixV6NLRI) ProtoMessage() {}
func (*LsPrefixV6NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
func (m *LsPrefixV6NLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
return m.LocalNode
}
return nil
}
func (m *LsPrefixV6NLRI) GetPrefixDescriptor() *LsPrefixDescriptor {
if m != nil {
return m.PrefixDescriptor
}
return nil
}
// LsAddrPrefix represents the NLRI for:
// - AFI=16388, SAFI=71
type LsAddrPrefix struct {
Type LsNLRIType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.LsNLRIType" json:"type,omitempty"`
// One of:
// - LsNodeNLRI
// - LsLinkNLRI
// - LsPrefixV4NLRI
// - LsPrefixV6NLRI
Nlri *google_protobuf.Any `protobuf:"bytes,2,opt,name=nlri" json:"nlri,omitempty"`
Length uint32 `protobuf:"varint,3,opt,name=length" json:"length,omitempty"`
ProtocolId LsProtocolID `protobuf:"varint,4,opt,name=protocol_id,json=protocolId,enum=gobgpapi.LsProtocolID" json:"protocol_id,omitempty"`
Identifier uint64 `protobuf:"varint,5,opt,name=identifier" json:"identifier,omitempty"`
}
func (m *LsAddrPrefix) Reset() { *m = LsAddrPrefix{} }
func (m *LsAddrPrefix) String() string { return proto.CompactTextString(m) }
func (*LsAddrPrefix) ProtoMessage() {}
func (*LsAddrPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
func (m *LsAddrPrefix) GetType() LsNLRIType {
if m != nil {
return m.Type
}
return LsNLRIType_LS_NLRI_UNKNOWN
}
func (m *LsAddrPrefix) GetNlri() *google_protobuf.Any {
if m != nil {
return m.Nlri
}
return nil
}
func (m *LsAddrPrefix) GetLength() uint32 {
if m != nil {
return m.Length
}
return 0
}
func (m *LsAddrPrefix) GetProtocolId() LsProtocolID {
if m != nil {
return m.ProtocolId
}
return LsProtocolID_LS_PROTOCOL_UNKNOWN
}
func (m *LsAddrPrefix) GetIdentifier() uint64 {
if m != nil {
return m.Identifier
}
return 0
}
type MpReachNLRIAttribute struct {
Family *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
NextHops []string `protobuf:"bytes,2,rep,name=next_hops,json=nextHops" 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
Nlris []*google_protobuf.Any `protobuf:"bytes,3,rep,name=nlris" json:"nlris,omitempty"`
}
func (m *MpReachNLRIAttribute) Reset() { *m = MpReachNLRIAttribute{} }
func (m *MpReachNLRIAttribute) String() string { return proto.CompactTextString(m) }
func (*MpReachNLRIAttribute) ProtoMessage() {}
func (*MpReachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
func (m *MpReachNLRIAttribute) GetFamily() *Family {
if m != nil {
return m.Family
}
return nil
}
func (m *MpReachNLRIAttribute) GetNextHops() []string {
if m != nil {
return m.NextHops
}
return nil
}
func (m *MpReachNLRIAttribute) GetNlris() []*google_protobuf.Any {
if m != nil {
return m.Nlris
}
return nil
}
type MpUnreachNLRIAttribute struct {
Family *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
// The same as NLRI field of MpReachNLRIAttribute
Nlris []*google_protobuf.Any `protobuf:"bytes,3,rep,name=nlris" json:"nlris,omitempty"`
}
func (m *MpUnreachNLRIAttribute) Reset() { *m = MpUnreachNLRIAttribute{} }
func (m *MpUnreachNLRIAttribute) String() string { return proto.CompactTextString(m) }
func (*MpUnreachNLRIAttribute) ProtoMessage() {}
func (*MpUnreachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (m *MpUnreachNLRIAttribute) GetFamily() *Family {
if m != nil {
return m.Family
}
return nil
}
func (m *MpUnreachNLRIAttribute) GetNlris() []*google_protobuf.Any {
if m != nil {
return m.Nlris
}
return nil
}
type TwoOctetAsSpecificExtended struct {
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
As uint32 `protobuf:"varint,3,opt,name=as" json:"as,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *TwoOctetAsSpecificExtended) Reset() { *m = TwoOctetAsSpecificExtended{} }
func (m *TwoOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*TwoOctetAsSpecificExtended) ProtoMessage() {}
func (*TwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (m *TwoOctetAsSpecificExtended) GetIsTransitive() bool {
if m != nil {
return m.IsTransitive
}
return false
}
func (m *TwoOctetAsSpecificExtended) GetSubType() uint32 {
if m != nil {
return m.SubType
}
return 0
}
func (m *TwoOctetAsSpecificExtended) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *TwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type IPv4AddressSpecificExtended struct {
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *IPv4AddressSpecificExtended) Reset() { *m = IPv4AddressSpecificExtended{} }
func (m *IPv4AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*IPv4AddressSpecificExtended) ProtoMessage() {}
func (*IPv4AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *IPv4AddressSpecificExtended) GetIsTransitive() bool {
if m != nil {
return m.IsTransitive
}
return false
}
func (m *IPv4AddressSpecificExtended) GetSubType() uint32 {
if m != nil {
return m.SubType
}
return 0
}
func (m *IPv4AddressSpecificExtended) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *IPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type FourOctetAsSpecificExtended struct {
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
As uint32 `protobuf:"varint,3,opt,name=as" json:"as,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *FourOctetAsSpecificExtended) Reset() { *m = FourOctetAsSpecificExtended{} }
func (m *FourOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*FourOctetAsSpecificExtended) ProtoMessage() {}
func (*FourOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (m *FourOctetAsSpecificExtended) GetIsTransitive() bool {
if m != nil {
return m.IsTransitive
}
return false
}
func (m *FourOctetAsSpecificExtended) GetSubType() uint32 {
if m != nil {
return m.SubType
}
return 0
}
func (m *FourOctetAsSpecificExtended) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *FourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type ValidationExtended struct {
State uint32 `protobuf:"varint,1,opt,name=state" json:"state,omitempty"`
}
func (m *ValidationExtended) Reset() { *m = ValidationExtended{} }
func (m *ValidationExtended) String() string { return proto.CompactTextString(m) }
func (*ValidationExtended) ProtoMessage() {}
func (*ValidationExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (m *ValidationExtended) GetState() uint32 {
if m != nil {
return m.State
}
return 0
}
type ColorExtended struct {
Color uint32 `protobuf:"varint,1,opt,name=color" json:"color,omitempty"`
}
func (m *ColorExtended) Reset() { *m = ColorExtended{} }
func (m *ColorExtended) String() string { return proto.CompactTextString(m) }
func (*ColorExtended) ProtoMessage() {}
func (*ColorExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
func (m *ColorExtended) GetColor() uint32 {
if m != nil {
return m.Color
}
return 0
}
type EncapExtended struct {
TunnelType uint32 `protobuf:"varint,1,opt,name=tunnel_type,json=tunnelType" json:"tunnel_type,omitempty"`
}
func (m *EncapExtended) Reset() { *m = EncapExtended{} }
func (m *EncapExtended) String() string { return proto.CompactTextString(m) }
func (*EncapExtended) ProtoMessage() {}
func (*EncapExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
func (m *EncapExtended) GetTunnelType() uint32 {
if m != nil {
return m.TunnelType
}
return 0
}
type DefaultGatewayExtended struct {
}
func (m *DefaultGatewayExtended) Reset() { *m = DefaultGatewayExtended{} }
func (m *DefaultGatewayExtended) String() string { return proto.CompactTextString(m) }
func (*DefaultGatewayExtended) ProtoMessage() {}
func (*DefaultGatewayExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
type OpaqueExtended struct {
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *OpaqueExtended) Reset() { *m = OpaqueExtended{} }
func (m *OpaqueExtended) String() string { return proto.CompactTextString(m) }
func (*OpaqueExtended) ProtoMessage() {}
func (*OpaqueExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
func (m *OpaqueExtended) GetIsTransitive() bool {
if m != nil {
return m.IsTransitive
}
return false
}
func (m *OpaqueExtended) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
type ESILabelExtended struct {
IsSingleActive bool `protobuf:"varint,1,opt,name=is_single_active,json=isSingleActive" json:"is_single_active,omitempty"`
Label uint32 `protobuf:"varint,2,opt,name=label" json:"label,omitempty"`
}
func (m *ESILabelExtended) Reset() { *m = ESILabelExtended{} }
func (m *ESILabelExtended) String() string { return proto.CompactTextString(m) }
func (*ESILabelExtended) ProtoMessage() {}
func (*ESILabelExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
func (m *ESILabelExtended) GetIsSingleActive() bool {
if m != nil {
return m.IsSingleActive
}
return false
}
func (m *ESILabelExtended) GetLabel() uint32 {
if m != nil {
return m.Label
}
return 0
}
type ESImportRouteTarget struct {
EsImport string `protobuf:"bytes,1,opt,name=es_import,json=esImport" json:"es_import,omitempty"`
}
func (m *ESImportRouteTarget) Reset() { *m = ESImportRouteTarget{} }
func (m *ESImportRouteTarget) String() string { return proto.CompactTextString(m) }
func (*ESImportRouteTarget) ProtoMessage() {}
func (*ESImportRouteTarget) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
func (m *ESImportRouteTarget) GetEsImport() string {
if m != nil {
return m.EsImport
}
return ""
}
type MacMobilityExtended struct {
IsSticky bool `protobuf:"varint,1,opt,name=is_sticky,json=isSticky" json:"is_sticky,omitempty"`
SequenceNum uint32 `protobuf:"varint,2,opt,name=sequence_num,json=sequenceNum" json:"sequence_num,omitempty"`
}
func (m *MacMobilityExtended) Reset() { *m = MacMobilityExtended{} }
func (m *MacMobilityExtended) String() string { return proto.CompactTextString(m) }
func (*MacMobilityExtended) ProtoMessage() {}
func (*MacMobilityExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
func (m *MacMobilityExtended) GetIsSticky() bool {
if m != nil {
return m.IsSticky
}
return false
}
func (m *MacMobilityExtended) GetSequenceNum() uint32 {
if m != nil {
return m.SequenceNum
}
return 0
}
type RouterMacExtended struct {
Mac string `protobuf:"bytes,1,opt,name=mac" json:"mac,omitempty"`
}
func (m *RouterMacExtended) Reset() { *m = RouterMacExtended{} }
func (m *RouterMacExtended) String() string { return proto.CompactTextString(m) }
func (*RouterMacExtended) ProtoMessage() {}
func (*RouterMacExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
func (m *RouterMacExtended) GetMac() string {
if m != nil {
return m.Mac
}
return ""
}
type TrafficRateExtended struct {
As uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
Rate float32 `protobuf:"fixed32,2,opt,name=rate" json:"rate,omitempty"`
}
func (m *TrafficRateExtended) Reset() { *m = TrafficRateExtended{} }
func (m *TrafficRateExtended) String() string { return proto.CompactTextString(m) }
func (*TrafficRateExtended) ProtoMessage() {}
func (*TrafficRateExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (m *TrafficRateExtended) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *TrafficRateExtended) GetRate() float32 {
if m != nil {
return m.Rate
}
return 0
}
type TrafficActionExtended struct {
Terminal bool `protobuf:"varint,1,opt,name=terminal" json:"terminal,omitempty"`
Sample bool `protobuf:"varint,2,opt,name=sample" json:"sample,omitempty"`
}
func (m *TrafficActionExtended) Reset() { *m = TrafficActionExtended{} }
func (m *TrafficActionExtended) String() string { return proto.CompactTextString(m) }
func (*TrafficActionExtended) ProtoMessage() {}
func (*TrafficActionExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
func (m *TrafficActionExtended) GetTerminal() bool {
if m != nil {
return m.Terminal
}
return false
}
func (m *TrafficActionExtended) GetSample() bool {
if m != nil {
return m.Sample
}
return false
}
type RedirectTwoOctetAsSpecificExtended struct {
As uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *RedirectTwoOctetAsSpecificExtended) Reset() { *m = RedirectTwoOctetAsSpecificExtended{} }
func (m *RedirectTwoOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectTwoOctetAsSpecificExtended) ProtoMessage() {}
func (*RedirectTwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{58}
}
func (m *RedirectTwoOctetAsSpecificExtended) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *RedirectTwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type RedirectIPv4AddressSpecificExtended struct {
Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *RedirectIPv4AddressSpecificExtended) Reset() { *m = RedirectIPv4AddressSpecificExtended{} }
func (m *RedirectIPv4AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectIPv4AddressSpecificExtended) ProtoMessage() {}
func (*RedirectIPv4AddressSpecificExtended) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{59}
}
func (m *RedirectIPv4AddressSpecificExtended) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *RedirectIPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type RedirectFourOctetAsSpecificExtended struct {
As uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *RedirectFourOctetAsSpecificExtended) Reset() { *m = RedirectFourOctetAsSpecificExtended{} }
func (m *RedirectFourOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectFourOctetAsSpecificExtended) ProtoMessage() {}
func (*RedirectFourOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{60}
}
func (m *RedirectFourOctetAsSpecificExtended) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *RedirectFourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type TrafficRemarkExtended struct {
Dscp uint32 `protobuf:"varint,1,opt,name=dscp" json:"dscp,omitempty"`
}
func (m *TrafficRemarkExtended) Reset() { *m = TrafficRemarkExtended{} }
func (m *TrafficRemarkExtended) String() string { return proto.CompactTextString(m) }
func (*TrafficRemarkExtended) ProtoMessage() {}
func (*TrafficRemarkExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
func (m *TrafficRemarkExtended) GetDscp() uint32 {
if m != nil {
return m.Dscp
}
return 0
}
type UnknownExtended struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *UnknownExtended) Reset() { *m = UnknownExtended{} }
func (m *UnknownExtended) String() string { return proto.CompactTextString(m) }
func (*UnknownExtended) ProtoMessage() {}
func (*UnknownExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
func (m *UnknownExtended) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *UnknownExtended) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
type ExtendedCommunitiesAttribute struct {
// Each Community must be one of:
// - TwoOctetAsSpecificExtended
// - IPv4AddressSpecificExtended
// - FourOctetAsSpecificExtended
// - OpaqueExtended
// - ESILabelExtended
// - MacMobilityExtended
// - RouterMacExtended
// - TrafficRateExtended
// - TrafficActionExtended
// - RedirectTwoOctetAsSpecificExtended
// - RedirectIPv4AddressSpecificExtended
// - RedirectFourOctetAsSpecificExtended
// - TrafficRemarkExtended
// - UnknownExtended
Communities []*google_protobuf.Any `protobuf:"bytes,1,rep,name=communities" json:"communities,omitempty"`
}
func (m *ExtendedCommunitiesAttribute) Reset() { *m = ExtendedCommunitiesAttribute{} }
func (m *ExtendedCommunitiesAttribute) String() string { return proto.CompactTextString(m) }
func (*ExtendedCommunitiesAttribute) ProtoMessage() {}
func (*ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
func (m *ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any {
if m != nil {
return m.Communities
}
return nil
}
type As4PathAttribute struct {
Segments []*AsSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
}
func (m *As4PathAttribute) Reset() { *m = As4PathAttribute{} }
func (m *As4PathAttribute) String() string { return proto.CompactTextString(m) }
func (*As4PathAttribute) ProtoMessage() {}
func (*As4PathAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
func (m *As4PathAttribute) GetSegments() []*AsSegment {
if m != nil {
return m.Segments
}
return nil
}
type As4AggregatorAttribute struct {
As uint32 `protobuf:"varint,2,opt,name=as" json:"as,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
}
func (m *As4AggregatorAttribute) Reset() { *m = As4AggregatorAttribute{} }
func (m *As4AggregatorAttribute) String() string { return proto.CompactTextString(m) }
func (*As4AggregatorAttribute) ProtoMessage() {}
func (*As4AggregatorAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
func (m *As4AggregatorAttribute) GetAs() uint32 {
if m != nil {
return m.As
}
return 0
}
func (m *As4AggregatorAttribute) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
type PmsiTunnelAttribute struct {
Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
Type uint32 `protobuf:"varint,2,opt,name=type" json:"type,omitempty"`
Label uint32 `protobuf:"varint,3,opt,name=label" json:"label,omitempty"`
Id []byte `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
}
func (m *PmsiTunnelAttribute) Reset() { *m = PmsiTunnelAttribute{} }
func (m *PmsiTunnelAttribute) String() string { return proto.CompactTextString(m) }
func (*PmsiTunnelAttribute) ProtoMessage() {}
func (*PmsiTunnelAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
func (m *PmsiTunnelAttribute) GetFlags() uint32 {
if m != nil {
return m.Flags
}
return 0
}
func (m *PmsiTunnelAttribute) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *PmsiTunnelAttribute) GetLabel() uint32 {
if m != nil {
return m.Label
}
return 0
}
func (m *PmsiTunnelAttribute) GetId() []byte {
if m != nil {
return m.Id
}
return nil
}
type TunnelEncapSubTLVEncapsulation struct {
Key uint32 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"`
Cookie []byte `protobuf:"bytes,2,opt,name=cookie,proto3" json:"cookie,omitempty"`
}
func (m *TunnelEncapSubTLVEncapsulation) Reset() { *m = TunnelEncapSubTLVEncapsulation{} }
func (m *TunnelEncapSubTLVEncapsulation) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVEncapsulation) ProtoMessage() {}
func (*TunnelEncapSubTLVEncapsulation) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{67}
}
func (m *TunnelEncapSubTLVEncapsulation) GetKey() uint32 {
if m != nil {
return m.Key
}
return 0
}
func (m *TunnelEncapSubTLVEncapsulation) GetCookie() []byte {
if m != nil {
return m.Cookie
}
return nil
}
type TunnelEncapSubTLVProtocol struct {
Protocol uint32 `protobuf:"varint,1,opt,name=protocol" json:"protocol,omitempty"`
}
func (m *TunnelEncapSubTLVProtocol) Reset() { *m = TunnelEncapSubTLVProtocol{} }
func (m *TunnelEncapSubTLVProtocol) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVProtocol) ProtoMessage() {}
func (*TunnelEncapSubTLVProtocol) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
func (m *TunnelEncapSubTLVProtocol) GetProtocol() uint32 {
if m != nil {
return m.Protocol
}
return 0
}
type TunnelEncapSubTLVColor struct {
Color uint32 `protobuf:"varint,1,opt,name=color" json:"color,omitempty"`
}
func (m *TunnelEncapSubTLVColor) Reset() { *m = TunnelEncapSubTLVColor{} }
func (m *TunnelEncapSubTLVColor) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVColor) ProtoMessage() {}
func (*TunnelEncapSubTLVColor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
func (m *TunnelEncapSubTLVColor) GetColor() uint32 {
if m != nil {
return m.Color
}
return 0
}
type TunnelEncapSubTLVSRPreference struct {
Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
Preference uint32 `protobuf:"varint,2,opt,name=preference" json:"preference,omitempty"`
}
func (m *TunnelEncapSubTLVSRPreference) Reset() { *m = TunnelEncapSubTLVSRPreference{} }
func (m *TunnelEncapSubTLVSRPreference) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVSRPreference) ProtoMessage() {}
func (*TunnelEncapSubTLVSRPreference) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
func (m *TunnelEncapSubTLVSRPreference) GetFlags() uint32 {
if m != nil {
return m.Flags
}
return 0
}
func (m *TunnelEncapSubTLVSRPreference) GetPreference() uint32 {
if m != nil {
return m.Preference
}
return 0
}
type TunnelEncapSubTLVSRCandidatePathName struct {
CandidatePathName string `protobuf:"bytes,1,opt,name=candidate_path_name,json=candidatePathName" json:"candidate_path_name,omitempty"`
}
func (m *TunnelEncapSubTLVSRCandidatePathName) Reset() { *m = TunnelEncapSubTLVSRCandidatePathName{} }
func (m *TunnelEncapSubTLVSRCandidatePathName) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVSRCandidatePathName) ProtoMessage() {}
func (*TunnelEncapSubTLVSRCandidatePathName) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{71}
}
func (m *TunnelEncapSubTLVSRCandidatePathName) GetCandidatePathName() string {
if m != nil {
return m.CandidatePathName
}
return ""
}
type TunnelEncapSubTLVSRPriority struct {
Priority uint32 `protobuf:"varint,1,opt,name=priority" json:"priority,omitempty"`
}
func (m *TunnelEncapSubTLVSRPriority) Reset() { *m = TunnelEncapSubTLVSRPriority{} }
func (m *TunnelEncapSubTLVSRPriority) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVSRPriority) ProtoMessage() {}
func (*TunnelEncapSubTLVSRPriority) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
func (m *TunnelEncapSubTLVSRPriority) GetPriority() uint32 {
if m != nil {
return m.Priority
}
return 0
}
type TunnelEncapSubTLVSRBindingSID struct {
// bsid must be one of:
// - SRBindingSID
// - SRv6BindingSID
Bsid *google_protobuf.Any `protobuf:"bytes,1,opt,name=bsid" json:"bsid,omitempty"`
}
func (m *TunnelEncapSubTLVSRBindingSID) Reset() { *m = TunnelEncapSubTLVSRBindingSID{} }
func (m *TunnelEncapSubTLVSRBindingSID) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVSRBindingSID) ProtoMessage() {}
func (*TunnelEncapSubTLVSRBindingSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
func (m *TunnelEncapSubTLVSRBindingSID) GetBsid() *google_protobuf.Any {
if m != nil {
return m.Bsid
}
return nil
}
type SRBindingSID struct {
SFlag bool `protobuf:"varint,1,opt,name=s_flag,json=sFlag" json:"s_flag,omitempty"`
IFlag bool `protobuf:"varint,2,opt,name=i_flag,json=iFlag" json:"i_flag,omitempty"`
Sid []byte `protobuf:"bytes,3,opt,name=sid,proto3" json:"sid,omitempty"`
}
func (m *SRBindingSID) Reset() { *m = SRBindingSID{} }
func (m *SRBindingSID) String() string { return proto.CompactTextString(m) }
func (*SRBindingSID) ProtoMessage() {}
func (*SRBindingSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
func (m *SRBindingSID) GetSFlag() bool {
if m != nil {
return m.SFlag
}
return false
}
func (m *SRBindingSID) GetIFlag() bool {
if m != nil {
return m.IFlag
}
return false
}
func (m *SRBindingSID) GetSid() []byte {
if m != nil {
return m.Sid
}
return nil
}
type SRv6EndPpointBehavior struct {
Behavior SRv6Behavior `protobuf:"varint,1,opt,name=behavior,enum=gobgpapi.SRv6Behavior" json:"behavior,omitempty"`
BlockLen uint32 `protobuf:"varint,2,opt,name=block_len,json=blockLen" json:"block_len,omitempty"`
NodeLen uint32 `protobuf:"varint,3,opt,name=node_len,json=nodeLen" json:"node_len,omitempty"`
FuncLen uint32 `protobuf:"varint,4,opt,name=func_len,json=funcLen" json:"func_len,omitempty"`
ArgLen uint32 `protobuf:"varint,5,opt,name=arg_len,json=argLen" json:"arg_len,omitempty"`
}
func (m *SRv6EndPpointBehavior) Reset() { *m = SRv6EndPpointBehavior{} }
func (m *SRv6EndPpointBehavior) String() string { return proto.CompactTextString(m) }
func (*SRv6EndPpointBehavior) ProtoMessage() {}
func (*SRv6EndPpointBehavior) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
func (m *SRv6EndPpointBehavior) GetBehavior() SRv6Behavior {
if m != nil {
return m.Behavior
}
return SRv6Behavior_RESERVED
}
func (m *SRv6EndPpointBehavior) GetBlockLen() uint32 {
if m != nil {
return m.BlockLen
}
return 0
}
func (m *SRv6EndPpointBehavior) GetNodeLen() uint32 {
if m != nil {
return m.NodeLen
}
return 0
}
func (m *SRv6EndPpointBehavior) GetFuncLen() uint32 {
if m != nil {
return m.FuncLen
}
return 0
}
func (m *SRv6EndPpointBehavior) GetArgLen() uint32 {
if m != nil {
return m.ArgLen
}
return 0
}
type SRv6BindingSID struct {
SFlag bool `protobuf:"varint,1,opt,name=s_flag,json=sFlag" json:"s_flag,omitempty"`
IFlag bool `protobuf:"varint,2,opt,name=i_flag,json=iFlag" json:"i_flag,omitempty"`
BFlag bool `protobuf:"varint,3,opt,name=b_flag,json=bFlag" json:"b_flag,omitempty"`
Sid []byte `protobuf:"bytes,4,opt,name=sid,proto3" json:"sid,omitempty"`
EndpointBehaviorStructure *SRv6EndPpointBehavior `protobuf:"bytes,5,opt,name=endpoint_behavior_structure,json=endpointBehaviorStructure" json:"endpoint_behavior_structure,omitempty"`
}
func (m *SRv6BindingSID) Reset() { *m = SRv6BindingSID{} }
func (m *SRv6BindingSID) String() string { return proto.CompactTextString(m) }
func (*SRv6BindingSID) ProtoMessage() {}
func (*SRv6BindingSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
func (m *SRv6BindingSID) GetSFlag() bool {
if m != nil {
return m.SFlag
}
return false
}
func (m *SRv6BindingSID) GetIFlag() bool {
if m != nil {
return m.IFlag
}
return false
}
func (m *SRv6BindingSID) GetBFlag() bool {
if m != nil {
return m.BFlag
}
return false
}
func (m *SRv6BindingSID) GetSid() []byte {
if m != nil {
return m.Sid
}
return nil
}
func (m *SRv6BindingSID) GetEndpointBehaviorStructure() *SRv6EndPpointBehavior {
if m != nil {
return m.EndpointBehaviorStructure
}
return nil
}
type TunnelEncapSubTLVSRENLP struct {
Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
Enlp ENLPType `protobuf:"varint,2,opt,name=enlp,enum=gobgpapi.ENLPType" json:"enlp,omitempty"`
}
func (m *TunnelEncapSubTLVSRENLP) Reset() { *m = TunnelEncapSubTLVSRENLP{} }
func (m *TunnelEncapSubTLVSRENLP) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVSRENLP) ProtoMessage() {}
func (*TunnelEncapSubTLVSRENLP) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
func (m *TunnelEncapSubTLVSRENLP) GetFlags() uint32 {
if m != nil {
return m.Flags
}
return 0
}
func (m *TunnelEncapSubTLVSRENLP) GetEnlp() ENLPType {
if m != nil {
return m.Enlp
}
return ENLPType_Reserved
}
type SRWeight struct {
Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
Weight uint32 `protobuf:"varint,2,opt,name=weight" json:"weight,omitempty"`
}
func (m *SRWeight) Reset() { *m = SRWeight{} }
func (m *SRWeight) String() string { return proto.CompactTextString(m) }
func (*SRWeight) ProtoMessage() {}
func (*SRWeight) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
func (m *SRWeight) GetFlags() uint32 {
if m != nil {
return m.Flags
}
return 0
}
func (m *SRWeight) GetWeight() uint32 {
if m != nil {
return m.Weight
}
return 0
}
type SegmentFlags struct {
VFlag bool `protobuf:"varint,1,opt,name=v_flag,json=vFlag" json:"v_flag,omitempty"`
AFlag bool `protobuf:"varint,2,opt,name=a_flag,json=aFlag" json:"a_flag,omitempty"`
SFlag bool `protobuf:"varint,3,opt,name=s_flag,json=sFlag" json:"s_flag,omitempty"`
BFlag bool `protobuf:"varint,4,opt,name=b_flag,json=bFlag" json:"b_flag,omitempty"`
}
func (m *SegmentFlags) Reset() { *m = SegmentFlags{} }
func (m *SegmentFlags) String() string { return proto.CompactTextString(m) }
func (*SegmentFlags) ProtoMessage() {}
func (*SegmentFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
func (m *SegmentFlags) GetVFlag() bool {
if m != nil {
return m.VFlag
}
return false
}
func (m *SegmentFlags) GetAFlag() bool {
if m != nil {
return m.AFlag
}
return false
}
func (m *SegmentFlags) GetSFlag() bool {
if m != nil {
return m.SFlag
}
return false
}
func (m *SegmentFlags) GetBFlag() bool {
if m != nil {
return m.BFlag
}
return false
}
type SegmentTypeA struct {
Flags *SegmentFlags `protobuf:"bytes,1,opt,name=flags" json:"flags,omitempty"`
Label uint32 `protobuf:"varint,2,opt,name=label" json:"label,omitempty"`
}
func (m *SegmentTypeA) Reset() { *m = SegmentTypeA{} }
func (m *SegmentTypeA) String() string { return proto.CompactTextString(m) }
func (*SegmentTypeA) ProtoMessage() {}
func (*SegmentTypeA) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
func (m *SegmentTypeA) GetFlags() *SegmentFlags {
if m != nil {
return m.Flags
}
return nil
}
func (m *SegmentTypeA) GetLabel() uint32 {
if m != nil {
return m.Label
}
return 0
}
type SegmentTypeB struct {
Flags *SegmentFlags `protobuf:"bytes,1,opt,name=flags" json:"flags,omitempty"`
Label uint32 `protobuf:"varint,2,opt,name=label" json:"label,omitempty"`
}
func (m *SegmentTypeB) Reset() { *m = SegmentTypeB{} }
func (m *SegmentTypeB) String() string { return proto.CompactTextString(m) }
func (*SegmentTypeB) ProtoMessage() {}
func (*SegmentTypeB) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
func (m *SegmentTypeB) GetFlags() *SegmentFlags {
if m != nil {
return m.Flags
}
return nil
}
func (m *SegmentTypeB) GetLabel() uint32 {
if m != nil {
return m.Label
}
return 0
}
type TunnelEncapSubTLVSRSegmentList struct {
Weight *SRWeight `protobuf:"bytes,1,opt,name=weight" json:"weight,omitempty"`
// segments must be one of:
// - SegmentTypeA
// - SegmentTypeB
Segments []*google_protobuf.Any `protobuf:"bytes,2,rep,name=segments" json:"segments,omitempty"`
}
func (m *TunnelEncapSubTLVSRSegmentList) Reset() { *m = TunnelEncapSubTLVSRSegmentList{} }
func (m *TunnelEncapSubTLVSRSegmentList) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVSRSegmentList) ProtoMessage() {}
func (*TunnelEncapSubTLVSRSegmentList) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{82}
}
func (m *TunnelEncapSubTLVSRSegmentList) GetWeight() *SRWeight {
if m != nil {
return m.Weight
}
return nil
}
func (m *TunnelEncapSubTLVSRSegmentList) GetSegments() []*google_protobuf.Any {
if m != nil {
return m.Segments
}
return nil
}
type TunnelEncapSubTLVUDPDestPort struct {
Port uint32 `protobuf:"varint,1,opt,name=port" json:"port,omitempty"`
}
func (m *TunnelEncapSubTLVUDPDestPort) Reset() { *m = TunnelEncapSubTLVUDPDestPort{} }
func (m *TunnelEncapSubTLVUDPDestPort) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVUDPDestPort) ProtoMessage() {}
func (*TunnelEncapSubTLVUDPDestPort) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
func (m *TunnelEncapSubTLVUDPDestPort) GetPort() uint32 {
if m != nil {
return m.Port
}
return 0
}
type TunnelEncapSubTLVUnknown struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *TunnelEncapSubTLVUnknown) Reset() { *m = TunnelEncapSubTLVUnknown{} }
func (m *TunnelEncapSubTLVUnknown) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVUnknown) ProtoMessage() {}
func (*TunnelEncapSubTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }
func (m *TunnelEncapSubTLVUnknown) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *TunnelEncapSubTLVUnknown) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
type TunnelEncapTLV struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
// Each TLV must be one of:
// - TunnelEncapSubTLVEncapsulation
// - TunnelEncapSubTLVProtocol
// - TunnelEncapSubTLVColor
// - TunnelEncapSubTLVSRPolicy
// - TunnelEncapSubTLVUnknown
Tlvs []*google_protobuf.Any `protobuf:"bytes,2,rep,name=tlvs" json:"tlvs,omitempty"`
}
func (m *TunnelEncapTLV) Reset() { *m = TunnelEncapTLV{} }
func (m *TunnelEncapTLV) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapTLV) ProtoMessage() {}
func (*TunnelEncapTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }
func (m *TunnelEncapTLV) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *TunnelEncapTLV) GetTlvs() []*google_protobuf.Any {
if m != nil {
return m.Tlvs
}
return nil
}
type TunnelEncapAttribute struct {
Tlvs []*TunnelEncapTLV `protobuf:"bytes,1,rep,name=tlvs" json:"tlvs,omitempty"`
}
func (m *TunnelEncapAttribute) Reset() { *m = TunnelEncapAttribute{} }
func (m *TunnelEncapAttribute) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapAttribute) ProtoMessage() {}
func (*TunnelEncapAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
func (m *TunnelEncapAttribute) GetTlvs() []*TunnelEncapTLV {
if m != nil {
return m.Tlvs
}
return nil
}
type IPv6AddressSpecificExtended struct {
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
SubType uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *IPv6AddressSpecificExtended) Reset() { *m = IPv6AddressSpecificExtended{} }
func (m *IPv6AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*IPv6AddressSpecificExtended) ProtoMessage() {}
func (*IPv6AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
func (m *IPv6AddressSpecificExtended) GetIsTransitive() bool {
if m != nil {
return m.IsTransitive
}
return false
}
func (m *IPv6AddressSpecificExtended) GetSubType() uint32 {
if m != nil {
return m.SubType
}
return 0
}
func (m *IPv6AddressSpecificExtended) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *IPv6AddressSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type RedirectIPv6AddressSpecificExtended struct {
Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}
func (m *RedirectIPv6AddressSpecificExtended) Reset() { *m = RedirectIPv6AddressSpecificExtended{} }
func (m *RedirectIPv6AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectIPv6AddressSpecificExtended) ProtoMessage() {}
func (*RedirectIPv6AddressSpecificExtended) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{88}
}
func (m *RedirectIPv6AddressSpecificExtended) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *RedirectIPv6AddressSpecificExtended) GetLocalAdmin() uint32 {
if m != nil {
return m.LocalAdmin
}
return 0
}
type IP6ExtendedCommunitiesAttribute struct {
// Each Community must be one of:
// - IPv6AddressSpecificExtended
// - RedirectIPv6AddressSpecificExtended
Communities []*google_protobuf.Any `protobuf:"bytes,1,rep,name=communities" json:"communities,omitempty"`
}
func (m *IP6ExtendedCommunitiesAttribute) Reset() { *m = IP6ExtendedCommunitiesAttribute{} }
func (m *IP6ExtendedCommunitiesAttribute) String() string { return proto.CompactTextString(m) }
func (*IP6ExtendedCommunitiesAttribute) ProtoMessage() {}
func (*IP6ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{89}
}
func (m *IP6ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any {
if m != nil {
return m.Communities
}
return nil
}
type AigpTLVIGPMetric struct {
Metric uint64 `protobuf:"varint,1,opt,name=metric" json:"metric,omitempty"`
}
func (m *AigpTLVIGPMetric) Reset() { *m = AigpTLVIGPMetric{} }
func (m *AigpTLVIGPMetric) String() string { return proto.CompactTextString(m) }
func (*AigpTLVIGPMetric) ProtoMessage() {}
func (*AigpTLVIGPMetric) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
func (m *AigpTLVIGPMetric) GetMetric() uint64 {
if m != nil {
return m.Metric
}
return 0
}
type AigpTLVUnknown struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *AigpTLVUnknown) Reset() { *m = AigpTLVUnknown{} }
func (m *AigpTLVUnknown) String() string { return proto.CompactTextString(m) }
func (*AigpTLVUnknown) ProtoMessage() {}
func (*AigpTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (m *AigpTLVUnknown) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *AigpTLVUnknown) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
type AigpAttribute struct {
// Each TLV must be one of:
// - AigpTLVIGPMetric
// - AigpTLVUnknown
Tlvs []*google_protobuf.Any `protobuf:"bytes,1,rep,name=tlvs" json:"tlvs,omitempty"`
}
func (m *AigpAttribute) Reset() { *m = AigpAttribute{} }
func (m *AigpAttribute) String() string { return proto.CompactTextString(m) }
func (*AigpAttribute) ProtoMessage() {}
func (*AigpAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
func (m *AigpAttribute) GetTlvs() []*google_protobuf.Any {
if m != nil {
return m.Tlvs
}
return nil
}
type LargeCommunity struct {
GlobalAdmin uint32 `protobuf:"varint,1,opt,name=global_admin,json=globalAdmin" json:"global_admin,omitempty"`
LocalData1 uint32 `protobuf:"varint,2,opt,name=local_data1,json=localData1" json:"local_data1,omitempty"`
LocalData2 uint32 `protobuf:"varint,3,opt,name=local_data2,json=localData2" json:"local_data2,omitempty"`
}
func (m *LargeCommunity) Reset() { *m = LargeCommunity{} }
func (m *LargeCommunity) String() string { return proto.CompactTextString(m) }
func (*LargeCommunity) ProtoMessage() {}
func (*LargeCommunity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
func (m *LargeCommunity) GetGlobalAdmin() uint32 {
if m != nil {
return m.GlobalAdmin
}
return 0
}
func (m *LargeCommunity) GetLocalData1() uint32 {
if m != nil {
return m.LocalData1
}
return 0
}
func (m *LargeCommunity) GetLocalData2() uint32 {
if m != nil {
return m.LocalData2
}
return 0
}
type LargeCommunitiesAttribute struct {
Communities []*LargeCommunity `protobuf:"bytes,1,rep,name=communities" json:"communities,omitempty"`
}
func (m *LargeCommunitiesAttribute) Reset() { *m = LargeCommunitiesAttribute{} }
func (m *LargeCommunitiesAttribute) String() string { return proto.CompactTextString(m) }
func (*LargeCommunitiesAttribute) ProtoMessage() {}
func (*LargeCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
func (m *LargeCommunitiesAttribute) GetCommunities() []*LargeCommunity {
if m != nil {
return m.Communities
}
return nil
}
type LsNodeFlags struct {
Overload bool `protobuf:"varint,1,opt,name=overload" json:"overload,omitempty"`
Attached bool `protobuf:"varint,2,opt,name=attached" json:"attached,omitempty"`
External bool `protobuf:"varint,3,opt,name=external" json:"external,omitempty"`
Abr bool `protobuf:"varint,4,opt,name=abr" json:"abr,omitempty"`
Router bool `protobuf:"varint,5,opt,name=router" json:"router,omitempty"`
V6 bool `protobuf:"varint,6,opt,name=v6" json:"v6,omitempty"`
}
func (m *LsNodeFlags) Reset() { *m = LsNodeFlags{} }
func (m *LsNodeFlags) String() string { return proto.CompactTextString(m) }
func (*LsNodeFlags) ProtoMessage() {}
func (*LsNodeFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
func (m *LsNodeFlags) GetOverload() bool {
if m != nil {
return m.Overload
}
return false
}
func (m *LsNodeFlags) GetAttached() bool {
if m != nil {
return m.Attached
}
return false
}
func (m *LsNodeFlags) GetExternal() bool {
if m != nil {
return m.External
}
return false
}
func (m *LsNodeFlags) GetAbr() bool {
if m != nil {
return m.Abr
}
return false
}
func (m *LsNodeFlags) GetRouter() bool {
if m != nil {
return m.Router
}
return false
}
func (m *LsNodeFlags) GetV6() bool {
if m != nil {
return m.V6
}
return false
}
type LsIGPFlags struct {
Down bool `protobuf:"varint,1,opt,name=down" json:"down,omitempty"`
NoUnicast bool `protobuf:"varint,2,opt,name=no_unicast,json=noUnicast" json:"no_unicast,omitempty"`
LocalAddress bool `protobuf:"varint,3,opt,name=local_address,json=localAddress" json:"local_address,omitempty"`
PropagateNssa bool `protobuf:"varint,4,opt,name=propagate_nssa,json=propagateNssa" json:"propagate_nssa,omitempty"`
}
func (m *LsIGPFlags) Reset() { *m = LsIGPFlags{} }
func (m *LsIGPFlags) String() string { return proto.CompactTextString(m) }
func (*LsIGPFlags) ProtoMessage() {}
func (*LsIGPFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }
func (m *LsIGPFlags) GetDown() bool {
if m != nil {
return m.Down
}
return false
}
func (m *LsIGPFlags) GetNoUnicast() bool {
if m != nil {
return m.NoUnicast
}
return false
}
func (m *LsIGPFlags) GetLocalAddress() bool {
if m != nil {
return m.LocalAddress
}
return false
}
func (m *LsIGPFlags) GetPropagateNssa() bool {
if m != nil {
return m.PropagateNssa
}
return false
}
type LsSrRange struct {
Begin uint32 `protobuf:"varint,1,opt,name=begin" json:"begin,omitempty"`
End uint32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
}
func (m *LsSrRange) Reset() { *m = LsSrRange{} }
func (m *LsSrRange) String() string { return proto.CompactTextString(m) }
func (*LsSrRange) ProtoMessage() {}
func (*LsSrRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }
func (m *LsSrRange) GetBegin() uint32 {
if m != nil {
return m.Begin
}
return 0
}
func (m *LsSrRange) GetEnd() uint32 {
if m != nil {
return m.End
}
return 0
}
type LsSrCapabilities struct {
Ipv4Supported bool `protobuf:"varint,1,opt,name=ipv4_supported,json=ipv4Supported" json:"ipv4_supported,omitempty"`
Ipv6Supported bool `protobuf:"varint,2,opt,name=ipv6_supported,json=ipv6Supported" json:"ipv6_supported,omitempty"`
Ranges []*LsSrRange `protobuf:"bytes,3,rep,name=ranges" json:"ranges,omitempty"`
}
func (m *LsSrCapabilities) Reset() { *m = LsSrCapabilities{} }
func (m *LsSrCapabilities) String() string { return proto.CompactTextString(m) }
func (*LsSrCapabilities) ProtoMessage() {}
func (*LsSrCapabilities) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }
func (m *LsSrCapabilities) GetIpv4Supported() bool {
if m != nil {
return m.Ipv4Supported
}
return false
}
func (m *LsSrCapabilities) GetIpv6Supported() bool {
if m != nil {
return m.Ipv6Supported
}
return false
}
func (m *LsSrCapabilities) GetRanges() []*LsSrRange {
if m != nil {
return m.Ranges
}
return nil
}
type LsSrLocalBlock struct {
Ranges []*LsSrRange `protobuf:"bytes,1,rep,name=ranges" json:"ranges,omitempty"`
}
func (m *LsSrLocalBlock) Reset() { *m = LsSrLocalBlock{} }
func (m *LsSrLocalBlock) String() string { return proto.CompactTextString(m) }
func (*LsSrLocalBlock) ProtoMessage() {}
func (*LsSrLocalBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }
func (m *LsSrLocalBlock) GetRanges() []*LsSrRange {
if m != nil {
return m.Ranges
}
return nil
}
type LsAttributeNode struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
Flags *LsNodeFlags `protobuf:"bytes,2,opt,name=flags" json:"flags,omitempty"`
LocalRouterId string `protobuf:"bytes,3,opt,name=local_router_id,json=localRouterId" json:"local_router_id,omitempty"`
LocalRouterIdV6 string `protobuf:"bytes,4,opt,name=local_router_id_v6,json=localRouterIdV6" 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" 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" json:"sr_local_block,omitempty"`
}
func (m *LsAttributeNode) Reset() { *m = LsAttributeNode{} }
func (m *LsAttributeNode) String() string { return proto.CompactTextString(m) }
func (*LsAttributeNode) ProtoMessage() {}
func (*LsAttributeNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }
func (m *LsAttributeNode) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *LsAttributeNode) GetFlags() *LsNodeFlags {
if m != nil {
return m.Flags
}
return nil
}
func (m *LsAttributeNode) GetLocalRouterId() string {
if m != nil {
return m.LocalRouterId
}
return ""
}
func (m *LsAttributeNode) GetLocalRouterIdV6() string {
if m != nil {
return m.LocalRouterIdV6
}
return ""
}
func (m *LsAttributeNode) GetIsisArea() []byte {
if m != nil {
return m.IsisArea
}
return nil
}
func (m *LsAttributeNode) GetOpaque() []byte {
if m != nil {
return m.Opaque
}
return nil
}
func (m *LsAttributeNode) GetSrCapabilities() *LsSrCapabilities {
if m != nil {
return m.SrCapabilities
}
return nil
}
func (m *LsAttributeNode) GetSrAlgorithms() []byte {
if m != nil {
return m.SrAlgorithms
}
return nil
}
func (m *LsAttributeNode) GetSrLocalBlock() *LsSrLocalBlock {
if m != nil {
return m.SrLocalBlock
}
return nil
}
type LsAttributeLink struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
LocalRouterId string `protobuf:"bytes,2,opt,name=local_router_id,json=localRouterId" json:"local_router_id,omitempty"`
LocalRouterIdV6 string `protobuf:"bytes,3,opt,name=local_router_id_v6,json=localRouterIdV6" json:"local_router_id_v6,omitempty"`
RemoteRouterId string `protobuf:"bytes,4,opt,name=remote_router_id,json=remoteRouterId" json:"remote_router_id,omitempty"`
RemoteRouterIdV6 string `protobuf:"bytes,5,opt,name=remote_router_id_v6,json=remoteRouterIdV6" json:"remote_router_id_v6,omitempty"`
AdminGroup uint32 `protobuf:"varint,6,opt,name=admin_group,json=adminGroup" json:"admin_group,omitempty"`
DefaultTeMetric uint32 `protobuf:"varint,7,opt,name=default_te_metric,json=defaultTeMetric" json:"default_te_metric,omitempty"`
IgpMetric uint32 `protobuf:"varint,8,opt,name=igp_metric,json=igpMetric" json:"igp_metric,omitempty"`
Opaque []byte `protobuf:"bytes,9,opt,name=opaque,proto3" json:"opaque,omitempty"`
Bandwidth float32 `protobuf:"fixed32,10,opt,name=bandwidth" json:"bandwidth,omitempty"`
ReservableBandwidth float32 `protobuf:"fixed32,11,opt,name=reservable_bandwidth,json=reservableBandwidth" json:"reservable_bandwidth,omitempty"`
UnreservedBandwidth []float32 `protobuf:"fixed32,12,rep,packed,name=unreserved_bandwidth,json=unreservedBandwidth" json:"unreserved_bandwidth,omitempty"`
SrAdjacencySid uint32 `protobuf:"varint,13,opt,name=sr_adjacency_sid,json=srAdjacencySid" json:"sr_adjacency_sid,omitempty"`
Srlgs []uint32 `protobuf:"varint,14,rep,packed,name=srlgs" json:"srlgs,omitempty"`
}
func (m *LsAttributeLink) Reset() { *m = LsAttributeLink{} }
func (m *LsAttributeLink) String() string { return proto.CompactTextString(m) }
func (*LsAttributeLink) ProtoMessage() {}
func (*LsAttributeLink) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} }
func (m *LsAttributeLink) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *LsAttributeLink) GetLocalRouterId() string {
if m != nil {
return m.LocalRouterId
}
return ""
}
func (m *LsAttributeLink) GetLocalRouterIdV6() string {
if m != nil {
return m.LocalRouterIdV6
}
return ""
}
func (m *LsAttributeLink) GetRemoteRouterId() string {
if m != nil {
return m.RemoteRouterId
}
return ""
}
func (m *LsAttributeLink) GetRemoteRouterIdV6() string {
if m != nil {
return m.RemoteRouterIdV6
}
return ""
}
func (m *LsAttributeLink) GetAdminGroup() uint32 {
if m != nil {
return m.AdminGroup
}
return 0
}
func (m *LsAttributeLink) GetDefaultTeMetric() uint32 {
if m != nil {
return m.DefaultTeMetric
}
return 0
}
func (m *LsAttributeLink) GetIgpMetric() uint32 {
if m != nil {
return m.IgpMetric
}
return 0
}
func (m *LsAttributeLink) GetOpaque() []byte {
if m != nil {
return m.Opaque
}
return nil
}
func (m *LsAttributeLink) GetBandwidth() float32 {
if m != nil {
return m.Bandwidth
}
return 0
}
func (m *LsAttributeLink) GetReservableBandwidth() float32 {
if m != nil {
return m.ReservableBandwidth
}
return 0
}
func (m *LsAttributeLink) GetUnreservedBandwidth() []float32 {
if m != nil {
return m.UnreservedBandwidth
}
return nil
}
func (m *LsAttributeLink) GetSrAdjacencySid() uint32 {
if m != nil {
return m.SrAdjacencySid
}
return 0
}
func (m *LsAttributeLink) GetSrlgs() []uint32 {
if m != nil {
return m.Srlgs
}
return nil
}
type LsAttributePrefix struct {
IgpFlags *LsIGPFlags `protobuf:"bytes,1,opt,name=igp_flags,json=igpFlags" 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" json:"sr_prefix_sid,omitempty"`
}
func (m *LsAttributePrefix) Reset() { *m = LsAttributePrefix{} }
func (m *LsAttributePrefix) String() string { return proto.CompactTextString(m) }
func (*LsAttributePrefix) ProtoMessage() {}
func (*LsAttributePrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{102} }
func (m *LsAttributePrefix) GetIgpFlags() *LsIGPFlags {
if m != nil {
return m.IgpFlags
}
return nil
}
func (m *LsAttributePrefix) GetOpaque() []byte {
if m != nil {
return m.Opaque
}
return nil
}
func (m *LsAttributePrefix) GetSrPrefixSid() uint32 {
if m != nil {
return m.SrPrefixSid
}
return 0
}
type LsAttribute struct {
Node *LsAttributeNode `protobuf:"bytes,1,opt,name=node" json:"node,omitempty"`
Link *LsAttributeLink `protobuf:"bytes,2,opt,name=link" json:"link,omitempty"`
Prefix *LsAttributePrefix `protobuf:"bytes,3,opt,name=prefix" json:"prefix,omitempty"`
}
func (m *LsAttribute) Reset() { *m = LsAttribute{} }
func (m *LsAttribute) String() string { return proto.CompactTextString(m) }
func (*LsAttribute) ProtoMessage() {}
func (*LsAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{103} }
func (m *LsAttribute) GetNode() *LsAttributeNode {
if m != nil {
return m.Node
}
return nil
}
func (m *LsAttribute) GetLink() *LsAttributeLink {
if m != nil {
return m.Link
}
return nil
}
func (m *LsAttribute) GetPrefix() *LsAttributePrefix {
if m != nil {
return m.Prefix
}
return nil
}
type UnknownAttribute struct {
Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
Type uint32 `protobuf:"varint,2,opt,name=type" json:"type,omitempty"`
Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *UnknownAttribute) Reset() { *m = UnknownAttribute{} }
func (m *UnknownAttribute) String() string { return proto.CompactTextString(m) }
func (*UnknownAttribute) ProtoMessage() {}
func (*UnknownAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{104} }
func (m *UnknownAttribute) GetFlags() uint32 {
if m != nil {
return m.Flags
}
return 0
}
func (m *UnknownAttribute) GetType() uint32 {
if m != nil {
return m.Type
}
return 0
}
func (m *UnknownAttribute) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
// https://tools.ietf.org/html/draft-dawra-bess-srv6-services-02#section-2.1.1
type SRv6StructureSubSubTLV struct {
LocalBlockLength uint32 `protobuf:"varint,1,opt,name=local_block_length,json=localBlockLength" json:"local_block_length,omitempty"`
LocalNodeLength uint32 `protobuf:"varint,2,opt,name=local_node_length,json=localNodeLength" json:"local_node_length,omitempty"`
FunctionLength uint32 `protobuf:"varint,3,opt,name=function_length,json=functionLength" json:"function_length,omitempty"`
ArgumentLength uint32 `protobuf:"varint,4,opt,name=argument_length,json=argumentLength" json:"argument_length,omitempty"`
TranspositionLength uint32 `protobuf:"varint,5,opt,name=transposition_length,json=transpositionLength" json:"transposition_length,omitempty"`
TranspositionOffset uint32 `protobuf:"varint,6,opt,name=transposition_offset,json=transpositionOffset" json:"transposition_offset,omitempty"`
}
func (m *SRv6StructureSubSubTLV) Reset() { *m = SRv6StructureSubSubTLV{} }
func (m *SRv6StructureSubSubTLV) String() string { return proto.CompactTextString(m) }
func (*SRv6StructureSubSubTLV) ProtoMessage() {}
func (*SRv6StructureSubSubTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{105} }
func (m *SRv6StructureSubSubTLV) GetLocalBlockLength() uint32 {
if m != nil {
return m.LocalBlockLength
}
return 0
}
func (m *SRv6StructureSubSubTLV) GetLocalNodeLength() uint32 {
if m != nil {
return m.LocalNodeLength
}
return 0
}
func (m *SRv6StructureSubSubTLV) GetFunctionLength() uint32 {
if m != nil {
return m.FunctionLength
}
return 0
}
func (m *SRv6StructureSubSubTLV) GetArgumentLength() uint32 {
if m != nil {
return m.ArgumentLength
}
return 0
}
func (m *SRv6StructureSubSubTLV) GetTranspositionLength() uint32 {
if m != nil {
return m.TranspositionLength
}
return 0
}
func (m *SRv6StructureSubSubTLV) GetTranspositionOffset() uint32 {
if m != nil {
return m.TranspositionOffset
}
return 0
}
type SRv6SIDFlags struct {
// Placeholder for future sid flags
Flag_1 bool `protobuf:"varint,1,opt,name=flag_1,json=flag1" json:"flag_1,omitempty"`
}
func (m *SRv6SIDFlags) Reset() { *m = SRv6SIDFlags{} }
func (m *SRv6SIDFlags) String() string { return proto.CompactTextString(m) }
func (*SRv6SIDFlags) ProtoMessage() {}
func (*SRv6SIDFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{106} }
func (m *SRv6SIDFlags) GetFlag_1() bool {
if m != nil {
return m.Flag_1
}
return false
}
type SRv6TLV struct {
Tlv []*google_protobuf.Any `protobuf:"bytes,1,rep,name=tlv" json:"tlv,omitempty"`
}
func (m *SRv6TLV) Reset() { *m = SRv6TLV{} }
func (m *SRv6TLV) String() string { return proto.CompactTextString(m) }
func (*SRv6TLV) ProtoMessage() {}
func (*SRv6TLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{107} }
func (m *SRv6TLV) GetTlv() []*google_protobuf.Any {
if m != nil {
return m.Tlv
}
return nil
}
// https://tools.ietf.org/html/draft-dawra-bess-srv6-services-02#section-2.1.1
type SRv6InformationSubTLV struct {
Sid []byte `protobuf:"bytes,1,opt,name=sid,proto3" json:"sid,omitempty"`
Flags *SRv6SIDFlags `protobuf:"bytes,2,opt,name=flags" json:"flags,omitempty"`
EndpointBehavior uint32 `protobuf:"varint,3,opt,name=endpoint_behavior,json=endpointBehavior" json:"endpoint_behavior,omitempty"`
// SRv6TLV is one of:
// - SRv6StructureSubSubTLV
SubSubTlvs map[uint32]*SRv6TLV `protobuf:"bytes,4,rep,name=sub_sub_tlvs,json=subSubTlvs" json:"sub_sub_tlvs,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
}
func (m *SRv6InformationSubTLV) Reset() { *m = SRv6InformationSubTLV{} }
func (m *SRv6InformationSubTLV) String() string { return proto.CompactTextString(m) }
func (*SRv6InformationSubTLV) ProtoMessage() {}
func (*SRv6InformationSubTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{108} }
func (m *SRv6InformationSubTLV) GetSid() []byte {
if m != nil {
return m.Sid
}
return nil
}
func (m *SRv6InformationSubTLV) GetFlags() *SRv6SIDFlags {
if m != nil {
return m.Flags
}
return nil
}
func (m *SRv6InformationSubTLV) GetEndpointBehavior() uint32 {
if m != nil {
return m.EndpointBehavior
}
return 0
}
func (m *SRv6InformationSubTLV) GetSubSubTlvs() map[uint32]*SRv6TLV {
if m != nil {
return m.SubSubTlvs
}
return nil
}
// https://tools.ietf.org/html/draft-dawra-bess-srv6-services-02#section-2
type SRv6L3ServiceTLV struct {
// SRv6TLV is one of:
// - SRv6InformationSubTLV
SubTlvs map[uint32]*SRv6TLV `protobuf:"bytes,1,rep,name=sub_tlvs,json=subTlvs" json:"sub_tlvs,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
}
func (m *SRv6L3ServiceTLV) Reset() { *m = SRv6L3ServiceTLV{} }
func (m *SRv6L3ServiceTLV) String() string { return proto.CompactTextString(m) }
func (*SRv6L3ServiceTLV) ProtoMessage() {}
func (*SRv6L3ServiceTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{109} }
func (m *SRv6L3ServiceTLV) GetSubTlvs() map[uint32]*SRv6TLV {
if m != nil {
return m.SubTlvs
}
return nil
}
// https://tools.ietf.org/html/rfc8669
type PrefixSID struct {
// tlv is one of:
// - IndexLabelTLV Type 1 (not yet implemented)
// - OriginatorSRGBTLV Type 3 (not yet implemented)
// - SRv6L3ServiceTLV Type 5
// - SRv6L2ServiceTLV Type 6 (not yet implemented)
Tlvs []*google_protobuf.Any `protobuf:"bytes,1,rep,name=tlvs" json:"tlvs,omitempty"`
}
func (m *PrefixSID) Reset() { *m = PrefixSID{} }
func (m *PrefixSID) String() string { return proto.CompactTextString(m) }
func (*PrefixSID) ProtoMessage() {}
func (*PrefixSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{110} }
func (m *PrefixSID) GetTlvs() []*google_protobuf.Any {
if m != nil {
return m.Tlvs
}
return nil
}
func init() {
proto.RegisterType((*OriginAttribute)(nil), "gobgpapi.OriginAttribute")
proto.RegisterType((*AsSegment)(nil), "gobgpapi.AsSegment")
proto.RegisterType((*AsPathAttribute)(nil), "gobgpapi.AsPathAttribute")
proto.RegisterType((*NextHopAttribute)(nil), "gobgpapi.NextHopAttribute")
proto.RegisterType((*MultiExitDiscAttribute)(nil), "gobgpapi.MultiExitDiscAttribute")
proto.RegisterType((*LocalPrefAttribute)(nil), "gobgpapi.LocalPrefAttribute")
proto.RegisterType((*AtomicAggregateAttribute)(nil), "gobgpapi.AtomicAggregateAttribute")
proto.RegisterType((*AggregatorAttribute)(nil), "gobgpapi.AggregatorAttribute")
proto.RegisterType((*CommunitiesAttribute)(nil), "gobgpapi.CommunitiesAttribute")
proto.RegisterType((*OriginatorIdAttribute)(nil), "gobgpapi.OriginatorIdAttribute")
proto.RegisterType((*ClusterListAttribute)(nil), "gobgpapi.ClusterListAttribute")
proto.RegisterType((*IPAddressPrefix)(nil), "gobgpapi.IPAddressPrefix")
proto.RegisterType((*LabeledIPAddressPrefix)(nil), "gobgpapi.LabeledIPAddressPrefix")
proto.RegisterType((*EncapsulationNLRI)(nil), "gobgpapi.EncapsulationNLRI")
proto.RegisterType((*RouteDistinguisherTwoOctetAS)(nil), "gobgpapi.RouteDistinguisherTwoOctetAS")
proto.RegisterType((*RouteDistinguisherIPAddress)(nil), "gobgpapi.RouteDistinguisherIPAddress")
proto.RegisterType((*RouteDistinguisherFourOctetAS)(nil), "gobgpapi.RouteDistinguisherFourOctetAS")
proto.RegisterType((*EthernetSegmentIdentifier)(nil), "gobgpapi.EthernetSegmentIdentifier")
proto.RegisterType((*EVPNEthernetAutoDiscoveryRoute)(nil), "gobgpapi.EVPNEthernetAutoDiscoveryRoute")
proto.RegisterType((*EVPNMACIPAdvertisementRoute)(nil), "gobgpapi.EVPNMACIPAdvertisementRoute")
proto.RegisterType((*EVPNInclusiveMulticastEthernetTagRoute)(nil), "gobgpapi.EVPNInclusiveMulticastEthernetTagRoute")
proto.RegisterType((*EVPNEthernetSegmentRoute)(nil), "gobgpapi.EVPNEthernetSegmentRoute")
proto.RegisterType((*EVPNIPPrefixRoute)(nil), "gobgpapi.EVPNIPPrefixRoute")
proto.RegisterType((*EVPNIPMSIRoute)(nil), "gobgpapi.EVPNIPMSIRoute")
proto.RegisterType((*SRPolicyNLRI)(nil), "gobgpapi.SRPolicyNLRI")
proto.RegisterType((*LabeledVPNIPAddressPrefix)(nil), "gobgpapi.LabeledVPNIPAddressPrefix")
proto.RegisterType((*RouteTargetMembershipNLRI)(nil), "gobgpapi.RouteTargetMembershipNLRI")
proto.RegisterType((*FlowSpecIPPrefix)(nil), "gobgpapi.FlowSpecIPPrefix")
proto.RegisterType((*FlowSpecMAC)(nil), "gobgpapi.FlowSpecMAC")
proto.RegisterType((*FlowSpecComponentItem)(nil), "gobgpapi.FlowSpecComponentItem")
proto.RegisterType((*FlowSpecComponent)(nil), "gobgpapi.FlowSpecComponent")
proto.RegisterType((*FlowSpecNLRI)(nil), "gobgpapi.FlowSpecNLRI")
proto.RegisterType((*VPNFlowSpecNLRI)(nil), "gobgpapi.VPNFlowSpecNLRI")
proto.RegisterType((*OpaqueNLRI)(nil), "gobgpapi.OpaqueNLRI")
proto.RegisterType((*LsNodeDescriptor)(nil), "gobgpapi.LsNodeDescriptor")
proto.RegisterType((*LsLinkDescriptor)(nil), "gobgpapi.LsLinkDescriptor")
proto.RegisterType((*LsPrefixDescriptor)(nil), "gobgpapi.LsPrefixDescriptor")
proto.RegisterType((*LsNodeNLRI)(nil), "gobgpapi.LsNodeNLRI")
proto.RegisterType((*LsLinkNLRI)(nil), "gobgpapi.LsLinkNLRI")
proto.RegisterType((*LsPrefixV4NLRI)(nil), "gobgpapi.LsPrefixV4NLRI")
proto.RegisterType((*LsPrefixV6NLRI)(nil), "gobgpapi.LsPrefixV6NLRI")
proto.RegisterType((*LsAddrPrefix)(nil), "gobgpapi.LsAddrPrefix")
proto.RegisterType((*MpReachNLRIAttribute)(nil), "gobgpapi.MpReachNLRIAttribute")
proto.RegisterType((*MpUnreachNLRIAttribute)(nil), "gobgpapi.MpUnreachNLRIAttribute")
proto.RegisterType((*TwoOctetAsSpecificExtended)(nil), "gobgpapi.TwoOctetAsSpecificExtended")
proto.RegisterType((*IPv4AddressSpecificExtended)(nil), "gobgpapi.IPv4AddressSpecificExtended")
proto.RegisterType((*FourOctetAsSpecificExtended)(nil), "gobgpapi.FourOctetAsSpecificExtended")
proto.RegisterType((*ValidationExtended)(nil), "gobgpapi.ValidationExtended")
proto.RegisterType((*ColorExtended)(nil), "gobgpapi.ColorExtended")
proto.RegisterType((*EncapExtended)(nil), "gobgpapi.EncapExtended")
proto.RegisterType((*DefaultGatewayExtended)(nil), "gobgpapi.DefaultGatewayExtended")
proto.RegisterType((*OpaqueExtended)(nil), "gobgpapi.OpaqueExtended")
proto.RegisterType((*ESILabelExtended)(nil), "gobgpapi.ESILabelExtended")
proto.RegisterType((*ESImportRouteTarget)(nil), "gobgpapi.ESImportRouteTarget")
proto.RegisterType((*MacMobilityExtended)(nil), "gobgpapi.MacMobilityExtended")
proto.RegisterType((*RouterMacExtended)(nil), "gobgpapi.RouterMacExtended")
proto.RegisterType((*TrafficRateExtended)(nil), "gobgpapi.TrafficRateExtended")
proto.RegisterType((*TrafficActionExtended)(nil), "gobgpapi.TrafficActionExtended")
proto.RegisterType((*RedirectTwoOctetAsSpecificExtended)(nil), "gobgpapi.RedirectTwoOctetAsSpecificExtended")
proto.RegisterType((*RedirectIPv4AddressSpecificExtended)(nil), "gobgpapi.RedirectIPv4AddressSpecificExtended")
proto.RegisterType((*RedirectFourOctetAsSpecificExtended)(nil), "gobgpapi.RedirectFourOctetAsSpecificExtended")
proto.RegisterType((*TrafficRemarkExtended)(nil), "gobgpapi.TrafficRemarkExtended")
proto.RegisterType((*UnknownExtended)(nil), "gobgpapi.UnknownExtended")
proto.RegisterType((*ExtendedCommunitiesAttribute)(nil), "gobgpapi.ExtendedCommunitiesAttribute")
proto.RegisterType((*As4PathAttribute)(nil), "gobgpapi.As4PathAttribute")
proto.RegisterType((*As4AggregatorAttribute)(nil), "gobgpapi.As4AggregatorAttribute")
proto.RegisterType((*PmsiTunnelAttribute)(nil), "gobgpapi.PmsiTunnelAttribute")
proto.RegisterType((*TunnelEncapSubTLVEncapsulation)(nil), "gobgpapi.TunnelEncapSubTLVEncapsulation")
proto.RegisterType((*TunnelEncapSubTLVProtocol)(nil), "gobgpapi.TunnelEncapSubTLVProtocol")
proto.RegisterType((*TunnelEncapSubTLVColor)(nil), "gobgpapi.TunnelEncapSubTLVColor")
proto.RegisterType((*TunnelEncapSubTLVSRPreference)(nil), "gobgpapi.TunnelEncapSubTLVSRPreference")
proto.RegisterType((*TunnelEncapSubTLVSRCandidatePathName)(nil), "gobgpapi.TunnelEncapSubTLVSRCandidatePathName")
proto.RegisterType((*TunnelEncapSubTLVSRPriority)(nil), "gobgpapi.TunnelEncapSubTLVSRPriority")
proto.RegisterType((*TunnelEncapSubTLVSRBindingSID)(nil), "gobgpapi.TunnelEncapSubTLVSRBindingSID")
proto.RegisterType((*SRBindingSID)(nil), "gobgpapi.SRBindingSID")
proto.RegisterType((*SRv6EndPpointBehavior)(nil), "gobgpapi.SRv6EndPpointBehavior")
proto.RegisterType((*SRv6BindingSID)(nil), "gobgpapi.SRv6BindingSID")
proto.RegisterType((*TunnelEncapSubTLVSRENLP)(nil), "gobgpapi.TunnelEncapSubTLVSRENLP")
proto.RegisterType((*SRWeight)(nil), "gobgpapi.SRWeight")
proto.RegisterType((*SegmentFlags)(nil), "gobgpapi.SegmentFlags")
proto.RegisterType((*SegmentTypeA)(nil), "gobgpapi.SegmentTypeA")
proto.RegisterType((*SegmentTypeB)(nil), "gobgpapi.SegmentTypeB")
proto.RegisterType((*TunnelEncapSubTLVSRSegmentList)(nil), "gobgpapi.TunnelEncapSubTLVSRSegmentList")
proto.RegisterType((*TunnelEncapSubTLVUDPDestPort)(nil), "gobgpapi.TunnelEncapSubTLVUDPDestPort")
proto.RegisterType((*TunnelEncapSubTLVUnknown)(nil), "gobgpapi.TunnelEncapSubTLVUnknown")
proto.RegisterType((*TunnelEncapTLV)(nil), "gobgpapi.TunnelEncapTLV")
proto.RegisterType((*TunnelEncapAttribute)(nil), "gobgpapi.TunnelEncapAttribute")
proto.RegisterType((*IPv6AddressSpecificExtended)(nil), "gobgpapi.IPv6AddressSpecificExtended")
proto.RegisterType((*RedirectIPv6AddressSpecificExtended)(nil), "gobgpapi.RedirectIPv6AddressSpecificExtended")
proto.RegisterType((*IP6ExtendedCommunitiesAttribute)(nil), "gobgpapi.IP6ExtendedCommunitiesAttribute")
proto.RegisterType((*AigpTLVIGPMetric)(nil), "gobgpapi.AigpTLVIGPMetric")
proto.RegisterType((*AigpTLVUnknown)(nil), "gobgpapi.AigpTLVUnknown")
proto.RegisterType((*AigpAttribute)(nil), "gobgpapi.AigpAttribute")
proto.RegisterType((*LargeCommunity)(nil), "gobgpapi.LargeCommunity")
proto.RegisterType((*LargeCommunitiesAttribute)(nil), "gobgpapi.LargeCommunitiesAttribute")
proto.RegisterType((*LsNodeFlags)(nil), "gobgpapi.LsNodeFlags")
proto.RegisterType((*LsIGPFlags)(nil), "gobgpapi.LsIGPFlags")
proto.RegisterType((*LsSrRange)(nil), "gobgpapi.LsSrRange")
proto.RegisterType((*LsSrCapabilities)(nil), "gobgpapi.LsSrCapabilities")
proto.RegisterType((*LsSrLocalBlock)(nil), "gobgpapi.LsSrLocalBlock")
proto.RegisterType((*LsAttributeNode)(nil), "gobgpapi.LsAttributeNode")
proto.RegisterType((*LsAttributeLink)(nil), "gobgpapi.LsAttributeLink")
proto.RegisterType((*LsAttributePrefix)(nil), "gobgpapi.LsAttributePrefix")
proto.RegisterType((*LsAttribute)(nil), "gobgpapi.LsAttribute")
proto.RegisterType((*UnknownAttribute)(nil), "gobgpapi.UnknownAttribute")
proto.RegisterType((*SRv6StructureSubSubTLV)(nil), "gobgpapi.SRv6StructureSubSubTLV")
proto.RegisterType((*SRv6SIDFlags)(nil), "gobgpapi.SRv6SIDFlags")
proto.RegisterType((*SRv6TLV)(nil), "gobgpapi.SRv6TLV")
proto.RegisterType((*SRv6InformationSubTLV)(nil), "gobgpapi.SRv6InformationSubTLV")
proto.RegisterType((*SRv6L3ServiceTLV)(nil), "gobgpapi.SRv6L3ServiceTLV")
proto.RegisterType((*PrefixSID)(nil), "gobgpapi.PrefixSID")
proto.RegisterEnum("gobgpapi.LsNLRIType", LsNLRIType_name, LsNLRIType_value)
proto.RegisterEnum("gobgpapi.LsProtocolID", LsProtocolID_name, LsProtocolID_value)
proto.RegisterEnum("gobgpapi.SRv6Behavior", SRv6Behavior_name, SRv6Behavior_value)
proto.RegisterEnum("gobgpapi.ENLPType", ENLPType_name, ENLPType_value)
}
func init() { proto.RegisterFile("attribute.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 4229 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3a, 0x4d, 0x73, 0xdb, 0x48,
0x76, 0xcb, 0x0f, 0x49, 0xd4, 0xe3, 0x87, 0x20, 0xe8, 0x63, 0x24, 0xd9, 0x1e, 0x7b, 0xe1, 0x2f,
0x45, 0xf6, 0x68, 0xd6, 0xb2, 0x86, 0x3b, 0x9e, 0xa9, 0x4d, 0x8a, 0x16, 0x69, 0x0f, 0x33, 0x14,
0xc5, 0x01, 0x29, 0x79, 0x72, 0x09, 0x02, 0x02, 0x2d, 0xa8, 0x57, 0x20, 0x80, 0x45, 0x83, 0xb4,
0x75, 0xd9, 0x54, 0xe5, 0x90, 0xaa, 0xad, 0xd4, 0xa6, 0x72, 0x4a, 0x6d, 0xd5, 0x5e, 0x72, 0x49,
0xaa, 0x92, 0xca, 0x39, 0x39, 0xe4, 0x0f, 0x24, 0xe7, 0xfc, 0x96, 0xdc, 0x53, 0xfd, 0x85, 0x0f,
0x8a, 0x92, 0xed, 0xf1, 0x4c, 0x95, 0x6f, 0x78, 0xaf, 0x5f, 0xbf, 0x7e, 0xfd, 0xfa, 0xf5, 0xfb,
0x6a, 0xc0, 0x92, 0x19, 0x45, 0x21, 0x1e, 0x8e, 0x23, 0xb4, 0x1b, 0x84, 0x7e, 0xe4, 0xab, 0x25,
0xc7, 0x1f, 0x3a, 0x81, 0x19, 0xe0, 0xad, 0x4d, 0xc7, 0xf7, 0x1d, 0x17, 0x7d, 0xce, 0xf0, 0xc3,
0xf1, 0xe9, 0xe7, 0xa6, 0x77, 0xc1, 0x89, 0xb6, 0xca, 0x8c, 0x88, 0x03, 0xda, 0x9f, 0xc0, 0xd2,
0x51, 0x88, 0x1d, 0xec, 0x35, 0x24, 0x2b, 0x75, 0x1d, 0xe6, 0x7d, 0x86, 0xda, 0xc8, 0xdd, 0xc9,
0x6d, 0x57, 0x75, 0x01, 0x69, 0xcf, 0x60, 0xb1, 0x41, 0xfa, 0xc8, 0x19, 0x21, 0x2f, 0x52, 0x55,
0x28, 0x46, 0x17, 0x01, 0x12, 0x24, 0xec, 0x5b, 0xdd, 0x80, 0x05, 0x6f, 0x3c, 0x1a, 0xa2, 0x90,
0x6c, 0xe4, 0xef, 0x14, 0xb6, 0xab, 0xba, 0x04, 0xb5, 0xe7, 0xb0, 0xd4, 0x20, 0x3d, 0x33, 0x3a,
0x4b, 0x56, 0xf9, 0x1c, 0x4a, 0x84, 0xf3, 0x22, 0x1b, 0xb9, 0x3b, 0x85, 0xed, 0xf2, 0xde, 0xca,
0xae, 0x94, 0x7e, 0x37, 0x5e, 0x47, 0x8f, 0x89, 0xb4, 0xcf, 0x40, 0xe9, 0xa2, 0x37, 0xd1, 0x37,
0x7e, 0x90, 0x30, 0xd9, 0x84, 0x92, 0x87, 0xde, 0x44, 0xc6, 0x99, 0x1f, 0x30, 0x49, 0x16, 0xf5,
0x05, 0x8f, 0xd3, 0x68, 0x3b, 0xb0, 0x7e, 0x38, 0x76, 0x23, 0xdc, 0x7a, 0x83, 0xa3, 0x26, 0x26,
0x56, 0x32, 0x49, 0x81, 0xc2, 0x08, 0xd9, 0x42, 0x72, 0xfa, 0xa9, 0x3d, 0x05, 0xb5, 0xe3, 0x5b,
0xa6, 0xdb, 0x0b, 0xd1, 0x69, 0x42, 0x77, 0x0b, 0xc0, 0xa5, 0x58, 0x23, 0x08, 0xd1, 0xa9, 0x20,
0x5f, 0x74, 0x25, 0x9d, 0xb6, 0x05, 0x1b, 0x8d, 0xc8, 0x1f, 0x61, 0xab, 0xe1, 0x38, 0x21, 0x72,
0xcc, 0x08, 0xc5, 0x53, 0xb5, 0x3f, 0x83, 0x15, 0x89, 0xf5, 0xc3, 0x84, 0x63, 0x0d, 0xf2, 0x26,
0xd5, 0x0d, 0xe5, 0x94, 0x37, 0x09, 0x55, 0x98, 0x69, 0xdb, 0x21, 0x22, 0x64, 0xa3, 0xc0, 0xa5,
0x17, 0xa0, 0xf6, 0x25, 0xac, 0x1e, 0xf8, 0xa3, 0xd1, 0xd8, 0xc3, 0x11, 0x46, 0x24, 0xe1, 0x70,
0x07, 0xca, 0x56, 0x82, 0x67, 0x8a, 0xab, 0xea, 0x69, 0x94, 0xf6, 0x10, 0xd6, 0xf8, 0x81, 0xd2,
0xa5, 0xdb, 0x76, 0x66, 0x71, 0x6c, 0x0b, 0x2d, 0xe5, 0xb1, 0xad, 0x6d, 0xc3, 0xea, 0x81, 0x3b,
0x26, 0x11, 0x0a, 0x3b, 0x98, 0x44, 0x19, 0xf5, 0x60, 0x9b, 0xb3, 0x5e, 0xd4, 0xe9, 0xa7, 0xf6,
0x0d, 0x2c, 0xb5, 0x7b, 0x0d, 0x2e, 0x19, 0xdd, 0x3a, 0x7e, 0x43, 0x75, 0x13, 0xb0, 0x2f, 0xc3,
0x45, 0xd2, 0x4e, 0x16, 0x39, 0xa6, 0x83, 0x3c, 0x6a, 0x42, 0x1c, 0x60, 0x9b, 0x5d, 0xd4, 0x05,
0xa4, 0x39, 0xb0, 0xde, 0x31, 0x87, 0xc8, 0x45, 0xf6, 0x34, 0xc3, 0x75, 0x98, 0x77, 0xe9, 0x88,
0xdc, 0x93, 0x80, 0xa6, 0x16, 0xca, 0x5f, 0xbd, 0x50, 0x21, 0xb3, 0xd0, 0x67, 0xb0, 0xdc, 0xf2,
0x2c, 0x33, 0x20, 0x63, 0xd7, 0x8c, 0xb0, 0xef, 0x75, 0x3b, 0x7a, 0x3b, 0xad, 0xee, 0x5c, 0x56,
0xdd, 0x3d, 0xb8, 0xa9, 0xfb, 0xe3, 0x08, 0x35, 0x31, 0x89, 0xb0, 0xe7, 0x8c, 0x31, 0x39, 0x43,
0xe1, 0xe0, 0xb5, 0x7f, 0x64, 0x45, 0x28, 0x6a, 0xf4, 0xd5, 0x55, 0x98, 0x33, 0xed, 0x51, 0x7c,
0x23, 0x38, 0xa0, 0x6e, 0x41, 0xc9, 0x24, 0x04, 0x3b, 0x1e, 0xb2, 0x85, 0x64, 0x31, 0xac, 0x1d,
0xc1, 0x8d, 0xcb, 0x1c, 0xe3, 0x4d, 0x67, 0x19, 0x2e, 0xbe, 0x0b, 0xc3, 0xef, 0xe0, 0xd6, 0x65,
0x86, 0x2f, 0xfc, 0x71, 0xf8, 0xc3, 0x65, 0x6c, 0xc1, 0x66, 0x2b, 0x3a, 0x43, 0xa1, 0x87, 0x22,
0x71, 0xdd, 0xda, 0x36, 0xf2, 0x22, 0x7c, 0x8a, 0x51, 0x38, 0xf3, 0x82, 0xaf, 0xc2, 0xdc, 0xc4,
0x74, 0xc7, 0x88, 0x71, 0xaa, 0xe8, 0x1c, 0xd0, 0xfe, 0x23, 0x07, 0x9f, 0xb6, 0x4e, 0x7a, 0x5d,
0xc9, 0xab, 0x31, 0x8e, 0x7c, 0x7a, 0xe3, 0xfc, 0x09, 0x0a, 0x2f, 0x98, 0xcc, 0xea, 0x3d, 0xc8,
0x87, 0xdc, 0xf6, 0xca, 0x7b, 0xab, 0xbb, 0xdc, 0x35, 0xed, 0x4a, 0xd7, 0xb4, 0xdb, 0xf0, 0x2e,
0xf4, 0x7c, 0x68, 0xab, 0x5f, 0x40, 0x01, 0x11, 0xcc, 0x98, 0x97, 0xf7, 0xee, 0x26, 0xde, 0xe0,
0x4a, 0x21, 0x75, 0x4a, 0xaf, 0xfe, 0x1c, 0x2a, 0x48, 0x50, 0x18, 0x91, 0xe9, 0x30, 0x4b, 0xa8,
0xea, 0x65, 0x89, 0x1b, 0x98, 0x0e, 0x15, 0x9c, 0xd9, 0xd3, 0x46, 0x91, 0xeb, 0x86, 0x01, 0xda,
0xff, 0xe5, 0xe0, 0x06, 0x15, 0xfc, 0xb0, 0x71, 0x40, 0x4f, 0x66, 0x82, 0xc2, 0x08, 0x13, 0xc4,
0xdc, 0xce, 0x47, 0x21, 0xf5, 0x6d, 0x28, 0x8f, 0x4c, 0xcb, 0x90, 0x36, 0x5b, 0x64, 0xa6, 0x02,
0x23, 0xd3, 0x92, 0x56, 0x74, 0x0b, 0x00, 0x07, 0xf1, 0xf8, 0x1c, 0x1b, 0x5f, 0xc4, 0x81, 0x1c,
0x4e, 0xee, 0xd4, 0x7c, 0xfa, 0x4e, 0x69, 0xff, 0x90, 0x83, 0x07, 0x74, 0xdf, 0x6d, 0xcf, 0x72,
0xc7, 0x04, 0x4f, 0x10, 0x73, 0x94, 0x96, 0x49, 0xa2, 0x56, 0xb2, 0xfa, 0xfb, 0xa8, 0x60, 0x7a,
0x2f, 0xf9, 0xcb, 0x7b, 0xc9, 0x8a, 0x5a, 0x98, 0x12, 0x55, 0xfb, 0xc7, 0x1c, 0x6c, 0xa4, 0x6d,
0x48, 0xba, 0xff, 0x9f, 0xfe, 0x1c, 0xde, 0x22, 0xd8, 0xef, 0xf2, 0xb0, 0xcc, 0x74, 0xd5, 0xe3,
0x8e, 0xea, 0xe3, 0xb0, 0x8c, 0x1b, 0xb0, 0x88, 0x03, 0x43, 0x78, 0x3e, 0x6e, 0x17, 0x25, 0x1c,
0x08, 0x57, 0xaa, 0x41, 0x35, 0x1e, 0x64, 0x5e, 0x73, 0x8e, 0x33, 0x90, 0x04, 0xd4, 0x6f, 0xde,
0x02, 0x70, 0x5e, 0xc7, 0xbb, 0x9e, 0xe7, 0xbb, 0x76, 0x5e, 0xa7, 0xdc, 0x13, 0xbf, 0x2f, 0x0b,
0xe9, 0xfb, 0xf2, 0xd7, 0x50, 0xe3, 0xaa, 0x38, 0xec, 0xb7, 0x7f, 0x64, 0xf3, 0xa0, 0x8c, 0x22,
0xb6, 0xd3, 0xab, 0x19, 0x45, 0xda, 0x6f, 0xa1, 0xd2, 0xd7, 0x7b, 0xbe, 0x8b, 0xad, 0x0b, 0xe6,
0xd0, 0xa9, 0x81, 0x23, 0xcf, 0x89, 0xce, 0x64, 0xa6, 0xc2, 0x21, 0xf5, 0x1e, 0x54, 0xed, 0xb4,
0x9b, 0x14, 0x2b, 0x66, 0x91, 0x74, 0x93, 0x96, 0xef, 0xfa, 0xa1, 0x50, 0x30, 0x07, 0xa8, 0xc3,
0x44, 0x9e, 0x1d, 0xf8, 0xd8, 0x8b, 0x98, 0x66, 0x2b, 0x7a, 0x0c, 0xd3, 0x8b, 0xb3, 0x29, 0xe2,
0x17, 0xd3, 0xc3, 0xbb, 0x85, 0x30, 0xae, 0xa4, 0xfc, 0x5b, 0x94, 0x94, 0x0d, 0x74, 0x85, 0xab,
0x03, 0x5d, 0x31, 0x13, 0xe8, 0xbe, 0x83, 0x4d, 0x76, 0x14, 0x03, 0x33, 0x74, 0x50, 0x74, 0x88,
0x58, 0xbe, 0x75, 0x86, 0x03, 0xa6, 0x1f, 0x9e, 0x6f, 0xe4, 0xe2, 0x7c, 0x83, 0x6b, 0x39, 0xff,
0x16, 0x2d, 0x8f, 0x41, 0x79, 0xe1, 0xfa, 0xaf, 0xfb, 0x01, 0xb2, 0xa4, 0xd5, 0xcf, 0x8c, 0x06,
0x3f, 0x2c, 0x34, 0xb3, 0xf4, 0xf2, 0xf4, 0x94, 0xa0, 0x48, 0x38, 0x63, 0x01, 0x69, 0x5f, 0x43,
0x59, 0x2e, 0x7b, 0xd8, 0x38, 0xb8, 0x2a, 0xc1, 0x94, 0x26, 0x9b, 0xcf, 0x06, 0xf0, 0x5f, 0xc1,
0x9a, 0x9c, 0x7c, 0xe0, 0x8f, 0x02, 0xdf, 0xa3, 0xf7, 0x2a, 0x42, 0x23, 0xaa, 0x02, 0x91, 0x1b,
0x56, 0xf5, 0xbc, 0x1f, 0x64, 0x43, 0x58, 0x51, 0x86, 0xb0, 0xbf, 0x84, 0xe5, 0x4b, 0xd3, 0x67,
0x4a, 0xf0, 0x05, 0xcc, 0xe1, 0x08, 0x8d, 0x78, 0x82, 0x5b, 0xde, 0xbb, 0x9d, 0x5c, 0xea, 0x99,
0xcb, 0xeb, 0x9c, 0x5a, 0xfb, 0x0a, 0x2a, 0x72, 0x9c, 0x1d, 0xcc, 0x0e, 0xcc, 0x85, 0x63, 0x17,
0xc9, 0xcc, 0x77, 0xf6, 0x59, 0x70, 0x12, 0xcd, 0x82, 0xa5, 0x93, 0x5e, 0x37, 0x33, 0xfd, 0xdd,
0xae, 0x5d, 0xbc, 0x48, 0xfe, 0xed, 0x8b, 0xec, 0x03, 0x1c, 0x05, 0xe6, 0x6f, 0xc6, 0x88, 0xf1,
0x57, 0xa0, 0x70, 0x8e, 0x2e, 0xd8, 0x02, 0x15, 0x9d, 0x7e, 0x5e, 0x11, 0xf9, 0xff, 0x25, 0x07,
0x4a, 0x87, 0x74, 0x7d, 0x1b, 0x35, 0x11, 0xb1, 0x42, 0x1c, 0x44, 0x7e, 0x48, 0x27, 0x9b, 0x44,
0x66, 0x21, 0xf4, 0x53, 0xdd, 0x82, 0xc5, 0xa1, 0x13, 0x18, 0x2e, 0x31, 0xb0, 0x4c, 0x42, 0x16,
0x86, 0x4e, 0xd0, 0x21, 0x6d, 0x5b, 0xbd, 0x03, 0x15, 0x9f, 0x04, 0xa7, 0x86, 0x19, 0x22, 0x93,
0x0e, 0x73, 0xc3, 0x07, 0x8a, 0x6b, 0x84, 0xc8, 0x6c, 0xdb, 0xea, 0xa7, 0x00, 0x01, 0x41, 0x63,
0xdb, 0xf7, 0x7c, 0x1b, 0x31, 0x9b, 0x29, 0xe9, 0x29, 0x0c, 0x73, 0x77, 0x4e, 0x60, 0x84, 0xf4,
0x16, 0x84, 0x94, 0x05, 0x8f, 0x83, 0x65, 0xec, 0x04, 0xec, 0x66, 0x84, 0x6d, 0x5b, 0xfb, 0x43,
0x9e, 0x0a, 0xda, 0xc1, 0xde, 0x79, 0x4a, 0x50, 0x0d, 0xaa, 0x2e, 0xf6, 0xce, 0x0d, 0x9e, 0xe4,
0x63, 0x59, 0x11, 0x94, 0x29, 0x92, 0x95, 0x03, 0x6d, 0x5b, 0xbd, 0x07, 0x35, 0x46, 0x13, 0xa2,
0x91, 0x1f, 0xa1, 0x44, 0xfe, 0x0a, 0xc5, 0xea, 0x0c, 0xd9, 0xb6, 0xd5, 0x5d, 0x58, 0xc1, 0x5e,
0x84, 0xc2, 0x53, 0xd3, 0x42, 0xcc, 0xa9, 0x1a, 0x38, 0x98, 0xec, 0x0b, 0xbb, 0x5f, 0x8e, 0x87,
0xa8, 0xbb, 0x68, 0x07, 0x93, 0x7d, 0xf5, 0x31, 0xa8, 0x1e, 0xc2, 0xce, 0xd9, 0xd0, 0x0f, 0x53,
0xe4, 0xfc, 0x62, 0x2b, 0x72, 0x24, 0xa6, 0x9e, 0xc9, 0xbd, 0x2e, 0xb6, 0x79, 0x89, 0x7b, 0x7d,
0x26, 0xf7, 0xba, 0xf0, 0xf1, 0xd3, 0xdc, 0xeb, 0x1a, 0x02, 0xb5, 0x23, 0x3c, 0x58, 0x4a, 0x37,
0x0f, 0x61, 0x09, 0x07, 0x46, 0x88, 0x4c, 0xeb, 0xcc, 0x1c, 0x62, 0x17, 0x47, 0x17, 0xa2, 0x20,
0xa8, 0xe1, 0x40, 0x4f, 0x61, 0xd5, 0x07, 0xb0, 0xc4, 0xce, 0x8f, 0xa9, 0xdf, 0x60, 0xf7, 0x85,
0x5f, 0xcd, 0x2a, 0x45, 0x73, 0xd7, 0x74, 0x11, 0x20, 0xed, 0x25, 0x00, 0xb7, 0x14, 0x66, 0x60,
0xcf, 0x64, 0x69, 0xc5, 0xce, 0x94, 0x1b, 0xf2, 0x56, 0x72, 0x97, 0xa6, 0x6d, 0x4a, 0x94, 0x5d,
0x14, 0xa9, 0xfd, 0x4f, 0x8e, 0x72, 0xa2, 0x47, 0xf9, 0x81, 0x9c, 0xd4, 0xaf, 0xa1, 0x2c, 0x8e,
0x95, 0xcd, 0xcd, 0xbf, 0x75, 0x2e, 0x70, 0x72, 0x36, 0xf9, 0x00, 0x96, 0x98, 0x61, 0xd8, 0xf1,
0xb0, 0x88, 0x5e, 0x19, 0x06, 0x59, 0x8b, 0xd3, 0x99, 0x2d, 0x25, 0x30, 0xcd, 0x7a, 0x6a, 0x52,
0xf9, 0x27, 0xfb, 0x1f, 0xba, 0x9f, 0x36, 0x2c, 0x0b, 0x7f, 0x9c, 0x12, 0x8a, 0xef, 0xea, 0x66,
0x9a, 0xc3, 0xf4, 0x61, 0xeb, 0x4a, 0x30, 0x85, 0xc9, 0x0a, 0x56, 0xff, 0x88, 0x04, 0xfb, 0xdf,
0x1c, 0x54, 0x3a, 0x84, 0x1a, 0xaf, 0x08, 0x4c, 0xdb, 0x29, 0x27, 0x5d, 0x63, 0x3e, 0x2e, 0x11,
0xa8, 0xa3, 0xb7, 0xa9, 0xed, 0x09, 0xd7, 0xbd, 0x0d, 0x45, 0xcf, 0x0d, 0xf1, 0xb5, 0xe1, 0x8f,
0x51, 0xa4, 0xd2, 0x8a, 0x42, 0x26, 0xad, 0xf8, 0x25, 0x94, 0x19, 0xb5, 0xe5, 0x33, 0x77, 0x51,
0x64, 0x4b, 0xae, 0x67, 0x77, 0xc0, 0x87, 0xdb, 0x4d, 0x1d, 0x24, 0x29, 0x77, 0x61, 0x38, 0x4e,
0xf2, 0xd8, 0xc5, 0x2d, 0xea, 0x29, 0x8c, 0xf6, 0xbb, 0x1c, 0xac, 0x1e, 0xf2, 0x7b, 0x45, 0x85,
0x4e, 0x6a, 0xf1, 0x6d, 0x98, 0x3f, 0x35, 0x47, 0xd8, 0xbd, 0x10, 0x0a, 0x57, 0x52, 0xf1, 0x86,
0xe1, 0x75, 0x31, 0x4e, 0x33, 0x42, 0xd9, 0x09, 0xe1, 0x0e, 0x7f, 0x51, 0x2f, 0x89, 0x56, 0x08,
0xa1, 0x91, 0x80, 0x6e, 0x8c, 0xa6, 0xb7, 0xd7, 0x44, 0x02, 0x46, 0xa2, 0x79, 0xb0, 0x7e, 0x18,
0x1c, 0x7b, 0xe1, 0x87, 0x08, 0xf3, 0x3e, 0xeb, 0xfd, 0x3e, 0x07, 0x5b, 0x71, 0xa5, 0x4d, 0x68,
0x88, 0xc3, 0xa7, 0xd8, 0x6a, 0xbd, 0x89, 0x90, 0x67, 0x23, 0x5b, 0xbd, 0x0b, 0x55, 0x4c, 0x8c,
0x28, 0x34, 0x3d, 0x82, 0x23, 0x3c, 0xe1, 0x07, 0x5d, 0xd2, 0x2b, 0x98, 0x0c, 0x62, 0x9c, 0xba,
0x09, 0x25, 0x32, 0x1e, 0x26, 0xde, 0xa7, 0xaa, 0x2f, 0x90, 0xf1, 0x90, 0x9e, 0xbd, 0x48, 0x81,
0x0a, 0x71, 0x0a, 0x74, 0x1b, 0xca, 0xdc, 0x8c, 0x79, 0xad, 0xcc, 0x53, 0x10, 0x6e, 0xd9, 0x0d,
0x8a, 0xd1, 0xfe, 0x90, 0x83, 0x1b, 0xed, 0xde, 0x64, 0x5f, 0xe4, 0x76, 0x3f, 0xba, 0x40, 0x57,
0xf6, 0x7c, 0xde, 0x2e, 0xda, 0xdf, 0xe7, 0xe0, 0x46, 0x52, 0xf1, 0x7f, 0x04, 0xba, 0xda, 0x01,
0xf5, 0xc4, 0x74, 0xb1, 0xcd, 0x5a, 0x2c, 0xb1, 0x18, 0xab, 0x30, 0x47, 0x22, 0x33, 0x92, 0x89,
0x13, 0x07, 0xb4, 0xfb, 0x50, 0x3d, 0xa0, 0x09, 0x76, 0x9a, 0x8c, 0xa7, 0xdf, 0xb9, 0x54, 0xfa,
0xad, 0xfd, 0x02, 0xaa, 0xac, 0x71, 0x13, 0x93, 0xdd, 0x86, 0x72, 0x34, 0xf6, 0x3c, 0xe4, 0x1a,
0xa9, 0x64, 0x0c, 0x38, 0x8a, 0x45, 0x96, 0x0d, 0x58, 0x6f, 0xa2, 0x53, 0x73, 0xec, 0x46, 0x2f,
0xcd, 0x08, 0xbd, 0x36, 0x2f, 0xe4, 0x54, 0xed, 0x5b, 0xa8, 0xf1, 0xa4, 0xe6, 0xfd, 0x34, 0x14,
0xe7, 0x3a, 0x85, 0x74, 0xae, 0xa3, 0x83, 0xd2, 0xea, 0xb7, 0x59, 0xf6, 0x1f, 0xb3, 0xdb, 0x06,
0x05, 0x13, 0x83, 0x60, 0xcf, 0x71, 0x91, 0x61, 0x5a, 0x29, 0x8e, 0x35, 0x4c, 0xfa, 0x0c, 0xdd,
0xb0, 0x24, 0x4f, 0x5e, 0x50, 0xe5, 0xd3, 0x05, 0xd5, 0x1e, 0xac, 0xb4, 0xfa, 0xed, 0x51, 0xe0,
0x87, 0x51, 0x2a, 0x89, 0xa7, 0x77, 0x19, 0x11, 0x03, 0x33, 0xbc, 0x68, 0x10, 0x95, 0x10, 0xe1,
0x74, 0xda, 0x31, 0xac, 0x1c, 0x9a, 0xd6, 0xa1, 0xcf, 0xe3, 0x6f, 0x2c, 0x0a, 0xad, 0x08, 0x89,
0x41, 0x22, 0x6c, 0x9d, 0x5f, 0x08, 0x19, 0x4a, 0x98, 0xf4, 0x19, 0x4c, 0x0b, 0x30, 0x82, 0x7e,
0x33, 0x46, 0x9e, 0x85, 0x0c, 0x6f, 0x3c, 0x92, 0x05, 0x98, 0xc4, 0x75, 0xc7, 0x23, 0xed, 0x3e,
0x2c, 0xf3, 0x6c, 0xe9, 0xd0, 0x4c, 0x0c, 0x4a, 0x81, 0xc2, 0xc8, 0xb4, 0x84, 0x08, 0xf4, 0x53,
0x7b, 0x06, 0x2b, 0x83, 0xd0, 0x3c, 0x3d, 0xc5, 0x96, 0x6e, 0x46, 0x89, 0x5e, 0xa7, 0x0b, 0x0d,
0x15, 0x8a, 0x21, 0xb5, 0x00, 0xba, 0x50, 0x5e, 0x67, 0xdf, 0xda, 0xb7, 0xb0, 0x26, 0xa6, 0x52,
0x9d, 0xa4, 0xec, 0x65, 0x0b, 0x4a, 0x11, 0x0a, 0x47, 0xd8, 0x33, 0x5d, 0x29, 0xb9, 0x84, 0xa9,
0x2b, 0x26, 0xe6, 0x28, 0x70, 0x39, 0xab, 0x92, 0x2e, 0x20, 0xed, 0x18, 0x34, 0x1d, 0xd9, 0x38,
0x44, 0x56, 0x74, 0x8d, 0xf3, 0x98, 0x16, 0x6b, 0xca, 0xa0, 0xf3, 0x97, 0x0c, 0xfa, 0xaf, 0xe0,
0xae, 0x64, 0x7b, 0x9d, 0x0f, 0xb8, 0xb2, 0x91, 0xf8, 0xf6, 0x15, 0x4e, 0x92, 0x15, 0xae, 0xbb,
0xca, 0xef, 0x2d, 0xf9, 0xa3, 0x58, 0xbb, 0x3a, 0x1a, 0x99, 0xe1, 0x79, 0xcc, 0x49, 0x85, 0xa2,
0x4d, 0x2c, 0x59, 0x02, 0xb1, 0x6f, 0xed, 0x6b, 0x58, 0x3a, 0xf6, 0xce, 0x3d, 0xff, 0xb5, 0x97,
0x26, 0x7b, 0xc7, 0x76, 0xdf, 0x09, 0xdc, 0x94, 0xb3, 0x66, 0xb6, 0xa8, 0xeb, 0x97, 0x5b, 0xd4,
0x57, 0x85, 0x80, 0x4c, 0xe3, 0xfa, 0x00, 0x94, 0x06, 0xd9, 0xff, 0xc0, 0x47, 0x82, 0xe7, 0xb0,
0xde, 0x20, 0xfb, 0x1f, 0xd6, 0x7b, 0x47, 0xb0, 0xd2, 0x1b, 0x11, 0x3c, 0x60, 0x2e, 0x26, 0x61,
0xb0, 0x0a, 0x73, 0xa7, 0xae, 0xe9, 0xc8, 0x53, 0xe1, 0x40, 0xac, 0xb7, 0x7c, 0x56, 0x6f, 0xfc,
0xb2, 0x17, 0x52, 0x97, 0x5d, 0xf4, 0xdf, 0x79, 0x4b, 0x21, 0x8f, 0x6d, 0xed, 0xcf, 0xe1, 0x53,
0xbe, 0x04, 0xf3, 0x77, 0xfd, 0xf1, 0x70, 0xd0, 0x39, 0xc9, 0xf4, 0xac, 0xd3, 0x65, 0x58, 0x95,
0x97, 0x61, 0xeb, 0x30, 0x6f, 0xf9, 0xfe, 0x39, 0x96, 0x47, 0x22, 0x20, 0xed, 0x97, 0xb0, 0x79,
0x89, 0x97, 0xcc, 0x45, 0xe8, 0xfd, 0x92, 0xb9, 0x88, 0xe0, 0x15, 0xc3, 0xda, 0x2e, 0xac, 0x5f,
0x9a, 0xc8, 0xdc, 0xf4, 0x15, 0xee, 0xf9, 0x18, 0x6e, 0x5d, 0xa2, 0xef, 0xeb, 0x34, 0x17, 0x43,
0x21, 0x75, 0x25, 0x57, 0x68, 0xe9, 0x53, 0xde, 0x2a, 0xe0, 0x34, 0xd2, 0x7a, 0x13, 0x8c, 0x76,
0x02, 0xf7, 0x66, 0xb0, 0x3d, 0x30, 0x3d, 0x9b, 0x06, 0x17, 0x44, 0x8d, 0xa2, 0x6b, 0x8e, 0x10,
0x2d, 0x85, 0x2c, 0x89, 0x34, 0x02, 0x33, 0x3a, 0x33, 0x3c, 0x73, 0x84, 0xc4, 0x25, 0x5c, 0xb6,
0xa6, 0xe9, 0xb5, 0x67, 0x70, 0x63, 0xa6, 0xb8, 0xd8, 0x0f, 0x69, 0xf1, 0xc2, 0x34, 0xc3, 0xbf,
0x13, 0xcd, 0x70, 0x58, 0x6b, 0xcf, 0xdc, 0xe9, 0x73, 0xec, 0xd9, 0xd8, 0x73, 0xfa, 0xed, 0x26,
0xcd, 0x27, 0x87, 0x04, 0x5f, 0x5f, 0x86, 0x33, 0x0a, 0xad, 0x0b, 0x95, 0xcc, 0xcc, 0x35, 0x98,
0x27, 0x06, 0x55, 0x8c, 0x70, 0x77, 0x73, 0xe4, 0x85, 0x6b, 0x3a, 0x14, 0x8d, 0x39, 0x9a, 0xfb,
0xba, 0x39, 0xcc, 0xd0, 0x0a, 0x14, 0x88, 0x28, 0x8c, 0x2b, 0x3a, 0xfd, 0xd4, 0xfe, 0x33, 0x07,
0x6b, 0x7d, 0x7d, 0x52, 0x6f, 0x79, 0x76, 0x8f, 0x35, 0xa6, 0x9e, 0xa3, 0x33, 0x73, 0x82, 0xfd,
0x50, 0xdd, 0x83, 0xd2, 0x50, 0x7c, 0x8b, 0x8c, 0x38, 0x95, 0x9e, 0xd2, 0x29, 0x92, 0x52, 0x8f,
0xe9, 0x68, 0xe4, 0x18, 0xba, 0xbe, 0x75, 0x9e, 0xea, 0xe2, 0x94, 0x18, 0xa2, 0x83, 0x3c, 0xf6,
0xc0, 0xe6, 0xdb, 0x28, 0xd5, 0x93, 0x5a, 0xa0, 0xb0, 0x18, 0x3a, 0x1d, 0x7b, 0x16, 0x1b, 0xe2,
0xa9, 0xc1, 0x02, 0x85, 0xe9, 0xd0, 0x27, 0xb0, 0x60, 0x86, 0x4e, 0xaa, 0xf7, 0x38, 0x6f, 0x86,
0x4e, 0x07, 0x79, 0xda, 0x7f, 0xe7, 0xa0, 0xc6, 0xc4, 0xf8, 0xa1, 0xca, 0x58, 0x83, 0xf9, 0x21,
0x47, 0x17, 0x38, 0x7a, 0x98, 0xd6, 0x51, 0x31, 0xd6, 0x91, 0x6a, 0xc0, 0x0d, 0xd9, 0xb6, 0x33,
0xe4, 0x56, 0x0d, 0x12, 0x85, 0x63, 0x2b, 0x1a, 0x87, 0x88, 0x89, 0x95, 0x69, 0xdf, 0xcc, 0xd4,
0xa7, 0xbe, 0x29, 0x79, 0x48, 0x4c, 0x5f, 0x72, 0xd0, 0x5e, 0xc1, 0x27, 0x33, 0xec, 0xa3, 0xd5,
0xed, 0xf4, 0xae, 0xb8, 0x03, 0x0f, 0xa0, 0x88, 0x3c, 0x37, 0x60, 0xfb, 0xa9, 0xed, 0xa9, 0xa9,
0x76, 0x70, 0xb7, 0xd3, 0xe3, 0x75, 0x0a, 0x1d, 0xd7, 0xbe, 0x84, 0x52, 0x5f, 0x7f, 0x45, 0xcb,
0xf4, 0xe8, 0x0a, 0x4e, 0xeb, 0x30, 0xff, 0x9a, 0x8d, 0x8b, 0xe3, 0x12, 0x90, 0xf6, 0x6b, 0xa8,
0x08, 0x8f, 0xf8, 0x82, 0xd1, 0xad, 0xc1, 0xfc, 0x24, 0xa3, 0xda, 0x89, 0xd4, 0xa1, 0x99, 0x51,
0xad, 0x29, 0xd1, 0x24, 0xa3, 0x5a, 0x32, 0xa5, 0xf1, 0x62, 0x4a, 0xe3, 0x9a, 0x1e, 0xaf, 0x45,
0x45, 0x6f, 0xa8, 0x8f, 0xd3, 0x92, 0x96, 0x33, 0x66, 0x97, 0x12, 0x49, 0xee, 0x60, 0x76, 0x3a,
0x94, 0xe5, 0xf9, 0xfc, 0x47, 0xe1, 0xf9, 0xdb, 0x19, 0x5e, 0xb6, 0xaf, 0x8b, 0xf9, 0x1d, 0x4c,
0x22, 0x75, 0x27, 0xd6, 0x26, 0x5f, 0x46, 0x4d, 0x1b, 0x05, 0x3f, 0x07, 0xa9, 0x61, 0xf5, 0x17,
0xa9, 0x78, 0x74, 0x5d, 0x57, 0x2d, 0x09, 0x48, 0x7b, 0x70, 0xf3, 0xd2, 0xfa, 0xc7, 0xcd, 0x5e,
0x13, 0x91, 0xa8, 0xe7, 0x87, 0xac, 0xc9, 0x18, 0xa7, 0x79, 0x55, 0x9d, 0x7d, 0x6b, 0x4d, 0xd8,
0xb8, 0x3c, 0x87, 0xc7, 0xeb, 0xf7, 0x88, 0xd3, 0x5d, 0xa8, 0xa5, 0xb8, 0x0c, 0x3a, 0x27, 0x33,
0xe7, 0xd2, 0xfa, 0xd9, 0x9d, 0x5c, 0xbf, 0x1b, 0x46, 0xa1, 0x35, 0x61, 0x35, 0xc5, 0x2f, 0x89,
0x8b, 0x8f, 0x05, 0x07, 0x1e, 0x9f, 0x37, 0x12, 0xed, 0x65, 0x57, 0x17, 0x5c, 0x44, 0x79, 0x55,
0xff, 0x08, 0xcb, 0xab, 0x6c, 0xf2, 0x57, 0xff, 0x09, 0x92, 0xbf, 0xbf, 0x80, 0xdb, 0xed, 0x5e,
0xfd, 0x27, 0xc9, 0x9e, 0x76, 0x40, 0x69, 0x60, 0x87, 0x2a, 0xba, 0xfd, 0xb2, 0x77, 0x88, 0xa2,
0x10, 0x5b, 0xd4, 0x4f, 0x8c, 0xd8, 0x17, 0x13, 0xb4, 0xa8, 0x0b, 0x48, 0xfb, 0x0a, 0x6a, 0x82,
0xf6, 0xfd, 0xad, 0xea, 0x19, 0x54, 0xe9, 0xdc, 0x74, 0x57, 0x20, 0x7d, 0xfc, 0xd7, 0x19, 0xd0,
0x18, 0x6a, 0x1d, 0x5a, 0xe0, 0xc8, 0x7d, 0xb3, 0xba, 0xc4, 0x71, 0xfd, 0x61, 0xac, 0x31, 0xd1,
0x80, 0xe5, 0x38, 0xa6, 0xb2, 0x44, 0xa7, 0xb6, 0x19, 0x99, 0x4f, 0x32, 0x3a, 0x6d, 0x52, 0x4c,
0x96, 0x60, 0x4f, 0xf6, 0x8f, 0x63, 0x82, 0x3d, 0xed, 0x15, 0x6c, 0x66, 0x96, 0xcd, 0xa8, 0xfb,
0xab, 0x59, 0xea, 0x4e, 0xd9, 0x70, 0x56, 0xe0, 0xac, 0xca, 0xff, 0x98, 0x83, 0x32, 0x6f, 0x7b,
0x71, 0x77, 0xbb, 0x05, 0x25, 0x7f, 0x82, 0x42, 0xd7, 0x37, 0x6d, 0x59, 0xc7, 0x48, 0x98, 0x3d,
0xc3, 0x47, 0x91, 0x69, 0x9d, 0x89, 0x67, 0xf8, 0x92, 0x1e, 0xc3, 0xec, 0xc5, 0xe9, 0x4d, 0x84,
0x42, 0x5a, 0xff, 0x70, 0xd7, 0x1b, 0xc3, 0xac, 0x99, 0x3e, 0x0c, 0x85, 0xeb, 0xa5, 0x9f, 0xf4,
0x50, 0x79, 0xab, 0x9b, 0xc5, 0xb0, 0x92, 0x2e, 0x20, 0x9a, 0x5e, 0x8a, 0x2e, 0x6f, 0x49, 0xcf,
0x4f, 0xea, 0xda, 0xdf, 0xb1, 0x3e, 0x69, 0xfb, 0x65, 0xef, 0x85, 0xcc, 0x53, 0x6d, 0xff, 0xb5,
0x27, 0x04, 0x63, 0xdf, 0xea, 0x2d, 0x00, 0xcf, 0x37, 0xc6, 0x1e, 0x7b, 0xfa, 0x15, 0x62, 0x2d,
0x7a, 0xfe, 0x31, 0x47, 0xd0, 0xab, 0x28, 0xcd, 0x39, 0xb9, 0x50, 0x25, 0xbd, 0x22, 0x0c, 0x9a,
0xdb, 0xfc, 0x7d, 0xa8, 0x05, 0xa1, 0x1f, 0x98, 0x0e, 0xcd, 0xc8, 0x3c, 0x42, 0x4c, 0x21, 0x6b,
0x35, 0xc6, 0x76, 0x09, 0x31, 0xb5, 0xa7, 0xb0, 0xd8, 0x21, 0xfd, 0x50, 0x37, 0x3d, 0x87, 0x59,
0xd6, 0x10, 0x25, 0xff, 0x17, 0x71, 0x80, 0x6e, 0x15, 0x79, 0xb2, 0xbf, 0x4e, 0x3f, 0xb5, 0xdf,
0xb3, 0xe7, 0x85, 0x7e, 0x78, 0x60, 0x06, 0xbc, 0xdd, 0x8c, 0x11, 0x5b, 0x10, 0x07, 0x93, 0x7d,
0x83, 0x8c, 0x03, 0xea, 0x2c, 0x91, 0xd4, 0x75, 0x95, 0x62, 0xfb, 0x12, 0x29, 0xc8, 0xea, 0x29,
0xb2, 0x7c, 0x4c, 0x56, 0x4f, 0xc8, 0x1e, 0xc1, 0x7c, 0x48, 0x65, 0x92, 0xad, 0xaa, 0x95, 0x74,
0x37, 0x4f, 0xc8, 0xab, 0x0b, 0x12, 0xed, 0x57, 0x50, 0xa3, 0x48, 0xf6, 0x36, 0xf0, 0x9c, 0x66,
0x48, 0xa9, 0xe9, 0xb9, 0xb7, 0x4f, 0xff, 0xdb, 0x02, 0x2c, 0x75, 0x12, 0xdb, 0x63, 0xad, 0x51,
0x15, 0x8a, 0xa9, 0x0c, 0x96, 0x7d, 0xab, 0x8f, 0x64, 0xd8, 0xe3, 0x9d, 0xca, 0xb5, 0xe9, 0x26,
0x6b, 0x26, 0xea, 0x3d, 0x80, 0x25, 0x7e, 0x48, 0xc9, 0xfb, 0x07, 0xf7, 0x7b, 0xfc, 0xec, 0xe4,
0x0b, 0x88, 0xfa, 0x08, 0xd4, 0x29, 0x3a, 0x63, 0x52, 0x17, 0x4f, 0x0e, 0x4b, 0x19, 0xd2, 0x93,
0x3a, 0x6f, 0x26, 0x60, 0xc2, 0x1e, 0x65, 0x98, 0x99, 0x55, 0xf4, 0x12, 0x45, 0x34, 0x42, 0x64,
0xb2, 0xf7, 0x3b, 0xd6, 0x55, 0x61, 0xc6, 0x56, 0xd1, 0x05, 0xa4, 0x1e, 0xc0, 0x12, 0x09, 0x0d,
0x2b, 0x75, 0x56, 0xec, 0xf5, 0x78, 0xaa, 0x4b, 0x9c, 0x3d, 0x4d, 0xbd, 0x46, 0xb2, 0xa7, 0x7b,
0x17, 0xaa, 0x24, 0x34, 0x4c, 0xd7, 0xa1, 0x49, 0xf8, 0xd9, 0x88, 0x6c, 0x94, 0xd8, 0x1a, 0x15,
0x12, 0x36, 0x62, 0x9c, 0xfa, 0xa7, 0x50, 0x23, 0xa1, 0x78, 0xb6, 0x61, 0x99, 0xea, 0xc6, 0x22,
0x5b, 0x68, 0x23, 0xbb, 0x50, 0x72, 0x4e, 0x74, 0x7e, 0x02, 0x69, 0x7f, 0x2c, 0x66, 0x0e, 0xa2,
0x83, 0xbd, 0xf3, 0x99, 0x07, 0x31, 0x43, 0xb7, 0xf9, 0x77, 0xd7, 0x6d, 0x61, 0xb6, 0x6e, 0xb7,
0x41, 0x11, 0xaf, 0x0e, 0x09, 0x57, 0x7e, 0x0c, 0x35, 0x8e, 0x8f, 0xd9, 0x7e, 0x06, 0x2b, 0xd3,
0x94, 0x46, 0xfc, 0xee, 0xa3, 0x64, 0x89, 0x4f, 0xea, 0xd4, 0x11, 0x32, 0x2f, 0x6a, 0x38, 0xa1,
0x3f, 0x0e, 0xd8, 0xe1, 0x54, 0x75, 0x60, 0xa8, 0x97, 0x14, 0xa3, 0xee, 0xc0, 0xb2, 0xcd, 0x1b,
0x65, 0x46, 0x84, 0x0c, 0x11, 0x19, 0xf8, 0x03, 0xff, 0x92, 0x18, 0x18, 0x20, 0x11, 0x3a, 0x6e,
0x01, 0x60, 0x27, 0x90, 0x44, 0x25, 0xfe, 0xb6, 0x8b, 0x9d, 0x20, 0x89, 0x2c, 0xc2, 0x06, 0x16,
0x33, 0x36, 0x70, 0x13, 0x16, 0x87, 0xa6, 0x67, 0xbf, 0xc6, 0x76, 0x74, 0xb6, 0x01, 0xac, 0xf9,
0x93, 0x20, 0xd4, 0x27, 0xb0, 0x1a, 0x22, 0x82, 0xc2, 0x89, 0x39, 0x74, 0x91, 0x91, 0x10, 0x96,
0x19, 0xe1, 0x4a, 0x32, 0xf6, 0x3c, 0x3d, 0x65, 0xec, 0xf1, 0x01, 0x64, 0xa7, 0xa6, 0x54, 0xee,
0x14, 0xe8, 0x94, 0x64, 0x2c, 0x99, 0xb2, 0x0d, 0x0a, 0x35, 0x21, 0xfb, 0xd7, 0xa6, 0x85, 0x3c,
0xeb, 0xc2, 0xa0, 0x85, 0x41, 0x95, 0x6d, 0xa0, 0x46, 0xc2, 0x86, 0x44, 0xf7, 0x31, 0x6f, 0x54,
0x86, 0xae, 0x43, 0x36, 0x6a, 0xec, 0xbd, 0x9e, 0x03, 0xda, 0xdf, 0xe4, 0x60, 0x39, 0x65, 0x1d,
0xe2, 0x9d, 0xe1, 0x09, 0xd0, 0xed, 0x1b, 0xe9, 0x7c, 0x34, 0xf3, 0xd8, 0x20, 0x1d, 0xad, 0x5e,
0xc2, 0x4e, 0xf0, 0x42, 0xa6, 0xe9, 0x42, 0x49, 0xf9, 0x8c, 0x92, 0x34, 0x66, 0xe3, 0xe2, 0x45,
0x84, 0xc4, 0x6f, 0x9e, 0x65, 0x22, 0xde, 0x34, 0xfa, 0xd8, 0xd6, 0xfe, 0x89, 0xc5, 0x96, 0x24,
0x4e, 0x7d, 0x06, 0xc5, 0xd4, 0xbb, 0xcb, 0x66, 0x7a, 0xe5, 0x8c, 0x43, 0xd1, 0x19, 0x19, 0x25,
0x77, 0xb1, 0x77, 0x2e, 0x3c, 0xc8, 0x6c, 0x72, 0x6a, 0xf6, 0x3a, 0x23, 0x53, 0x9f, 0x66, 0x9e,
0xea, 0xcb, 0x7b, 0x37, 0x66, 0x4e, 0x10, 0x3f, 0xc0, 0xc8, 0x3f, 0x0f, 0x74, 0x50, 0x44, 0xfa,
0xf0, 0x03, 0x7b, 0x24, 0x33, 0x9a, 0xac, 0xff, 0x96, 0x87, 0x75, 0x5a, 0x89, 0xc5, 0x65, 0x56,
0x7f, 0x3c, 0xe4, 0xf9, 0xaf, 0xfa, 0x58, 0x5e, 0xb2, 0xb8, 0x58, 0x4d, 0xfe, 0xfb, 0x50, 0xdc,
0xf8, 0x72, 0x77, 0xf8, 0x53, 0xcd, 0x0e, 0x2c, 0x27, 0xaf, 0x55, 0x92, 0x98, 0xaf, 0xbf, 0x14,
0x3f, 0x4c, 0x09, 0xda, 0x87, 0xb0, 0x44, 0x0b, 0xd7, 0x08, 0xfb, 0x9e, 0x91, 0x79, 0xf7, 0xa9,
0x49, 0x74, 0x42, 0x68, 0x86, 0xce, 0x98, 0x26, 0xf6, 0x92, 0x90, 0x67, 0x91, 0x35, 0x89, 0x16,
0x84, 0x4f, 0x60, 0x95, 0x65, 0xb0, 0x81, 0x4f, 0x13, 0xd6, 0x84, 0x2d, 0x2f, 0x86, 0x57, 0x32,
0x63, 0x57, 0x4d, 0x11, 0xff, 0x48, 0xcc, 0xcf, 0x98, 0x72, 0xc4, 0x7f, 0x98, 0xb8, 0x0f, 0x15,
0xa6, 0xab, 0x76, 0x33, 0x2e, 0xf7, 0xa8, 0xbe, 0x8d, 0x27, 0xb2, 0xdc, 0xa3, 0xd0, 0x13, 0xed,
0x09, 0x2c, 0x50, 0x32, 0xaa, 0xc3, 0x07, 0x50, 0x88, 0xdc, 0xc9, 0xb5, 0xa9, 0x1a, 0x25, 0xd0,
0xfe, 0x35, 0xcf, 0x1b, 0x0c, 0x6d, 0xef, 0xd4, 0x0f, 0x47, 0xac, 0x19, 0x25, 0x4e, 0x41, 0x14,
0xda, 0xb9, 0xa4, 0xd0, 0x7e, 0x9c, 0x8d, 0x56, 0x53, 0xfd, 0x06, 0x29, 0x9c, 0x34, 0x85, 0x47,
0xb0, 0x7c, 0xa9, 0x2c, 0x17, 0xda, 0x56, 0xa6, 0x6b, 0x6d, 0xf5, 0x3b, 0xa8, 0xd0, 0x34, 0x9f,
0xa5, 0xfa, 0x34, 0xc5, 0x2c, 0x32, 0xb9, 0x3f, 0xcf, 0xae, 0x70, 0x49, 0xc6, 0x5d, 0x61, 0x33,
0xee, 0x84, 0xb4, 0xbc, 0x28, 0xbc, 0xd0, 0x81, 0xc4, 0x88, 0xad, 0x1e, 0x2c, 0x4d, 0x0d, 0xcf,
0xe8, 0xb2, 0x3d, 0x4c, 0x67, 0xbe, 0xe5, 0xbd, 0xe5, 0xec, 0x82, 0xb4, 0x96, 0xe1, 0xe3, 0x5f,
0xe5, 0xbf, 0xcc, 0x69, 0xff, 0x9c, 0x03, 0x85, 0xa2, 0x3b, 0x4f, 0xfb, 0x28, 0x9c, 0x60, 0x0b,
0x51, 0x35, 0x3d, 0x17, 0x05, 0x4a, 0x92, 0x18, 0x3f, 0xcc, 0x32, 0x49, 0x53, 0xef, 0x66, 0xa4,
0x65, 0x95, 0x0c, 0x15, 0xf5, 0x10, 0x2a, 0x3f, 0xa6, 0x9c, 0x5f, 0xc0, 0xa2, 0x70, 0x2f, 0xbc,
0x77, 0xf5, 0x6e, 0x49, 0xfb, 0x0e, 0x61, 0xef, 0xf6, 0xe2, 0x25, 0x55, 0x5d, 0x81, 0xa5, 0x4e,
0xdf, 0xa0, 0xa0, 0x71, 0xdc, 0xfd, 0xb6, 0x7b, 0xf4, 0xaa, 0xab, 0xfc, 0x4c, 0x55, 0xa0, 0x22,
0x91, 0xdd, 0xa3, 0x66, 0x4b, 0xc9, 0xa5, 0x31, 0x9d, 0x76, 0xf7, 0x5b, 0x25, 0xaf, 0xae, 0xc1,
0xb2, 0xc4, 0xf4, 0xf4, 0xd6, 0x8b, 0xf6, 0xf7, 0xc6, 0xc9, 0xbe, 0x52, 0x98, 0x85, 0xae, 0x2b,
0xc5, 0x9d, 0xff, 0x62, 0xaf, 0xbc, 0xc9, 0x63, 0xaa, 0xfa, 0x09, 0xac, 0x74, 0xfa, 0x46, 0x4f,
0x3f, 0x1a, 0x1c, 0x1d, 0x1c, 0x75, 0x52, 0x6b, 0x4f, 0x0d, 0xb4, 0xfb, 0xed, 0xbe, 0xd1, 0x79,
0xa2, 0xe4, 0x66, 0x0f, 0xec, 0x29, 0xf9, 0xe9, 0x81, 0xa3, 0x7e, 0xef, 0x85, 0x71, 0xb2, 0xa7,
0x14, 0xd4, 0x75, 0x50, 0xd3, 0x03, 0xcd, 0xb6, 0xde, 0x3a, 0x18, 0x28, 0xc5, 0x69, 0x7c, 0x7f,
0xd0, 0x18, 0xb4, 0x0f, 0x94, 0xb9, 0xd9, 0x8c, 0x9e, 0x2a, 0xf3, 0x3b, 0xff, 0x3e, 0xc7, 0x2f,
0x66, 0x6c, 0xc7, 0x15, 0x28, 0xe9, 0xad, 0x7e, 0x4b, 0x3f, 0x69, 0x35, 0x95, 0x9f, 0xa9, 0x0b,
0x50, 0x68, 0x75, 0x9b, 0x5c, 0x4b, 0xad, 0x6e, 0xd3, 0x78, 0xd5, 0x1e, 0x7c, 0x63, 0xf4, 0xfa,
0x3d, 0x25, 0x9f, 0xc1, 0x1c, 0xf7, 0x7b, 0x4a, 0x41, 0x5d, 0x05, 0x25, 0x4d, 0xc3, 0xb0, 0x45,
0xb5, 0x04, 0xc5, 0x56, 0xb7, 0xf9, 0xbd, 0x32, 0xa7, 0x2e, 0x43, 0x95, 0x7e, 0x25, 0x4c, 0xe6,
0xb3, 0x28, 0x4a, 0xbf, 0x40, 0xd5, 0x9c, 0xa1, 0x62, 0xe8, 0x92, 0x60, 0x33, 0x50, 0x16, 0xc5,
0x9c, 0x41, 0xc2, 0x06, 0xb2, 0x28, 0x4a, 0x5f, 0x16, 0x6c, 0x06, 0x59, 0x36, 0x15, 0x41, 0x69,
0x3c, 0xaf, 0x1b, 0xad, 0xee, 0x41, 0xa3, 0xd7, 0x57, 0x6a, 0x2a, 0xc0, 0x3c, 0x43, 0x1d, 0x2a,
0x4b, 0x6a, 0x19, 0x16, 0xe8, 0x77, 0xf3, 0xfb, 0xba, 0xa2, 0x24, 0xc0, 0xbe, 0xb2, 0x1c, 0x03,
0x83, 0xba, 0xa2, 0x26, 0xc0, 0xbe, 0xb2, 0x42, 0x35, 0x26, 0x80, 0xba, 0xb2, 0x9a, 0x4c, 0xda,
0x53, 0xd6, 0xe2, 0xa1, 0xef, 0xf7, 0x4e, 0x94, 0xf5, 0x84, 0x70, 0xef, 0x58, 0xf9, 0x24, 0x05,
0x1d, 0x2a, 0x1b, 0x42, 0xdc, 0x44, 0x2e, 0x43, 0x47, 0xb6, 0x72, 0x63, 0x4a, 0xc9, 0x4d, 0xe5,
0xe6, 0x0c, 0x25, 0x37, 0x95, 0x5b, 0x19, 0xec, 0xb1, 0xc0, 0x7e, 0xaa, 0x6e, 0xc0, 0xea, 0xf4,
0x81, 0xb0, 0x91, 0xdb, 0xd3, 0x7a, 0x6f, 0x2a, 0x77, 0x66, 0xe9, 0xbd, 0xa9, 0xfc, 0x3c, 0x8b,
0x96, 0x0c, 0x34, 0x75, 0x13, 0xd6, 0x2e, 0x9d, 0x12, 0x1b, 0xba, 0x3b, 0x7d, 0x18, 0x4d, 0xe5,
0xde, 0xac, 0xc3, 0x68, 0x2a, 0xf7, 0xb3, 0x68, 0xc9, 0xe0, 0x81, 0xe0, 0x3d, 0xb8, 0xcc, 0xfb,
0xe1, 0x4e, 0x93, 0x2a, 0x8d, 0x77, 0x20, 0x99, 0xa5, 0x8a, 0x84, 0x4a, 0xf9, 0x99, 0xba, 0x08,
0x73, 0x14, 0x4b, 0xaf, 0x93, 0xf8, 0xa4, 0x17, 0x48, 0x7c, 0x3e, 0x55, 0x0a, 0xf2, 0x73, 0x5f,
0x29, 0x0e, 0xe7, 0x99, 0xef, 0x78, 0xfa, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x42, 0xb7, 0x81,
0x22, 0x93, 0x32, 0x00, 0x00,
}