// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: api/nlri.proto

package api

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Based om RFC 7752, Table 1.
type LsNLRIType int32

const (
	LsNLRIType_LS_NLRI_TYPE_UNSPECIFIED LsNLRIType = 0
	LsNLRIType_LS_NLRI_TYPE_NODE        LsNLRIType = 1
	LsNLRIType_LS_NLRI_TYPE_LINK        LsNLRIType = 2
	LsNLRIType_LS_NLRI_TYPE_PREFIX_V4   LsNLRIType = 3
	LsNLRIType_LS_NLRI_TYPE_PREFIX_V6   LsNLRIType = 4
	LsNLRIType_LS_NLRI_TYPE_SRV6_SID    LsNLRIType = 6
)

// Enum value maps for LsNLRIType.
var (
	LsNLRIType_name = map[int32]string{
		0: "LS_NLRI_TYPE_UNSPECIFIED",
		1: "LS_NLRI_TYPE_NODE",
		2: "LS_NLRI_TYPE_LINK",
		3: "LS_NLRI_TYPE_PREFIX_V4",
		4: "LS_NLRI_TYPE_PREFIX_V6",
		6: "LS_NLRI_TYPE_SRV6_SID",
	}
	LsNLRIType_value = map[string]int32{
		"LS_NLRI_TYPE_UNSPECIFIED": 0,
		"LS_NLRI_TYPE_NODE":        1,
		"LS_NLRI_TYPE_LINK":        2,
		"LS_NLRI_TYPE_PREFIX_V4":   3,
		"LS_NLRI_TYPE_PREFIX_V6":   4,
		"LS_NLRI_TYPE_SRV6_SID":    6,
	}
)

func (x LsNLRIType) Enum() *LsNLRIType {
	p := new(LsNLRIType)
	*p = x
	return p
}

func (x LsNLRIType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (LsNLRIType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_nlri_proto_enumTypes[0].Descriptor()
}

func (LsNLRIType) Type() protoreflect.EnumType {
	return &file_api_nlri_proto_enumTypes[0]
}

func (x LsNLRIType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use LsNLRIType.Descriptor instead.
func (LsNLRIType) EnumDescriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{0}
}

type LsProtocolID int32

const (
	LsProtocolID_LS_PROTOCOL_ID_UNSPECIFIED LsProtocolID = 0
	LsProtocolID_LS_PROTOCOL_ID_ISIS_L1     LsProtocolID = 1
	LsProtocolID_LS_PROTOCOL_ID_ISIS_L2     LsProtocolID = 2
	LsProtocolID_LS_PROTOCOL_ID_OSPF_V2     LsProtocolID = 3
	LsProtocolID_LS_PROTOCOL_ID_DIRECT      LsProtocolID = 4
	LsProtocolID_LS_PROTOCOL_ID_STATIC      LsProtocolID = 5
	LsProtocolID_LS_PROTOCOL_ID_OSPF_V3     LsProtocolID = 6
)

// Enum value maps for LsProtocolID.
var (
	LsProtocolID_name = map[int32]string{
		0: "LS_PROTOCOL_ID_UNSPECIFIED",
		1: "LS_PROTOCOL_ID_ISIS_L1",
		2: "LS_PROTOCOL_ID_ISIS_L2",
		3: "LS_PROTOCOL_ID_OSPF_V2",
		4: "LS_PROTOCOL_ID_DIRECT",
		5: "LS_PROTOCOL_ID_STATIC",
		6: "LS_PROTOCOL_ID_OSPF_V3",
	}
	LsProtocolID_value = map[string]int32{
		"LS_PROTOCOL_ID_UNSPECIFIED": 0,
		"LS_PROTOCOL_ID_ISIS_L1":     1,
		"LS_PROTOCOL_ID_ISIS_L2":     2,
		"LS_PROTOCOL_ID_OSPF_V2":     3,
		"LS_PROTOCOL_ID_DIRECT":      4,
		"LS_PROTOCOL_ID_STATIC":      5,
		"LS_PROTOCOL_ID_OSPF_V3":     6,
	}
)

func (x LsProtocolID) Enum() *LsProtocolID {
	p := new(LsProtocolID)
	*p = x
	return p
}

func (x LsProtocolID) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (LsProtocolID) Descriptor() protoreflect.EnumDescriptor {
	return file_api_nlri_proto_enumTypes[1].Descriptor()
}

func (LsProtocolID) Type() protoreflect.EnumType {
	return &file_api_nlri_proto_enumTypes[1]
}

func (x LsProtocolID) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use LsProtocolID.Descriptor instead.
func (LsProtocolID) EnumDescriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{1}
}

type LsOspfRouteType int32

const (
	LsOspfRouteType_LS_OSPF_ROUTE_TYPE_UNSPECIFIED LsOspfRouteType = 0
	LsOspfRouteType_LS_OSPF_ROUTE_TYPE_INTRA_AREA  LsOspfRouteType = 1
	LsOspfRouteType_LS_OSPF_ROUTE_TYPE_INTER_AREA  LsOspfRouteType = 2
	LsOspfRouteType_LS_OSPF_ROUTE_TYPE_EXTERNAL1   LsOspfRouteType = 3
	LsOspfRouteType_LS_OSPF_ROUTE_TYPE_EXTERNAL2   LsOspfRouteType = 4
	LsOspfRouteType_LS_OSPF_ROUTE_TYPE_NSSA1       LsOspfRouteType = 5
	LsOspfRouteType_LS_OSPF_ROUTE_TYPE_NSSA2       LsOspfRouteType = 6
)

// Enum value maps for LsOspfRouteType.
var (
	LsOspfRouteType_name = map[int32]string{
		0: "LS_OSPF_ROUTE_TYPE_UNSPECIFIED",
		1: "LS_OSPF_ROUTE_TYPE_INTRA_AREA",
		2: "LS_OSPF_ROUTE_TYPE_INTER_AREA",
		3: "LS_OSPF_ROUTE_TYPE_EXTERNAL1",
		4: "LS_OSPF_ROUTE_TYPE_EXTERNAL2",
		5: "LS_OSPF_ROUTE_TYPE_NSSA1",
		6: "LS_OSPF_ROUTE_TYPE_NSSA2",
	}
	LsOspfRouteType_value = map[string]int32{
		"LS_OSPF_ROUTE_TYPE_UNSPECIFIED": 0,
		"LS_OSPF_ROUTE_TYPE_INTRA_AREA":  1,
		"LS_OSPF_ROUTE_TYPE_INTER_AREA":  2,
		"LS_OSPF_ROUTE_TYPE_EXTERNAL1":   3,
		"LS_OSPF_ROUTE_TYPE_EXTERNAL2":   4,
		"LS_OSPF_ROUTE_TYPE_NSSA1":       5,
		"LS_OSPF_ROUTE_TYPE_NSSA2":       6,
	}
)

func (x LsOspfRouteType) Enum() *LsOspfRouteType {
	p := new(LsOspfRouteType)
	*p = x
	return p
}

func (x LsOspfRouteType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (LsOspfRouteType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_nlri_proto_enumTypes[2].Descriptor()
}

func (LsOspfRouteType) Type() protoreflect.EnumType {
	return &file_api_nlri_proto_enumTypes[2]
}

func (x LsOspfRouteType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use LsOspfRouteType.Descriptor instead.
func (LsOspfRouteType) EnumDescriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{2}
}

type NLRI struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Nlri:
	//
	//	*NLRI_Prefix
	//	*NLRI_LabeledPrefix
	//	*NLRI_Encapsulation
	//	*NLRI_Vpls
	//	*NLRI_EvpnEthernetAd
	//	*NLRI_EvpnMacadv
	//	*NLRI_EvpnMulticast
	//	*NLRI_EvpnEthernetSegment
	//	*NLRI_EvpnIpPrefix
	//	*NLRI_EvpnIPmsi
	//	*NLRI_LabeledVpnIpPrefix
	//	*NLRI_RouteTargetMembership
	//	*NLRI_FlowSpec
	//	*NLRI_VpnFlowSpec
	//	*NLRI_Opaque
	//	*NLRI_LsAddrPrefix
	//	*NLRI_SrPolicy
	//	*NLRI_MupInterworkSegmentDiscovery
	//	*NLRI_MupDirectSegmentDiscovery
	//	*NLRI_MupType_1SessionTransformed
	//	*NLRI_MupType_2SessionTransformed
	Nlri          isNLRI_Nlri `protobuf_oneof:"nlri"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NLRI) Reset() {
	*x = NLRI{}
	mi := &file_api_nlri_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NLRI) ProtoMessage() {}

func (x *NLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NLRI.ProtoReflect.Descriptor instead.
func (*NLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{0}
}

func (x *NLRI) GetNlri() isNLRI_Nlri {
	if x != nil {
		return x.Nlri
	}
	return nil
}

func (x *NLRI) GetPrefix() *IPAddressPrefix {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_Prefix); ok {
			return x.Prefix
		}
	}
	return nil
}

func (x *NLRI) GetLabeledPrefix() *LabeledIPAddressPrefix {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_LabeledPrefix); ok {
			return x.LabeledPrefix
		}
	}
	return nil
}

func (x *NLRI) GetEncapsulation() *EncapsulationNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_Encapsulation); ok {
			return x.Encapsulation
		}
	}
	return nil
}

func (x *NLRI) GetVpls() *VPLSNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_Vpls); ok {
			return x.Vpls
		}
	}
	return nil
}

func (x *NLRI) GetEvpnEthernetAd() *EVPNEthernetAutoDiscoveryRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_EvpnEthernetAd); ok {
			return x.EvpnEthernetAd
		}
	}
	return nil
}

func (x *NLRI) GetEvpnMacadv() *EVPNMACIPAdvertisementRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_EvpnMacadv); ok {
			return x.EvpnMacadv
		}
	}
	return nil
}

func (x *NLRI) GetEvpnMulticast() *EVPNInclusiveMulticastEthernetTagRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_EvpnMulticast); ok {
			return x.EvpnMulticast
		}
	}
	return nil
}

func (x *NLRI) GetEvpnEthernetSegment() *EVPNEthernetSegmentRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_EvpnEthernetSegment); ok {
			return x.EvpnEthernetSegment
		}
	}
	return nil
}

func (x *NLRI) GetEvpnIpPrefix() *EVPNIPPrefixRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_EvpnIpPrefix); ok {
			return x.EvpnIpPrefix
		}
	}
	return nil
}

func (x *NLRI) GetEvpnIPmsi() *EVPNIPMSIRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_EvpnIPmsi); ok {
			return x.EvpnIPmsi
		}
	}
	return nil
}

func (x *NLRI) GetLabeledVpnIpPrefix() *LabeledVPNIPAddressPrefix {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_LabeledVpnIpPrefix); ok {
			return x.LabeledVpnIpPrefix
		}
	}
	return nil
}

func (x *NLRI) GetRouteTargetMembership() *RouteTargetMembershipNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_RouteTargetMembership); ok {
			return x.RouteTargetMembership
		}
	}
	return nil
}

func (x *NLRI) GetFlowSpec() *FlowSpecNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_FlowSpec); ok {
			return x.FlowSpec
		}
	}
	return nil
}

func (x *NLRI) GetVpnFlowSpec() *VPNFlowSpecNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_VpnFlowSpec); ok {
			return x.VpnFlowSpec
		}
	}
	return nil
}

func (x *NLRI) GetOpaque() *OpaqueNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_Opaque); ok {
			return x.Opaque
		}
	}
	return nil
}

func (x *NLRI) GetLsAddrPrefix() *LsAddrPrefix {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_LsAddrPrefix); ok {
			return x.LsAddrPrefix
		}
	}
	return nil
}

func (x *NLRI) GetSrPolicy() *SRPolicyNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_SrPolicy); ok {
			return x.SrPolicy
		}
	}
	return nil
}

func (x *NLRI) GetMupInterworkSegmentDiscovery() *MUPInterworkSegmentDiscoveryRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_MupInterworkSegmentDiscovery); ok {
			return x.MupInterworkSegmentDiscovery
		}
	}
	return nil
}

func (x *NLRI) GetMupDirectSegmentDiscovery() *MUPDirectSegmentDiscoveryRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_MupDirectSegmentDiscovery); ok {
			return x.MupDirectSegmentDiscovery
		}
	}
	return nil
}

func (x *NLRI) GetMupType_1SessionTransformed() *MUPType1SessionTransformedRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_MupType_1SessionTransformed); ok {
			return x.MupType_1SessionTransformed
		}
	}
	return nil
}

func (x *NLRI) GetMupType_2SessionTransformed() *MUPType2SessionTransformedRoute {
	if x != nil {
		if x, ok := x.Nlri.(*NLRI_MupType_2SessionTransformed); ok {
			return x.MupType_2SessionTransformed
		}
	}
	return nil
}

type isNLRI_Nlri interface {
	isNLRI_Nlri()
}

type NLRI_Prefix struct {
	Prefix *IPAddressPrefix `protobuf:"bytes,1,opt,name=prefix,proto3,oneof"`
}

type NLRI_LabeledPrefix struct {
	LabeledPrefix *LabeledIPAddressPrefix `protobuf:"bytes,2,opt,name=labeled_prefix,json=labeledPrefix,proto3,oneof"`
}

type NLRI_Encapsulation struct {
	Encapsulation *EncapsulationNLRI `protobuf:"bytes,3,opt,name=encapsulation,proto3,oneof"`
}

type NLRI_Vpls struct {
	Vpls *VPLSNLRI `protobuf:"bytes,4,opt,name=vpls,proto3,oneof"`
}

type NLRI_EvpnEthernetAd struct {
	EvpnEthernetAd *EVPNEthernetAutoDiscoveryRoute `protobuf:"bytes,5,opt,name=evpn_ethernet_ad,json=evpnEthernetAd,proto3,oneof"`
}

type NLRI_EvpnMacadv struct {
	EvpnMacadv *EVPNMACIPAdvertisementRoute `protobuf:"bytes,6,opt,name=evpn_macadv,json=evpnMacadv,proto3,oneof"`
}

type NLRI_EvpnMulticast struct {
	EvpnMulticast *EVPNInclusiveMulticastEthernetTagRoute `protobuf:"bytes,7,opt,name=evpn_multicast,json=evpnMulticast,proto3,oneof"`
}

type NLRI_EvpnEthernetSegment struct {
	EvpnEthernetSegment *EVPNEthernetSegmentRoute `protobuf:"bytes,8,opt,name=evpn_ethernet_segment,json=evpnEthernetSegment,proto3,oneof"`
}

type NLRI_EvpnIpPrefix struct {
	EvpnIpPrefix *EVPNIPPrefixRoute `protobuf:"bytes,9,opt,name=evpn_ip_prefix,json=evpnIpPrefix,proto3,oneof"`
}

type NLRI_EvpnIPmsi struct {
	EvpnIPmsi *EVPNIPMSIRoute `protobuf:"bytes,10,opt,name=evpn_i_pmsi,json=evpnIPmsi,proto3,oneof"`
}

type NLRI_LabeledVpnIpPrefix struct {
	LabeledVpnIpPrefix *LabeledVPNIPAddressPrefix `protobuf:"bytes,11,opt,name=labeled_vpn_ip_prefix,json=labeledVpnIpPrefix,proto3,oneof"`
}

type NLRI_RouteTargetMembership struct {
	RouteTargetMembership *RouteTargetMembershipNLRI `protobuf:"bytes,12,opt,name=route_target_membership,json=routeTargetMembership,proto3,oneof"`
}

type NLRI_FlowSpec struct {
	FlowSpec *FlowSpecNLRI `protobuf:"bytes,13,opt,name=flow_spec,json=flowSpec,proto3,oneof"`
}

type NLRI_VpnFlowSpec struct {
	VpnFlowSpec *VPNFlowSpecNLRI `protobuf:"bytes,14,opt,name=vpn_flow_spec,json=vpnFlowSpec,proto3,oneof"`
}

type NLRI_Opaque struct {
	Opaque *OpaqueNLRI `protobuf:"bytes,15,opt,name=opaque,proto3,oneof"`
}

type NLRI_LsAddrPrefix struct {
	LsAddrPrefix *LsAddrPrefix `protobuf:"bytes,16,opt,name=ls_addr_prefix,json=lsAddrPrefix,proto3,oneof"`
}

type NLRI_SrPolicy struct {
	SrPolicy *SRPolicyNLRI `protobuf:"bytes,17,opt,name=sr_policy,json=srPolicy,proto3,oneof"`
}

type NLRI_MupInterworkSegmentDiscovery struct {
	MupInterworkSegmentDiscovery *MUPInterworkSegmentDiscoveryRoute `protobuf:"bytes,18,opt,name=mup_interwork_segment_discovery,json=mupInterworkSegmentDiscovery,proto3,oneof"`
}

type NLRI_MupDirectSegmentDiscovery struct {
	MupDirectSegmentDiscovery *MUPDirectSegmentDiscoveryRoute `protobuf:"bytes,19,opt,name=mup_direct_segment_discovery,json=mupDirectSegmentDiscovery,proto3,oneof"`
}

type NLRI_MupType_1SessionTransformed struct {
	MupType_1SessionTransformed *MUPType1SessionTransformedRoute `protobuf:"bytes,20,opt,name=mup_type_1_session_transformed,json=mupType1SessionTransformed,proto3,oneof"`
}

type NLRI_MupType_2SessionTransformed struct {
	MupType_2SessionTransformed *MUPType2SessionTransformedRoute `protobuf:"bytes,21,opt,name=mup_type_2_session_transformed,json=mupType2SessionTransformed,proto3,oneof"`
}

func (*NLRI_Prefix) isNLRI_Nlri() {}

func (*NLRI_LabeledPrefix) isNLRI_Nlri() {}

func (*NLRI_Encapsulation) isNLRI_Nlri() {}

func (*NLRI_Vpls) isNLRI_Nlri() {}

func (*NLRI_EvpnEthernetAd) isNLRI_Nlri() {}

func (*NLRI_EvpnMacadv) isNLRI_Nlri() {}

func (*NLRI_EvpnMulticast) isNLRI_Nlri() {}

func (*NLRI_EvpnEthernetSegment) isNLRI_Nlri() {}

func (*NLRI_EvpnIpPrefix) isNLRI_Nlri() {}

func (*NLRI_EvpnIPmsi) isNLRI_Nlri() {}

func (*NLRI_LabeledVpnIpPrefix) isNLRI_Nlri() {}

func (*NLRI_RouteTargetMembership) isNLRI_Nlri() {}

func (*NLRI_FlowSpec) isNLRI_Nlri() {}

func (*NLRI_VpnFlowSpec) isNLRI_Nlri() {}

func (*NLRI_Opaque) isNLRI_Nlri() {}

func (*NLRI_LsAddrPrefix) isNLRI_Nlri() {}

func (*NLRI_SrPolicy) isNLRI_Nlri() {}

func (*NLRI_MupInterworkSegmentDiscovery) isNLRI_Nlri() {}

func (*NLRI_MupDirectSegmentDiscovery) isNLRI_Nlri() {}

func (*NLRI_MupType_1SessionTransformed) isNLRI_Nlri() {}

func (*NLRI_MupType_2SessionTransformed) isNLRI_Nlri() {}

// IPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=1
// - AFI=2, SAFI=1
type IPAddressPrefix struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	PrefixLen     uint32                 `protobuf:"varint,1,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
	Prefix        string                 `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IPAddressPrefix) Reset() {
	*x = IPAddressPrefix{}
	mi := &file_api_nlri_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IPAddressPrefix) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPAddressPrefix) ProtoMessage() {}

func (x *IPAddressPrefix) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPAddressPrefix.ProtoReflect.Descriptor instead.
func (*IPAddressPrefix) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{1}
}

func (x *IPAddressPrefix) GetPrefixLen() uint32 {
	if x != nil {
		return x.PrefixLen
	}
	return 0
}

func (x *IPAddressPrefix) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

// LabeledIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=4
// - AFI=2, SAFI=4
type LabeledIPAddressPrefix struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Labels        []uint32               `protobuf:"varint,1,rep,packed,name=labels,proto3" json:"labels,omitempty"`
	PrefixLen     uint32                 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
	Prefix        string                 `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LabeledIPAddressPrefix) Reset() {
	*x = LabeledIPAddressPrefix{}
	mi := &file_api_nlri_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LabeledIPAddressPrefix) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LabeledIPAddressPrefix) ProtoMessage() {}

func (x *LabeledIPAddressPrefix) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LabeledIPAddressPrefix.ProtoReflect.Descriptor instead.
func (*LabeledIPAddressPrefix) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{2}
}

func (x *LabeledIPAddressPrefix) GetLabels() []uint32 {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *LabeledIPAddressPrefix) GetPrefixLen() uint32 {
	if x != nil {
		return x.PrefixLen
	}
	return 0
}

func (x *LabeledIPAddressPrefix) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

// EncapsulationNLRI represents the NLRI for:
// - AFI=1, SAFI=7
// - AFI=2, SAFI=7
type EncapsulationNLRI struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EncapsulationNLRI) Reset() {
	*x = EncapsulationNLRI{}
	mi := &file_api_nlri_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EncapsulationNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EncapsulationNLRI) ProtoMessage() {}

func (x *EncapsulationNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EncapsulationNLRI.ProtoReflect.Descriptor instead.
func (*EncapsulationNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{3}
}

func (x *EncapsulationNLRI) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

// VPLSNLRI represents the NLRI for:
// - AFI=25, SAFI=65
type VPLSNLRI struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Rd             *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	VeId           uint32                 `protobuf:"varint,2,opt,name=ve_id,json=veId,proto3" json:"ve_id,omitempty"`
	VeBlockOffset  uint32                 `protobuf:"varint,3,opt,name=ve_block_offset,json=veBlockOffset,proto3" json:"ve_block_offset,omitempty"`
	VeBlockSize    uint32                 `protobuf:"varint,4,opt,name=ve_block_size,json=veBlockSize,proto3" json:"ve_block_size,omitempty"`
	LabelBlockBase uint32                 `protobuf:"varint,5,opt,name=label_block_base,json=labelBlockBase,proto3" json:"label_block_base,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *VPLSNLRI) Reset() {
	*x = VPLSNLRI{}
	mi := &file_api_nlri_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *VPLSNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VPLSNLRI) ProtoMessage() {}

func (x *VPLSNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VPLSNLRI.ProtoReflect.Descriptor instead.
func (*VPLSNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{4}
}

func (x *VPLSNLRI) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *VPLSNLRI) GetVeId() uint32 {
	if x != nil {
		return x.VeId
	}
	return 0
}

func (x *VPLSNLRI) GetVeBlockOffset() uint32 {
	if x != nil {
		return x.VeBlockOffset
	}
	return 0
}

func (x *VPLSNLRI) GetVeBlockSize() uint32 {
	if x != nil {
		return x.VeBlockSize
	}
	return 0
}

func (x *VPLSNLRI) GetLabelBlockBase() uint32 {
	if x != nil {
		return x.LabelBlockBase
	}
	return 0
}

type EthernetSegmentIdentifier struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          uint32                 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	Value         []byte                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EthernetSegmentIdentifier) Reset() {
	*x = EthernetSegmentIdentifier{}
	mi := &file_api_nlri_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EthernetSegmentIdentifier) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EthernetSegmentIdentifier) ProtoMessage() {}

func (x *EthernetSegmentIdentifier) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EthernetSegmentIdentifier.ProtoReflect.Descriptor instead.
func (*EthernetSegmentIdentifier) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{5}
}

func (x *EthernetSegmentIdentifier) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *EthernetSegmentIdentifier) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

// EVPNEthernetAutoDiscoveryRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=1
type EVPNEthernetAutoDiscoveryRoute struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Rd            *RouteDistinguisher        `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	Esi           *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
	EthernetTag   uint32                     `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
	Label         uint32                     `protobuf:"varint,4,opt,name=label,proto3" json:"label,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EVPNEthernetAutoDiscoveryRoute) Reset() {
	*x = EVPNEthernetAutoDiscoveryRoute{}
	mi := &file_api_nlri_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EVPNEthernetAutoDiscoveryRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EVPNEthernetAutoDiscoveryRoute) ProtoMessage() {}

func (x *EVPNEthernetAutoDiscoveryRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EVPNEthernetAutoDiscoveryRoute.ProtoReflect.Descriptor instead.
func (*EVPNEthernetAutoDiscoveryRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{6}
}

func (x *EVPNEthernetAutoDiscoveryRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *EVPNEthernetAutoDiscoveryRoute) GetEsi() *EthernetSegmentIdentifier {
	if x != nil {
		return x.Esi
	}
	return nil
}

func (x *EVPNEthernetAutoDiscoveryRoute) GetEthernetTag() uint32 {
	if x != nil {
		return x.EthernetTag
	}
	return 0
}

func (x *EVPNEthernetAutoDiscoveryRoute) GetLabel() uint32 {
	if x != nil {
		return x.Label
	}
	return 0
}

// EVPNMACIPAdvertisementRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=2
type EVPNMACIPAdvertisementRoute struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Rd            *RouteDistinguisher        `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	Esi           *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
	EthernetTag   uint32                     `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
	MacAddress    string                     `protobuf:"bytes,4,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
	IpAddress     string                     `protobuf:"bytes,5,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
	Labels        []uint32                   `protobuf:"varint,6,rep,packed,name=labels,proto3" json:"labels,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EVPNMACIPAdvertisementRoute) Reset() {
	*x = EVPNMACIPAdvertisementRoute{}
	mi := &file_api_nlri_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EVPNMACIPAdvertisementRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EVPNMACIPAdvertisementRoute) ProtoMessage() {}

func (x *EVPNMACIPAdvertisementRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EVPNMACIPAdvertisementRoute.ProtoReflect.Descriptor instead.
func (*EVPNMACIPAdvertisementRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{7}
}

func (x *EVPNMACIPAdvertisementRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *EVPNMACIPAdvertisementRoute) GetEsi() *EthernetSegmentIdentifier {
	if x != nil {
		return x.Esi
	}
	return nil
}

func (x *EVPNMACIPAdvertisementRoute) GetEthernetTag() uint32 {
	if x != nil {
		return x.EthernetTag
	}
	return 0
}

func (x *EVPNMACIPAdvertisementRoute) GetMacAddress() string {
	if x != nil {
		return x.MacAddress
	}
	return ""
}

func (x *EVPNMACIPAdvertisementRoute) GetIpAddress() string {
	if x != nil {
		return x.IpAddress
	}
	return ""
}

func (x *EVPNMACIPAdvertisementRoute) GetLabels() []uint32 {
	if x != nil {
		return x.Labels
	}
	return nil
}

// EVPNInclusiveMulticastEthernetTagRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=3
type EVPNInclusiveMulticastEthernetTagRoute struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Rd            *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	EthernetTag   uint32                 `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
	IpAddress     string                 `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EVPNInclusiveMulticastEthernetTagRoute) Reset() {
	*x = EVPNInclusiveMulticastEthernetTagRoute{}
	mi := &file_api_nlri_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EVPNInclusiveMulticastEthernetTagRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EVPNInclusiveMulticastEthernetTagRoute) ProtoMessage() {}

func (x *EVPNInclusiveMulticastEthernetTagRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EVPNInclusiveMulticastEthernetTagRoute.ProtoReflect.Descriptor instead.
func (*EVPNInclusiveMulticastEthernetTagRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{8}
}

func (x *EVPNInclusiveMulticastEthernetTagRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *EVPNInclusiveMulticastEthernetTagRoute) GetEthernetTag() uint32 {
	if x != nil {
		return x.EthernetTag
	}
	return 0
}

func (x *EVPNInclusiveMulticastEthernetTagRoute) GetIpAddress() string {
	if x != nil {
		return x.IpAddress
	}
	return ""
}

// EVPNEthernetSegmentRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=4
type EVPNEthernetSegmentRoute struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Rd            *RouteDistinguisher        `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	Esi           *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
	IpAddress     string                     `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EVPNEthernetSegmentRoute) Reset() {
	*x = EVPNEthernetSegmentRoute{}
	mi := &file_api_nlri_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EVPNEthernetSegmentRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EVPNEthernetSegmentRoute) ProtoMessage() {}

func (x *EVPNEthernetSegmentRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EVPNEthernetSegmentRoute.ProtoReflect.Descriptor instead.
func (*EVPNEthernetSegmentRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{9}
}

func (x *EVPNEthernetSegmentRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *EVPNEthernetSegmentRoute) GetEsi() *EthernetSegmentIdentifier {
	if x != nil {
		return x.Esi
	}
	return nil
}

func (x *EVPNEthernetSegmentRoute) GetIpAddress() string {
	if x != nil {
		return x.IpAddress
	}
	return ""
}

// EVPNIPPrefixRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=5
type EVPNIPPrefixRoute struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Rd            *RouteDistinguisher        `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	Esi           *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi,proto3" json:"esi,omitempty"`
	EthernetTag   uint32                     `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
	IpPrefix      string                     `protobuf:"bytes,4,opt,name=ip_prefix,json=ipPrefix,proto3" json:"ip_prefix,omitempty"`
	IpPrefixLen   uint32                     `protobuf:"varint,5,opt,name=ip_prefix_len,json=ipPrefixLen,proto3" json:"ip_prefix_len,omitempty"`
	GwAddress     string                     `protobuf:"bytes,6,opt,name=gw_address,json=gwAddress,proto3" json:"gw_address,omitempty"`
	Label         uint32                     `protobuf:"varint,7,opt,name=label,proto3" json:"label,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EVPNIPPrefixRoute) Reset() {
	*x = EVPNIPPrefixRoute{}
	mi := &file_api_nlri_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EVPNIPPrefixRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EVPNIPPrefixRoute) ProtoMessage() {}

func (x *EVPNIPPrefixRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EVPNIPPrefixRoute.ProtoReflect.Descriptor instead.
func (*EVPNIPPrefixRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{10}
}

func (x *EVPNIPPrefixRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *EVPNIPPrefixRoute) GetEsi() *EthernetSegmentIdentifier {
	if x != nil {
		return x.Esi
	}
	return nil
}

func (x *EVPNIPPrefixRoute) GetEthernetTag() uint32 {
	if x != nil {
		return x.EthernetTag
	}
	return 0
}

func (x *EVPNIPPrefixRoute) GetIpPrefix() string {
	if x != nil {
		return x.IpPrefix
	}
	return ""
}

func (x *EVPNIPPrefixRoute) GetIpPrefixLen() uint32 {
	if x != nil {
		return x.IpPrefixLen
	}
	return 0
}

func (x *EVPNIPPrefixRoute) GetGwAddress() string {
	if x != nil {
		return x.GwAddress
	}
	return ""
}

func (x *EVPNIPPrefixRoute) GetLabel() uint32 {
	if x != nil {
		return x.Label
	}
	return 0
}

// EVPNIPMSIRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=9
type EVPNIPMSIRoute struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Rd            *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	EthernetTag   uint32                 `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag,proto3" json:"ethernet_tag,omitempty"`
	Rt            *RouteTarget           `protobuf:"bytes,3,opt,name=rt,proto3" json:"rt,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EVPNIPMSIRoute) Reset() {
	*x = EVPNIPMSIRoute{}
	mi := &file_api_nlri_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EVPNIPMSIRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EVPNIPMSIRoute) ProtoMessage() {}

func (x *EVPNIPMSIRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EVPNIPMSIRoute.ProtoReflect.Descriptor instead.
func (*EVPNIPMSIRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{11}
}

func (x *EVPNIPMSIRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *EVPNIPMSIRoute) GetEthernetTag() uint32 {
	if x != nil {
		return x.EthernetTag
	}
	return 0
}

func (x *EVPNIPMSIRoute) GetRt() *RouteTarget {
	if x != nil {
		return x.Rt
	}
	return nil
}

// SRPolicyNLRI represents the NLRI for:
// - AFI=1, SAFI=73
// - AFI=2, SAFI=73
type SRPolicyNLRI struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// length field carries the length of NLRI portion expressed in bits
	Length uint32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
	// distinguisher field carries 4-octet value uniquely identifying the policy
	// in the context of <color, endpoint> tuple.
	Distinguisher uint32 `protobuf:"varint,2,opt,name=distinguisher,proto3" json:"distinguisher,omitempty"`
	// color field carries 4-octet value identifying (with the endpoint) the
	// policy.  The color is used to match the color of the destination
	// prefixes to steer traffic into the SR Policy
	Color uint32 `protobuf:"varint,3,opt,name=color,proto3" json:"color,omitempty"`
	// endpoint field identifies the endpoint of a policy.  The Endpoint may
	// represent a single node or a set of nodes (e.g., an anycast
	// address).  The Endpoint is an IPv4 (4-octet) address or an IPv6
	// (16-octet) address according to the AFI of the NLRI.
	Endpoint      []byte `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SRPolicyNLRI) Reset() {
	*x = SRPolicyNLRI{}
	mi := &file_api_nlri_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SRPolicyNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SRPolicyNLRI) ProtoMessage() {}

func (x *SRPolicyNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SRPolicyNLRI.ProtoReflect.Descriptor instead.
func (*SRPolicyNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{12}
}

func (x *SRPolicyNLRI) GetLength() uint32 {
	if x != nil {
		return x.Length
	}
	return 0
}

func (x *SRPolicyNLRI) GetDistinguisher() uint32 {
	if x != nil {
		return x.Distinguisher
	}
	return 0
}

func (x *SRPolicyNLRI) GetColor() uint32 {
	if x != nil {
		return x.Color
	}
	return 0
}

func (x *SRPolicyNLRI) GetEndpoint() []byte {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

// LabeledVPNIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=128
// - AFI=2, SAFI=128
type LabeledVPNIPAddressPrefix struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Labels        []uint32               `protobuf:"varint,1,rep,packed,name=labels,proto3" json:"labels,omitempty"`
	Rd            *RouteDistinguisher    `protobuf:"bytes,2,opt,name=rd,proto3" json:"rd,omitempty"`
	PrefixLen     uint32                 `protobuf:"varint,3,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
	Prefix        string                 `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LabeledVPNIPAddressPrefix) Reset() {
	*x = LabeledVPNIPAddressPrefix{}
	mi := &file_api_nlri_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LabeledVPNIPAddressPrefix) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LabeledVPNIPAddressPrefix) ProtoMessage() {}

func (x *LabeledVPNIPAddressPrefix) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LabeledVPNIPAddressPrefix.ProtoReflect.Descriptor instead.
func (*LabeledVPNIPAddressPrefix) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{13}
}

func (x *LabeledVPNIPAddressPrefix) GetLabels() []uint32 {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *LabeledVPNIPAddressPrefix) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *LabeledVPNIPAddressPrefix) GetPrefixLen() uint32 {
	if x != nil {
		return x.PrefixLen
	}
	return 0
}

func (x *LabeledVPNIPAddressPrefix) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

// RouteTargetMembershipNLRI represents the NLRI for:
// - AFI=1, SAFI=132
type RouteTargetMembershipNLRI struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Asn           uint32                 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	Rt            *RouteTarget           `protobuf:"bytes,2,opt,name=rt,proto3" json:"rt,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteTargetMembershipNLRI) Reset() {
	*x = RouteTargetMembershipNLRI{}
	mi := &file_api_nlri_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RouteTargetMembershipNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RouteTargetMembershipNLRI) ProtoMessage() {}

func (x *RouteTargetMembershipNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RouteTargetMembershipNLRI.ProtoReflect.Descriptor instead.
func (*RouteTargetMembershipNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{14}
}

func (x *RouteTargetMembershipNLRI) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *RouteTargetMembershipNLRI) GetRt() *RouteTarget {
	if x != nil {
		return x.Rt
	}
	return nil
}

type FlowSpecIPPrefix struct {
	state     protoimpl.MessageState `protogen:"open.v1"`
	Type      uint32                 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	PrefixLen uint32                 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"`
	Prefix    string                 `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
	// IPv6 only
	Offset        uint32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FlowSpecIPPrefix) Reset() {
	*x = FlowSpecIPPrefix{}
	mi := &file_api_nlri_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FlowSpecIPPrefix) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlowSpecIPPrefix) ProtoMessage() {}

func (x *FlowSpecIPPrefix) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FlowSpecIPPrefix.ProtoReflect.Descriptor instead.
func (*FlowSpecIPPrefix) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{15}
}

func (x *FlowSpecIPPrefix) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *FlowSpecIPPrefix) GetPrefixLen() uint32 {
	if x != nil {
		return x.PrefixLen
	}
	return 0
}

func (x *FlowSpecIPPrefix) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

func (x *FlowSpecIPPrefix) GetOffset() uint32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

type FlowSpecMAC struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          uint32                 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	Address       string                 `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FlowSpecMAC) Reset() {
	*x = FlowSpecMAC{}
	mi := &file_api_nlri_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FlowSpecMAC) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlowSpecMAC) ProtoMessage() {}

func (x *FlowSpecMAC) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FlowSpecMAC.ProtoReflect.Descriptor instead.
func (*FlowSpecMAC) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{16}
}

func (x *FlowSpecMAC) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *FlowSpecMAC) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

type FlowSpecComponentItem struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Operator for Numeric type, Operand for Bitmask type
	Op            uint32 `protobuf:"varint,1,opt,name=op,proto3" json:"op,omitempty"`
	Value         uint64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FlowSpecComponentItem) Reset() {
	*x = FlowSpecComponentItem{}
	mi := &file_api_nlri_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FlowSpecComponentItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlowSpecComponentItem) ProtoMessage() {}

func (x *FlowSpecComponentItem) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FlowSpecComponentItem.ProtoReflect.Descriptor instead.
func (*FlowSpecComponentItem) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{17}
}

func (x *FlowSpecComponentItem) GetOp() uint32 {
	if x != nil {
		return x.Op
	}
	return 0
}

func (x *FlowSpecComponentItem) GetValue() uint64 {
	if x != nil {
		return x.Value
	}
	return 0
}

type FlowSpecComponent struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Type          uint32                   `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	Items         []*FlowSpecComponentItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FlowSpecComponent) Reset() {
	*x = FlowSpecComponent{}
	mi := &file_api_nlri_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FlowSpecComponent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlowSpecComponent) ProtoMessage() {}

func (x *FlowSpecComponent) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FlowSpecComponent.ProtoReflect.Descriptor instead.
func (*FlowSpecComponent) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{18}
}

func (x *FlowSpecComponent) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *FlowSpecComponent) GetItems() []*FlowSpecComponentItem {
	if x != nil {
		return x.Items
	}
	return nil
}

type FlowSpecRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Rule:
	//
	//	*FlowSpecRule_IpPrefix
	//	*FlowSpecRule_Mac
	//	*FlowSpecRule_Component
	Rule          isFlowSpecRule_Rule `protobuf_oneof:"rule"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FlowSpecRule) Reset() {
	*x = FlowSpecRule{}
	mi := &file_api_nlri_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FlowSpecRule) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlowSpecRule) ProtoMessage() {}

func (x *FlowSpecRule) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FlowSpecRule.ProtoReflect.Descriptor instead.
func (*FlowSpecRule) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{19}
}

func (x *FlowSpecRule) GetRule() isFlowSpecRule_Rule {
	if x != nil {
		return x.Rule
	}
	return nil
}

func (x *FlowSpecRule) GetIpPrefix() *FlowSpecIPPrefix {
	if x != nil {
		if x, ok := x.Rule.(*FlowSpecRule_IpPrefix); ok {
			return x.IpPrefix
		}
	}
	return nil
}

func (x *FlowSpecRule) GetMac() *FlowSpecMAC {
	if x != nil {
		if x, ok := x.Rule.(*FlowSpecRule_Mac); ok {
			return x.Mac
		}
	}
	return nil
}

func (x *FlowSpecRule) GetComponent() *FlowSpecComponent {
	if x != nil {
		if x, ok := x.Rule.(*FlowSpecRule_Component); ok {
			return x.Component
		}
	}
	return nil
}

type isFlowSpecRule_Rule interface {
	isFlowSpecRule_Rule()
}

type FlowSpecRule_IpPrefix struct {
	IpPrefix *FlowSpecIPPrefix `protobuf:"bytes,1,opt,name=ip_prefix,json=ipPrefix,proto3,oneof"`
}

type FlowSpecRule_Mac struct {
	Mac *FlowSpecMAC `protobuf:"bytes,2,opt,name=mac,proto3,oneof"`
}

type FlowSpecRule_Component struct {
	Component *FlowSpecComponent `protobuf:"bytes,3,opt,name=component,proto3,oneof"`
}

func (*FlowSpecRule_IpPrefix) isFlowSpecRule_Rule() {}

func (*FlowSpecRule_Mac) isFlowSpecRule_Rule() {}

func (*FlowSpecRule_Component) isFlowSpecRule_Rule() {}

// FlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=133
// - AFI=2, SAFI=133
type FlowSpecNLRI struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Rules         []*FlowSpecRule        `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FlowSpecNLRI) Reset() {
	*x = FlowSpecNLRI{}
	mi := &file_api_nlri_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FlowSpecNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlowSpecNLRI) ProtoMessage() {}

func (x *FlowSpecNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FlowSpecNLRI.ProtoReflect.Descriptor instead.
func (*FlowSpecNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{20}
}

func (x *FlowSpecNLRI) GetRules() []*FlowSpecRule {
	if x != nil {
		return x.Rules
	}
	return nil
}

// VPNFlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=134
// - AFI=2, SAFI=134
// - AFI=25, SAFI=134
type VPNFlowSpecNLRI struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Rd            *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	Rules         []*FlowSpecRule        `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *VPNFlowSpecNLRI) Reset() {
	*x = VPNFlowSpecNLRI{}
	mi := &file_api_nlri_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *VPNFlowSpecNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VPNFlowSpecNLRI) ProtoMessage() {}

func (x *VPNFlowSpecNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VPNFlowSpecNLRI.ProtoReflect.Descriptor instead.
func (*VPNFlowSpecNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{21}
}

func (x *VPNFlowSpecNLRI) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *VPNFlowSpecNLRI) GetRules() []*FlowSpecRule {
	if x != nil {
		return x.Rules
	}
	return nil
}

// OpaqueNLRI represents the NLRI for:
// - AFI=16397, SAFI=241
type OpaqueNLRI struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Key           []byte                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value         []byte                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OpaqueNLRI) Reset() {
	*x = OpaqueNLRI{}
	mi := &file_api_nlri_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OpaqueNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OpaqueNLRI) ProtoMessage() {}

func (x *OpaqueNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OpaqueNLRI.ProtoReflect.Descriptor instead.
func (*OpaqueNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{22}
}

func (x *OpaqueNLRI) GetKey() []byte {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *OpaqueNLRI) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

type LsNodeDescriptor struct {
	state                  protoimpl.MessageState `protogen:"open.v1"`
	Asn                    uint32                 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	BgpLsId                uint32                 `protobuf:"varint,2,opt,name=bgp_ls_id,json=bgpLsId,proto3" json:"bgp_ls_id,omitempty"`
	OspfAreaId             uint32                 `protobuf:"varint,3,opt,name=ospf_area_id,json=ospfAreaId,proto3" json:"ospf_area_id,omitempty"`
	Pseudonode             bool                   `protobuf:"varint,4,opt,name=pseudonode,proto3" json:"pseudonode,omitempty"`
	IgpRouterId            string                 `protobuf:"bytes,5,opt,name=igp_router_id,json=igpRouterId,proto3" json:"igp_router_id,omitempty"`
	BgpRouterId            string                 `protobuf:"bytes,6,opt,name=bgp_router_id,json=bgpRouterId,proto3" json:"bgp_router_id,omitempty"`
	BgpConfederationMember uint32                 `protobuf:"varint,7,opt,name=bgp_confederation_member,json=bgpConfederationMember,proto3" json:"bgp_confederation_member,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *LsNodeDescriptor) Reset() {
	*x = LsNodeDescriptor{}
	mi := &file_api_nlri_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsNodeDescriptor) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsNodeDescriptor) ProtoMessage() {}

func (x *LsNodeDescriptor) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsNodeDescriptor.ProtoReflect.Descriptor instead.
func (*LsNodeDescriptor) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{23}
}

func (x *LsNodeDescriptor) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *LsNodeDescriptor) GetBgpLsId() uint32 {
	if x != nil {
		return x.BgpLsId
	}
	return 0
}

func (x *LsNodeDescriptor) GetOspfAreaId() uint32 {
	if x != nil {
		return x.OspfAreaId
	}
	return 0
}

func (x *LsNodeDescriptor) GetPseudonode() bool {
	if x != nil {
		return x.Pseudonode
	}
	return false
}

func (x *LsNodeDescriptor) GetIgpRouterId() string {
	if x != nil {
		return x.IgpRouterId
	}
	return ""
}

func (x *LsNodeDescriptor) GetBgpRouterId() string {
	if x != nil {
		return x.BgpRouterId
	}
	return ""
}

func (x *LsNodeDescriptor) GetBgpConfederationMember() uint32 {
	if x != nil {
		return x.BgpConfederationMember
	}
	return 0
}

type LsLinkDescriptor struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	LinkLocalId       uint32                 `protobuf:"varint,1,opt,name=link_local_id,json=linkLocalId,proto3" json:"link_local_id,omitempty"`
	LinkRemoteId      uint32                 `protobuf:"varint,2,opt,name=link_remote_id,json=linkRemoteId,proto3" json:"link_remote_id,omitempty"`
	InterfaceAddrIpv4 string                 `protobuf:"bytes,3,opt,name=interface_addr_ipv4,json=interfaceAddrIpv4,proto3" json:"interface_addr_ipv4,omitempty"`
	NeighborAddrIpv4  string                 `protobuf:"bytes,4,opt,name=neighbor_addr_ipv4,json=neighborAddrIpv4,proto3" json:"neighbor_addr_ipv4,omitempty"`
	InterfaceAddrIpv6 string                 `protobuf:"bytes,5,opt,name=interface_addr_ipv6,json=interfaceAddrIpv6,proto3" json:"interface_addr_ipv6,omitempty"`
	NeighborAddrIpv6  string                 `protobuf:"bytes,6,opt,name=neighbor_addr_ipv6,json=neighborAddrIpv6,proto3" json:"neighbor_addr_ipv6,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *LsLinkDescriptor) Reset() {
	*x = LsLinkDescriptor{}
	mi := &file_api_nlri_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsLinkDescriptor) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsLinkDescriptor) ProtoMessage() {}

func (x *LsLinkDescriptor) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsLinkDescriptor.ProtoReflect.Descriptor instead.
func (*LsLinkDescriptor) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{24}
}

func (x *LsLinkDescriptor) GetLinkLocalId() uint32 {
	if x != nil {
		return x.LinkLocalId
	}
	return 0
}

func (x *LsLinkDescriptor) GetLinkRemoteId() uint32 {
	if x != nil {
		return x.LinkRemoteId
	}
	return 0
}

func (x *LsLinkDescriptor) GetInterfaceAddrIpv4() string {
	if x != nil {
		return x.InterfaceAddrIpv4
	}
	return ""
}

func (x *LsLinkDescriptor) GetNeighborAddrIpv4() string {
	if x != nil {
		return x.NeighborAddrIpv4
	}
	return ""
}

func (x *LsLinkDescriptor) GetInterfaceAddrIpv6() string {
	if x != nil {
		return x.InterfaceAddrIpv6
	}
	return ""
}

func (x *LsLinkDescriptor) GetNeighborAddrIpv6() string {
	if x != nil {
		return x.NeighborAddrIpv6
	}
	return ""
}

type LsPrefixDescriptor struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	IpReachability []string               `protobuf:"bytes,1,rep,name=ip_reachability,json=ipReachability,proto3" json:"ip_reachability,omitempty"`
	OspfRouteType  LsOspfRouteType        `protobuf:"varint,2,opt,name=ospf_route_type,json=ospfRouteType,proto3,enum=api.LsOspfRouteType" json:"ospf_route_type,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *LsPrefixDescriptor) Reset() {
	*x = LsPrefixDescriptor{}
	mi := &file_api_nlri_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsPrefixDescriptor) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsPrefixDescriptor) ProtoMessage() {}

func (x *LsPrefixDescriptor) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsPrefixDescriptor.ProtoReflect.Descriptor instead.
func (*LsPrefixDescriptor) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{25}
}

func (x *LsPrefixDescriptor) GetIpReachability() []string {
	if x != nil {
		return x.IpReachability
	}
	return nil
}

func (x *LsPrefixDescriptor) GetOspfRouteType() LsOspfRouteType {
	if x != nil {
		return x.OspfRouteType
	}
	return LsOspfRouteType_LS_OSPF_ROUTE_TYPE_UNSPECIFIED
}

type LsNodeNLRI struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LocalNode     *LsNodeDescriptor      `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LsNodeNLRI) Reset() {
	*x = LsNodeNLRI{}
	mi := &file_api_nlri_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsNodeNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsNodeNLRI) ProtoMessage() {}

func (x *LsNodeNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsNodeNLRI.ProtoReflect.Descriptor instead.
func (*LsNodeNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{26}
}

func (x *LsNodeNLRI) GetLocalNode() *LsNodeDescriptor {
	if x != nil {
		return x.LocalNode
	}
	return nil
}

type LsLinkNLRI struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	LocalNode      *LsNodeDescriptor      `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
	RemoteNode     *LsNodeDescriptor      `protobuf:"bytes,2,opt,name=remote_node,json=remoteNode,proto3" json:"remote_node,omitempty"`
	LinkDescriptor *LsLinkDescriptor      `protobuf:"bytes,3,opt,name=link_descriptor,json=linkDescriptor,proto3" json:"link_descriptor,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *LsLinkNLRI) Reset() {
	*x = LsLinkNLRI{}
	mi := &file_api_nlri_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsLinkNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsLinkNLRI) ProtoMessage() {}

func (x *LsLinkNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsLinkNLRI.ProtoReflect.Descriptor instead.
func (*LsLinkNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{27}
}

func (x *LsLinkNLRI) GetLocalNode() *LsNodeDescriptor {
	if x != nil {
		return x.LocalNode
	}
	return nil
}

func (x *LsLinkNLRI) GetRemoteNode() *LsNodeDescriptor {
	if x != nil {
		return x.RemoteNode
	}
	return nil
}

func (x *LsLinkNLRI) GetLinkDescriptor() *LsLinkDescriptor {
	if x != nil {
		return x.LinkDescriptor
	}
	return nil
}

type LsPrefixV4NLRI struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	LocalNode        *LsNodeDescriptor      `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
	PrefixDescriptor *LsPrefixDescriptor    `protobuf:"bytes,2,opt,name=prefix_descriptor,json=prefixDescriptor,proto3" json:"prefix_descriptor,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *LsPrefixV4NLRI) Reset() {
	*x = LsPrefixV4NLRI{}
	mi := &file_api_nlri_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsPrefixV4NLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsPrefixV4NLRI) ProtoMessage() {}

func (x *LsPrefixV4NLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsPrefixV4NLRI.ProtoReflect.Descriptor instead.
func (*LsPrefixV4NLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{28}
}

func (x *LsPrefixV4NLRI) GetLocalNode() *LsNodeDescriptor {
	if x != nil {
		return x.LocalNode
	}
	return nil
}

func (x *LsPrefixV4NLRI) GetPrefixDescriptor() *LsPrefixDescriptor {
	if x != nil {
		return x.PrefixDescriptor
	}
	return nil
}

type LsPrefixV6NLRI struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	LocalNode        *LsNodeDescriptor      `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
	PrefixDescriptor *LsPrefixDescriptor    `protobuf:"bytes,2,opt,name=prefix_descriptor,json=prefixDescriptor,proto3" json:"prefix_descriptor,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *LsPrefixV6NLRI) Reset() {
	*x = LsPrefixV6NLRI{}
	mi := &file_api_nlri_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsPrefixV6NLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsPrefixV6NLRI) ProtoMessage() {}

func (x *LsPrefixV6NLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsPrefixV6NLRI.ProtoReflect.Descriptor instead.
func (*LsPrefixV6NLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{29}
}

func (x *LsPrefixV6NLRI) GetLocalNode() *LsNodeDescriptor {
	if x != nil {
		return x.LocalNode
	}
	return nil
}

func (x *LsPrefixV6NLRI) GetPrefixDescriptor() *LsPrefixDescriptor {
	if x != nil {
		return x.PrefixDescriptor
	}
	return nil
}

// https://tools.ietf.org/html/rfc9552
type LsSrv6SIDInformation struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Sids          []string               `protobuf:"bytes,1,rep,name=sids,proto3" json:"sids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LsSrv6SIDInformation) Reset() {
	*x = LsSrv6SIDInformation{}
	mi := &file_api_nlri_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsSrv6SIDInformation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsSrv6SIDInformation) ProtoMessage() {}

func (x *LsSrv6SIDInformation) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsSrv6SIDInformation.ProtoReflect.Descriptor instead.
func (*LsSrv6SIDInformation) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{30}
}

func (x *LsSrv6SIDInformation) GetSids() []string {
	if x != nil {
		return x.Sids
	}
	return nil
}

type LsMultiTopologyIdentifier struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	MultiTopoIds  []uint32               `protobuf:"varint,1,rep,packed,name=multi_topo_ids,json=multiTopoIds,proto3" json:"multi_topo_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LsMultiTopologyIdentifier) Reset() {
	*x = LsMultiTopologyIdentifier{}
	mi := &file_api_nlri_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsMultiTopologyIdentifier) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsMultiTopologyIdentifier) ProtoMessage() {}

func (x *LsMultiTopologyIdentifier) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[31]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsMultiTopologyIdentifier.ProtoReflect.Descriptor instead.
func (*LsMultiTopologyIdentifier) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{31}
}

func (x *LsMultiTopologyIdentifier) GetMultiTopoIds() []uint32 {
	if x != nil {
		return x.MultiTopoIds
	}
	return nil
}

// TODO: LsSrPolicyiCandidatePathNLRI
type LsSrv6SIDNLRI struct {
	state              protoimpl.MessageState     `protogen:"open.v1"`
	LocalNode          *LsNodeDescriptor          `protobuf:"bytes,1,opt,name=local_node,json=localNode,proto3" json:"local_node,omitempty"`
	Srv6SidInformation *LsSrv6SIDInformation      `protobuf:"bytes,2,opt,name=srv6_sid_information,json=srv6SidInformation,proto3" json:"srv6_sid_information,omitempty"`
	MultiTopoId        *LsMultiTopologyIdentifier `protobuf:"bytes,3,opt,name=multi_topo_id,json=multiTopoId,proto3" json:"multi_topo_id,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *LsSrv6SIDNLRI) Reset() {
	*x = LsSrv6SIDNLRI{}
	mi := &file_api_nlri_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsSrv6SIDNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsSrv6SIDNLRI) ProtoMessage() {}

func (x *LsSrv6SIDNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[32]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsSrv6SIDNLRI.ProtoReflect.Descriptor instead.
func (*LsSrv6SIDNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{32}
}

func (x *LsSrv6SIDNLRI) GetLocalNode() *LsNodeDescriptor {
	if x != nil {
		return x.LocalNode
	}
	return nil
}

func (x *LsSrv6SIDNLRI) GetSrv6SidInformation() *LsSrv6SIDInformation {
	if x != nil {
		return x.Srv6SidInformation
	}
	return nil
}

func (x *LsSrv6SIDNLRI) GetMultiTopoId() *LsMultiTopologyIdentifier {
	if x != nil {
		return x.MultiTopoId
	}
	return nil
}

// LsAddrPrefix represents the NLRI for:
// - AFI=16388, SAFI=71
type LsAddrPrefix struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          LsNLRIType             `protobuf:"varint,1,opt,name=type,proto3,enum=api.LsNLRIType" json:"type,omitempty"`
	Nlri          *LsAddrPrefix_LsNLRI   `protobuf:"bytes,2,opt,name=nlri,proto3" json:"nlri,omitempty"`
	Length        uint32                 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"`
	ProtocolId    LsProtocolID           `protobuf:"varint,4,opt,name=protocol_id,json=protocolId,proto3,enum=api.LsProtocolID" json:"protocol_id,omitempty"`
	Identifier    uint64                 `protobuf:"varint,5,opt,name=identifier,proto3" json:"identifier,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LsAddrPrefix) Reset() {
	*x = LsAddrPrefix{}
	mi := &file_api_nlri_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsAddrPrefix) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsAddrPrefix) ProtoMessage() {}

func (x *LsAddrPrefix) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[33]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsAddrPrefix.ProtoReflect.Descriptor instead.
func (*LsAddrPrefix) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{33}
}

func (x *LsAddrPrefix) GetType() LsNLRIType {
	if x != nil {
		return x.Type
	}
	return LsNLRIType_LS_NLRI_TYPE_UNSPECIFIED
}

func (x *LsAddrPrefix) GetNlri() *LsAddrPrefix_LsNLRI {
	if x != nil {
		return x.Nlri
	}
	return nil
}

func (x *LsAddrPrefix) GetLength() uint32 {
	if x != nil {
		return x.Length
	}
	return 0
}

func (x *LsAddrPrefix) GetProtocolId() LsProtocolID {
	if x != nil {
		return x.ProtocolId
	}
	return LsProtocolID_LS_PROTOCOL_ID_UNSPECIFIED
}

func (x *LsAddrPrefix) GetIdentifier() uint64 {
	if x != nil {
		return x.Identifier
	}
	return 0
}

type MUPInterworkSegmentDiscoveryRoute struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Rd            *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	Prefix        string                 `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MUPInterworkSegmentDiscoveryRoute) Reset() {
	*x = MUPInterworkSegmentDiscoveryRoute{}
	mi := &file_api_nlri_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MUPInterworkSegmentDiscoveryRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MUPInterworkSegmentDiscoveryRoute) ProtoMessage() {}

func (x *MUPInterworkSegmentDiscoveryRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[34]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MUPInterworkSegmentDiscoveryRoute.ProtoReflect.Descriptor instead.
func (*MUPInterworkSegmentDiscoveryRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{34}
}

func (x *MUPInterworkSegmentDiscoveryRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *MUPInterworkSegmentDiscoveryRoute) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

type MUPDirectSegmentDiscoveryRoute struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Rd            *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	Address       string                 `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MUPDirectSegmentDiscoveryRoute) Reset() {
	*x = MUPDirectSegmentDiscoveryRoute{}
	mi := &file_api_nlri_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MUPDirectSegmentDiscoveryRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MUPDirectSegmentDiscoveryRoute) ProtoMessage() {}

func (x *MUPDirectSegmentDiscoveryRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[35]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MUPDirectSegmentDiscoveryRoute.ProtoReflect.Descriptor instead.
func (*MUPDirectSegmentDiscoveryRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{35}
}

func (x *MUPDirectSegmentDiscoveryRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *MUPDirectSegmentDiscoveryRoute) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

type MUPType1SessionTransformedRoute struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Rd    *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	// Deprecated: Marked as deprecated in api/nlri.proto.
	PrefixLength          uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3" json:"prefix_length,omitempty"`
	Prefix                string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
	Teid                  uint32 `protobuf:"varint,4,opt,name=teid,proto3" json:"teid,omitempty"`
	Qfi                   uint32 `protobuf:"varint,5,opt,name=qfi,proto3" json:"qfi,omitempty"`
	EndpointAddressLength uint32 `protobuf:"varint,6,opt,name=endpoint_address_length,json=endpointAddressLength,proto3" json:"endpoint_address_length,omitempty"`
	EndpointAddress       string `protobuf:"bytes,7,opt,name=endpoint_address,json=endpointAddress,proto3" json:"endpoint_address,omitempty"`
	SourceAddressLength   uint32 `protobuf:"varint,8,opt,name=source_address_length,json=sourceAddressLength,proto3" json:"source_address_length,omitempty"`
	SourceAddress         string `protobuf:"bytes,9,opt,name=source_address,json=sourceAddress,proto3" json:"source_address,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *MUPType1SessionTransformedRoute) Reset() {
	*x = MUPType1SessionTransformedRoute{}
	mi := &file_api_nlri_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MUPType1SessionTransformedRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MUPType1SessionTransformedRoute) ProtoMessage() {}

func (x *MUPType1SessionTransformedRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[36]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MUPType1SessionTransformedRoute.ProtoReflect.Descriptor instead.
func (*MUPType1SessionTransformedRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{36}
}

func (x *MUPType1SessionTransformedRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

// Deprecated: Marked as deprecated in api/nlri.proto.
func (x *MUPType1SessionTransformedRoute) GetPrefixLength() uint32 {
	if x != nil {
		return x.PrefixLength
	}
	return 0
}

func (x *MUPType1SessionTransformedRoute) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

func (x *MUPType1SessionTransformedRoute) GetTeid() uint32 {
	if x != nil {
		return x.Teid
	}
	return 0
}

func (x *MUPType1SessionTransformedRoute) GetQfi() uint32 {
	if x != nil {
		return x.Qfi
	}
	return 0
}

func (x *MUPType1SessionTransformedRoute) GetEndpointAddressLength() uint32 {
	if x != nil {
		return x.EndpointAddressLength
	}
	return 0
}

func (x *MUPType1SessionTransformedRoute) GetEndpointAddress() string {
	if x != nil {
		return x.EndpointAddress
	}
	return ""
}

func (x *MUPType1SessionTransformedRoute) GetSourceAddressLength() uint32 {
	if x != nil {
		return x.SourceAddressLength
	}
	return 0
}

func (x *MUPType1SessionTransformedRoute) GetSourceAddress() string {
	if x != nil {
		return x.SourceAddress
	}
	return ""
}

type MUPType2SessionTransformedRoute struct {
	state                 protoimpl.MessageState `protogen:"open.v1"`
	Rd                    *RouteDistinguisher    `protobuf:"bytes,1,opt,name=rd,proto3" json:"rd,omitempty"`
	EndpointAddressLength uint32                 `protobuf:"varint,2,opt,name=endpoint_address_length,json=endpointAddressLength,proto3" json:"endpoint_address_length,omitempty"`
	EndpointAddress       string                 `protobuf:"bytes,3,opt,name=endpoint_address,json=endpointAddress,proto3" json:"endpoint_address,omitempty"`
	Teid                  uint32                 `protobuf:"varint,4,opt,name=teid,proto3" json:"teid,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *MUPType2SessionTransformedRoute) Reset() {
	*x = MUPType2SessionTransformedRoute{}
	mi := &file_api_nlri_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MUPType2SessionTransformedRoute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MUPType2SessionTransformedRoute) ProtoMessage() {}

func (x *MUPType2SessionTransformedRoute) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[37]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MUPType2SessionTransformedRoute.ProtoReflect.Descriptor instead.
func (*MUPType2SessionTransformedRoute) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{37}
}

func (x *MUPType2SessionTransformedRoute) GetRd() *RouteDistinguisher {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *MUPType2SessionTransformedRoute) GetEndpointAddressLength() uint32 {
	if x != nil {
		return x.EndpointAddressLength
	}
	return 0
}

func (x *MUPType2SessionTransformedRoute) GetEndpointAddress() string {
	if x != nil {
		return x.EndpointAddress
	}
	return ""
}

func (x *MUPType2SessionTransformedRoute) GetTeid() uint32 {
	if x != nil {
		return x.Teid
	}
	return 0
}

type LsAddrPrefix_LsNLRI struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Nlri:
	//
	//	*LsAddrPrefix_LsNLRI_Node
	//	*LsAddrPrefix_LsNLRI_Link
	//	*LsAddrPrefix_LsNLRI_PrefixV4
	//	*LsAddrPrefix_LsNLRI_PrefixV6
	//	*LsAddrPrefix_LsNLRI_Srv6Sid
	Nlri          isLsAddrPrefix_LsNLRI_Nlri `protobuf_oneof:"nlri"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LsAddrPrefix_LsNLRI) Reset() {
	*x = LsAddrPrefix_LsNLRI{}
	mi := &file_api_nlri_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LsAddrPrefix_LsNLRI) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LsAddrPrefix_LsNLRI) ProtoMessage() {}

func (x *LsAddrPrefix_LsNLRI) ProtoReflect() protoreflect.Message {
	mi := &file_api_nlri_proto_msgTypes[38]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LsAddrPrefix_LsNLRI.ProtoReflect.Descriptor instead.
func (*LsAddrPrefix_LsNLRI) Descriptor() ([]byte, []int) {
	return file_api_nlri_proto_rawDescGZIP(), []int{33, 0}
}

func (x *LsAddrPrefix_LsNLRI) GetNlri() isLsAddrPrefix_LsNLRI_Nlri {
	if x != nil {
		return x.Nlri
	}
	return nil
}

func (x *LsAddrPrefix_LsNLRI) GetNode() *LsNodeNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*LsAddrPrefix_LsNLRI_Node); ok {
			return x.Node
		}
	}
	return nil
}

func (x *LsAddrPrefix_LsNLRI) GetLink() *LsLinkNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*LsAddrPrefix_LsNLRI_Link); ok {
			return x.Link
		}
	}
	return nil
}

func (x *LsAddrPrefix_LsNLRI) GetPrefixV4() *LsPrefixV4NLRI {
	if x != nil {
		if x, ok := x.Nlri.(*LsAddrPrefix_LsNLRI_PrefixV4); ok {
			return x.PrefixV4
		}
	}
	return nil
}

func (x *LsAddrPrefix_LsNLRI) GetPrefixV6() *LsPrefixV6NLRI {
	if x != nil {
		if x, ok := x.Nlri.(*LsAddrPrefix_LsNLRI_PrefixV6); ok {
			return x.PrefixV6
		}
	}
	return nil
}

func (x *LsAddrPrefix_LsNLRI) GetSrv6Sid() *LsSrv6SIDNLRI {
	if x != nil {
		if x, ok := x.Nlri.(*LsAddrPrefix_LsNLRI_Srv6Sid); ok {
			return x.Srv6Sid
		}
	}
	return nil
}

type isLsAddrPrefix_LsNLRI_Nlri interface {
	isLsAddrPrefix_LsNLRI_Nlri()
}

type LsAddrPrefix_LsNLRI_Node struct {
	Node *LsNodeNLRI `protobuf:"bytes,1,opt,name=node,proto3,oneof"`
}

type LsAddrPrefix_LsNLRI_Link struct {
	Link *LsLinkNLRI `protobuf:"bytes,2,opt,name=link,proto3,oneof"`
}

type LsAddrPrefix_LsNLRI_PrefixV4 struct {
	PrefixV4 *LsPrefixV4NLRI `protobuf:"bytes,3,opt,name=prefix_v4,json=prefixV4,proto3,oneof"`
}

type LsAddrPrefix_LsNLRI_PrefixV6 struct {
	PrefixV6 *LsPrefixV6NLRI `protobuf:"bytes,4,opt,name=prefix_v6,json=prefixV6,proto3,oneof"`
}

type LsAddrPrefix_LsNLRI_Srv6Sid struct {
	Srv6Sid *LsSrv6SIDNLRI `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof"`
}

func (*LsAddrPrefix_LsNLRI_Node) isLsAddrPrefix_LsNLRI_Nlri() {}

func (*LsAddrPrefix_LsNLRI_Link) isLsAddrPrefix_LsNLRI_Nlri() {}

func (*LsAddrPrefix_LsNLRI_PrefixV4) isLsAddrPrefix_LsNLRI_Nlri() {}

func (*LsAddrPrefix_LsNLRI_PrefixV6) isLsAddrPrefix_LsNLRI_Nlri() {}

func (*LsAddrPrefix_LsNLRI_Srv6Sid) isLsAddrPrefix_LsNLRI_Nlri() {}

var File_api_nlri_proto protoreflect.FileDescriptor

const file_api_nlri_proto_rawDesc = "" +
	"\n" +
	"\x0eapi/nlri.proto\x12\x03api\x1a\x10api/common.proto\x1a\x10api/extcom.proto\"\x87\f\n" +
	"\x04NLRI\x12.\n" +
	"\x06prefix\x18\x01 \x01(\v2\x14.api.IPAddressPrefixH\x00R\x06prefix\x12D\n" +
	"\x0elabeled_prefix\x18\x02 \x01(\v2\x1b.api.LabeledIPAddressPrefixH\x00R\rlabeledPrefix\x12>\n" +
	"\rencapsulation\x18\x03 \x01(\v2\x16.api.EncapsulationNLRIH\x00R\rencapsulation\x12#\n" +
	"\x04vpls\x18\x04 \x01(\v2\r.api.VPLSNLRIH\x00R\x04vpls\x12O\n" +
	"\x10evpn_ethernet_ad\x18\x05 \x01(\v2#.api.EVPNEthernetAutoDiscoveryRouteH\x00R\x0eevpnEthernetAd\x12C\n" +
	"\vevpn_macadv\x18\x06 \x01(\v2 .api.EVPNMACIPAdvertisementRouteH\x00R\n" +
	"evpnMacadv\x12T\n" +
	"\x0eevpn_multicast\x18\a \x01(\v2+.api.EVPNInclusiveMulticastEthernetTagRouteH\x00R\revpnMulticast\x12S\n" +
	"\x15evpn_ethernet_segment\x18\b \x01(\v2\x1d.api.EVPNEthernetSegmentRouteH\x00R\x13evpnEthernetSegment\x12>\n" +
	"\x0eevpn_ip_prefix\x18\t \x01(\v2\x16.api.EVPNIPPrefixRouteH\x00R\fevpnIpPrefix\x125\n" +
	"\vevpn_i_pmsi\x18\n" +
	" \x01(\v2\x13.api.EVPNIPMSIRouteH\x00R\tevpnIPmsi\x12S\n" +
	"\x15labeled_vpn_ip_prefix\x18\v \x01(\v2\x1e.api.LabeledVPNIPAddressPrefixH\x00R\x12labeledVpnIpPrefix\x12X\n" +
	"\x17route_target_membership\x18\f \x01(\v2\x1e.api.RouteTargetMembershipNLRIH\x00R\x15routeTargetMembership\x120\n" +
	"\tflow_spec\x18\r \x01(\v2\x11.api.FlowSpecNLRIH\x00R\bflowSpec\x12:\n" +
	"\rvpn_flow_spec\x18\x0e \x01(\v2\x14.api.VPNFlowSpecNLRIH\x00R\vvpnFlowSpec\x12)\n" +
	"\x06opaque\x18\x0f \x01(\v2\x0f.api.OpaqueNLRIH\x00R\x06opaque\x129\n" +
	"\x0els_addr_prefix\x18\x10 \x01(\v2\x11.api.LsAddrPrefixH\x00R\flsAddrPrefix\x120\n" +
	"\tsr_policy\x18\x11 \x01(\v2\x11.api.SRPolicyNLRIH\x00R\bsrPolicy\x12o\n" +
	"\x1fmup_interwork_segment_discovery\x18\x12 \x01(\v2&.api.MUPInterworkSegmentDiscoveryRouteH\x00R\x1cmupInterworkSegmentDiscovery\x12f\n" +
	"\x1cmup_direct_segment_discovery\x18\x13 \x01(\v2#.api.MUPDirectSegmentDiscoveryRouteH\x00R\x19mupDirectSegmentDiscovery\x12j\n" +
	"\x1emup_type_1_session_transformed\x18\x14 \x01(\v2$.api.MUPType1SessionTransformedRouteH\x00R\x1amupType1SessionTransformed\x12j\n" +
	"\x1emup_type_2_session_transformed\x18\x15 \x01(\v2$.api.MUPType2SessionTransformedRouteH\x00R\x1amupType2SessionTransformedB\x06\n" +
	"\x04nlri\"H\n" +
	"\x0fIPAddressPrefix\x12\x1d\n" +
	"\n" +
	"prefix_len\x18\x01 \x01(\rR\tprefixLen\x12\x16\n" +
	"\x06prefix\x18\x02 \x01(\tR\x06prefix\"g\n" +
	"\x16LabeledIPAddressPrefix\x12\x16\n" +
	"\x06labels\x18\x01 \x03(\rR\x06labels\x12\x1d\n" +
	"\n" +
	"prefix_len\x18\x02 \x01(\rR\tprefixLen\x12\x16\n" +
	"\x06prefix\x18\x03 \x01(\tR\x06prefix\"-\n" +
	"\x11EncapsulationNLRI\x12\x18\n" +
	"\aaddress\x18\x01 \x01(\tR\aaddress\"\xbe\x01\n" +
	"\bVPLSNLRI\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12\x13\n" +
	"\x05ve_id\x18\x02 \x01(\rR\x04veId\x12&\n" +
	"\x0fve_block_offset\x18\x03 \x01(\rR\rveBlockOffset\x12\"\n" +
	"\rve_block_size\x18\x04 \x01(\rR\vveBlockSize\x12(\n" +
	"\x10label_block_base\x18\x05 \x01(\rR\x0elabelBlockBase\"E\n" +
	"\x19EthernetSegmentIdentifier\x12\x12\n" +
	"\x04type\x18\x01 \x01(\rR\x04type\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value\"\xb4\x01\n" +
	"\x1eEVPNEthernetAutoDiscoveryRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x120\n" +
	"\x03esi\x18\x02 \x01(\v2\x1e.api.EthernetSegmentIdentifierR\x03esi\x12!\n" +
	"\fethernet_tag\x18\x03 \x01(\rR\vethernetTag\x12\x14\n" +
	"\x05label\x18\x04 \x01(\rR\x05label\"\xf3\x01\n" +
	"\x1bEVPNMACIPAdvertisementRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x120\n" +
	"\x03esi\x18\x02 \x01(\v2\x1e.api.EthernetSegmentIdentifierR\x03esi\x12!\n" +
	"\fethernet_tag\x18\x03 \x01(\rR\vethernetTag\x12\x1f\n" +
	"\vmac_address\x18\x04 \x01(\tR\n" +
	"macAddress\x12\x1d\n" +
	"\n" +
	"ip_address\x18\x05 \x01(\tR\tipAddress\x12\x16\n" +
	"\x06labels\x18\x06 \x03(\rR\x06labels\"\x93\x01\n" +
	"&EVPNInclusiveMulticastEthernetTagRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12!\n" +
	"\fethernet_tag\x18\x02 \x01(\rR\vethernetTag\x12\x1d\n" +
	"\n" +
	"ip_address\x18\x03 \x01(\tR\tipAddress\"\x94\x01\n" +
	"\x18EVPNEthernetSegmentRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x120\n" +
	"\x03esi\x18\x02 \x01(\v2\x1e.api.EthernetSegmentIdentifierR\x03esi\x12\x1d\n" +
	"\n" +
	"ip_address\x18\x03 \x01(\tR\tipAddress\"\x87\x02\n" +
	"\x11EVPNIPPrefixRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x120\n" +
	"\x03esi\x18\x02 \x01(\v2\x1e.api.EthernetSegmentIdentifierR\x03esi\x12!\n" +
	"\fethernet_tag\x18\x03 \x01(\rR\vethernetTag\x12\x1b\n" +
	"\tip_prefix\x18\x04 \x01(\tR\bipPrefix\x12\"\n" +
	"\rip_prefix_len\x18\x05 \x01(\rR\vipPrefixLen\x12\x1d\n" +
	"\n" +
	"gw_address\x18\x06 \x01(\tR\tgwAddress\x12\x14\n" +
	"\x05label\x18\a \x01(\rR\x05label\"~\n" +
	"\x0eEVPNIPMSIRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12!\n" +
	"\fethernet_tag\x18\x02 \x01(\rR\vethernetTag\x12 \n" +
	"\x02rt\x18\x03 \x01(\v2\x10.api.RouteTargetR\x02rt\"~\n" +
	"\fSRPolicyNLRI\x12\x16\n" +
	"\x06length\x18\x01 \x01(\rR\x06length\x12$\n" +
	"\rdistinguisher\x18\x02 \x01(\rR\rdistinguisher\x12\x14\n" +
	"\x05color\x18\x03 \x01(\rR\x05color\x12\x1a\n" +
	"\bendpoint\x18\x04 \x01(\fR\bendpoint\"\x93\x01\n" +
	"\x19LabeledVPNIPAddressPrefix\x12\x16\n" +
	"\x06labels\x18\x01 \x03(\rR\x06labels\x12'\n" +
	"\x02rd\x18\x02 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12\x1d\n" +
	"\n" +
	"prefix_len\x18\x03 \x01(\rR\tprefixLen\x12\x16\n" +
	"\x06prefix\x18\x04 \x01(\tR\x06prefix\"O\n" +
	"\x19RouteTargetMembershipNLRI\x12\x10\n" +
	"\x03asn\x18\x01 \x01(\rR\x03asn\x12 \n" +
	"\x02rt\x18\x02 \x01(\v2\x10.api.RouteTargetR\x02rt\"u\n" +
	"\x10FlowSpecIPPrefix\x12\x12\n" +
	"\x04type\x18\x01 \x01(\rR\x04type\x12\x1d\n" +
	"\n" +
	"prefix_len\x18\x02 \x01(\rR\tprefixLen\x12\x16\n" +
	"\x06prefix\x18\x03 \x01(\tR\x06prefix\x12\x16\n" +
	"\x06offset\x18\x04 \x01(\rR\x06offset\";\n" +
	"\vFlowSpecMAC\x12\x12\n" +
	"\x04type\x18\x01 \x01(\rR\x04type\x12\x18\n" +
	"\aaddress\x18\x02 \x01(\tR\aaddress\"=\n" +
	"\x15FlowSpecComponentItem\x12\x0e\n" +
	"\x02op\x18\x01 \x01(\rR\x02op\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x04R\x05value\"Y\n" +
	"\x11FlowSpecComponent\x12\x12\n" +
	"\x04type\x18\x01 \x01(\rR\x04type\x120\n" +
	"\x05items\x18\x02 \x03(\v2\x1a.api.FlowSpecComponentItemR\x05items\"\xaa\x01\n" +
	"\fFlowSpecRule\x124\n" +
	"\tip_prefix\x18\x01 \x01(\v2\x15.api.FlowSpecIPPrefixH\x00R\bipPrefix\x12$\n" +
	"\x03mac\x18\x02 \x01(\v2\x10.api.FlowSpecMACH\x00R\x03mac\x126\n" +
	"\tcomponent\x18\x03 \x01(\v2\x16.api.FlowSpecComponentH\x00R\tcomponentB\x06\n" +
	"\x04rule\"7\n" +
	"\fFlowSpecNLRI\x12'\n" +
	"\x05rules\x18\x01 \x03(\v2\x11.api.FlowSpecRuleR\x05rules\"c\n" +
	"\x0fVPNFlowSpecNLRI\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12'\n" +
	"\x05rules\x18\x02 \x03(\v2\x11.api.FlowSpecRuleR\x05rules\"4\n" +
	"\n" +
	"OpaqueNLRI\x12\x10\n" +
	"\x03key\x18\x01 \x01(\fR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value\"\x84\x02\n" +
	"\x10LsNodeDescriptor\x12\x10\n" +
	"\x03asn\x18\x01 \x01(\rR\x03asn\x12\x1a\n" +
	"\tbgp_ls_id\x18\x02 \x01(\rR\abgpLsId\x12 \n" +
	"\fospf_area_id\x18\x03 \x01(\rR\n" +
	"ospfAreaId\x12\x1e\n" +
	"\n" +
	"pseudonode\x18\x04 \x01(\bR\n" +
	"pseudonode\x12\"\n" +
	"\rigp_router_id\x18\x05 \x01(\tR\vigpRouterId\x12\"\n" +
	"\rbgp_router_id\x18\x06 \x01(\tR\vbgpRouterId\x128\n" +
	"\x18bgp_confederation_member\x18\a \x01(\rR\x16bgpConfederationMember\"\x98\x02\n" +
	"\x10LsLinkDescriptor\x12\"\n" +
	"\rlink_local_id\x18\x01 \x01(\rR\vlinkLocalId\x12$\n" +
	"\x0elink_remote_id\x18\x02 \x01(\rR\flinkRemoteId\x12.\n" +
	"\x13interface_addr_ipv4\x18\x03 \x01(\tR\x11interfaceAddrIpv4\x12,\n" +
	"\x12neighbor_addr_ipv4\x18\x04 \x01(\tR\x10neighborAddrIpv4\x12.\n" +
	"\x13interface_addr_ipv6\x18\x05 \x01(\tR\x11interfaceAddrIpv6\x12,\n" +
	"\x12neighbor_addr_ipv6\x18\x06 \x01(\tR\x10neighborAddrIpv6\"{\n" +
	"\x12LsPrefixDescriptor\x12'\n" +
	"\x0fip_reachability\x18\x01 \x03(\tR\x0eipReachability\x12<\n" +
	"\x0fospf_route_type\x18\x02 \x01(\x0e2\x14.api.LsOspfRouteTypeR\rospfRouteType\"B\n" +
	"\n" +
	"LsNodeNLRI\x124\n" +
	"\n" +
	"local_node\x18\x01 \x01(\v2\x15.api.LsNodeDescriptorR\tlocalNode\"\xba\x01\n" +
	"\n" +
	"LsLinkNLRI\x124\n" +
	"\n" +
	"local_node\x18\x01 \x01(\v2\x15.api.LsNodeDescriptorR\tlocalNode\x126\n" +
	"\vremote_node\x18\x02 \x01(\v2\x15.api.LsNodeDescriptorR\n" +
	"remoteNode\x12>\n" +
	"\x0flink_descriptor\x18\x03 \x01(\v2\x15.api.LsLinkDescriptorR\x0elinkDescriptor\"\x8c\x01\n" +
	"\x0eLsPrefixV4NLRI\x124\n" +
	"\n" +
	"local_node\x18\x01 \x01(\v2\x15.api.LsNodeDescriptorR\tlocalNode\x12D\n" +
	"\x11prefix_descriptor\x18\x02 \x01(\v2\x17.api.LsPrefixDescriptorR\x10prefixDescriptor\"\x8c\x01\n" +
	"\x0eLsPrefixV6NLRI\x124\n" +
	"\n" +
	"local_node\x18\x01 \x01(\v2\x15.api.LsNodeDescriptorR\tlocalNode\x12D\n" +
	"\x11prefix_descriptor\x18\x02 \x01(\v2\x17.api.LsPrefixDescriptorR\x10prefixDescriptor\"*\n" +
	"\x14LsSrv6SIDInformation\x12\x12\n" +
	"\x04sids\x18\x01 \x03(\tR\x04sids\"A\n" +
	"\x19LsMultiTopologyIdentifier\x12$\n" +
	"\x0emulti_topo_ids\x18\x01 \x03(\rR\fmultiTopoIds\"\xd6\x01\n" +
	"\rLsSrv6SIDNLRI\x124\n" +
	"\n" +
	"local_node\x18\x01 \x01(\v2\x15.api.LsNodeDescriptorR\tlocalNode\x12K\n" +
	"\x14srv6_sid_information\x18\x02 \x01(\v2\x19.api.LsSrv6SIDInformationR\x12srv6SidInformation\x12B\n" +
	"\rmulti_topo_id\x18\x03 \x01(\v2\x1e.api.LsMultiTopologyIdentifierR\vmultiTopoId\"\xc7\x03\n" +
	"\fLsAddrPrefix\x12#\n" +
	"\x04type\x18\x01 \x01(\x0e2\x0f.api.LsNLRITypeR\x04type\x12,\n" +
	"\x04nlri\x18\x02 \x01(\v2\x18.api.LsAddrPrefix.LsNLRIR\x04nlri\x12\x16\n" +
	"\x06length\x18\x03 \x01(\rR\x06length\x122\n" +
	"\vprotocol_id\x18\x04 \x01(\x0e2\x11.api.LsProtocolIDR\n" +
	"protocolId\x12\x1e\n" +
	"\n" +
	"identifier\x18\x05 \x01(\x04R\n" +
	"identifier\x1a\xf7\x01\n" +
	"\x06LsNLRI\x12%\n" +
	"\x04node\x18\x01 \x01(\v2\x0f.api.LsNodeNLRIH\x00R\x04node\x12%\n" +
	"\x04link\x18\x02 \x01(\v2\x0f.api.LsLinkNLRIH\x00R\x04link\x122\n" +
	"\tprefix_v4\x18\x03 \x01(\v2\x13.api.LsPrefixV4NLRIH\x00R\bprefixV4\x122\n" +
	"\tprefix_v6\x18\x04 \x01(\v2\x13.api.LsPrefixV6NLRIH\x00R\bprefixV6\x12/\n" +
	"\bsrv6_sid\x18\x05 \x01(\v2\x12.api.LsSrv6SIDNLRIH\x00R\asrv6SidB\x06\n" +
	"\x04nlri\"d\n" +
	"!MUPInterworkSegmentDiscoveryRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12\x16\n" +
	"\x06prefix\x18\x02 \x01(\tR\x06prefix\"c\n" +
	"\x1eMUPDirectSegmentDiscoveryRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12\x18\n" +
	"\aaddress\x18\x02 \x01(\tR\aaddress\"\xef\x02\n" +
	"\x1fMUPType1SessionTransformedRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x12'\n" +
	"\rprefix_length\x18\x02 \x01(\rB\x02\x18\x01R\fprefixLength\x12\x16\n" +
	"\x06prefix\x18\x03 \x01(\tR\x06prefix\x12\x12\n" +
	"\x04teid\x18\x04 \x01(\rR\x04teid\x12\x10\n" +
	"\x03qfi\x18\x05 \x01(\rR\x03qfi\x126\n" +
	"\x17endpoint_address_length\x18\x06 \x01(\rR\x15endpointAddressLength\x12)\n" +
	"\x10endpoint_address\x18\a \x01(\tR\x0fendpointAddress\x122\n" +
	"\x15source_address_length\x18\b \x01(\rR\x13sourceAddressLength\x12%\n" +
	"\x0esource_address\x18\t \x01(\tR\rsourceAddress\"\xc1\x01\n" +
	"\x1fMUPType2SessionTransformedRoute\x12'\n" +
	"\x02rd\x18\x01 \x01(\v2\x17.api.RouteDistinguisherR\x02rd\x126\n" +
	"\x17endpoint_address_length\x18\x02 \x01(\rR\x15endpointAddressLength\x12)\n" +
	"\x10endpoint_address\x18\x03 \x01(\tR\x0fendpointAddress\x12\x12\n" +
	"\x04teid\x18\x04 \x01(\rR\x04teid*\xab\x01\n" +
	"\n" +
	"LsNLRIType\x12\x1c\n" +
	"\x18LS_NLRI_TYPE_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11LS_NLRI_TYPE_NODE\x10\x01\x12\x15\n" +
	"\x11LS_NLRI_TYPE_LINK\x10\x02\x12\x1a\n" +
	"\x16LS_NLRI_TYPE_PREFIX_V4\x10\x03\x12\x1a\n" +
	"\x16LS_NLRI_TYPE_PREFIX_V6\x10\x04\x12\x19\n" +
	"\x15LS_NLRI_TYPE_SRV6_SID\x10\x06*\xd4\x01\n" +
	"\fLsProtocolID\x12\x1e\n" +
	"\x1aLS_PROTOCOL_ID_UNSPECIFIED\x10\x00\x12\x1a\n" +
	"\x16LS_PROTOCOL_ID_ISIS_L1\x10\x01\x12\x1a\n" +
	"\x16LS_PROTOCOL_ID_ISIS_L2\x10\x02\x12\x1a\n" +
	"\x16LS_PROTOCOL_ID_OSPF_V2\x10\x03\x12\x19\n" +
	"\x15LS_PROTOCOL_ID_DIRECT\x10\x04\x12\x19\n" +
	"\x15LS_PROTOCOL_ID_STATIC\x10\x05\x12\x1a\n" +
	"\x16LS_PROTOCOL_ID_OSPF_V3\x10\x06*\xfb\x01\n" +
	"\x0fLsOspfRouteType\x12\"\n" +
	"\x1eLS_OSPF_ROUTE_TYPE_UNSPECIFIED\x10\x00\x12!\n" +
	"\x1dLS_OSPF_ROUTE_TYPE_INTRA_AREA\x10\x01\x12!\n" +
	"\x1dLS_OSPF_ROUTE_TYPE_INTER_AREA\x10\x02\x12 \n" +
	"\x1cLS_OSPF_ROUTE_TYPE_EXTERNAL1\x10\x03\x12 \n" +
	"\x1cLS_OSPF_ROUTE_TYPE_EXTERNAL2\x10\x04\x12\x1c\n" +
	"\x18LS_OSPF_ROUTE_TYPE_NSSA1\x10\x05\x12\x1c\n" +
	"\x18LS_OSPF_ROUTE_TYPE_NSSA2\x10\x06B\"Z github.com/osrg/gobgp/v4/api;apib\x06proto3"

var (
	file_api_nlri_proto_rawDescOnce sync.Once
	file_api_nlri_proto_rawDescData []byte
)

func file_api_nlri_proto_rawDescGZIP() []byte {
	file_api_nlri_proto_rawDescOnce.Do(func() {
		file_api_nlri_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_nlri_proto_rawDesc), len(file_api_nlri_proto_rawDesc)))
	})
	return file_api_nlri_proto_rawDescData
}

var file_api_nlri_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_api_nlri_proto_msgTypes = make([]protoimpl.MessageInfo, 39)
var file_api_nlri_proto_goTypes = []any{
	(LsNLRIType)(0),                                // 0: api.LsNLRIType
	(LsProtocolID)(0),                              // 1: api.LsProtocolID
	(LsOspfRouteType)(0),                           // 2: api.LsOspfRouteType
	(*NLRI)(nil),                                   // 3: api.NLRI
	(*IPAddressPrefix)(nil),                        // 4: api.IPAddressPrefix
	(*LabeledIPAddressPrefix)(nil),                 // 5: api.LabeledIPAddressPrefix
	(*EncapsulationNLRI)(nil),                      // 6: api.EncapsulationNLRI
	(*VPLSNLRI)(nil),                               // 7: api.VPLSNLRI
	(*EthernetSegmentIdentifier)(nil),              // 8: api.EthernetSegmentIdentifier
	(*EVPNEthernetAutoDiscoveryRoute)(nil),         // 9: api.EVPNEthernetAutoDiscoveryRoute
	(*EVPNMACIPAdvertisementRoute)(nil),            // 10: api.EVPNMACIPAdvertisementRoute
	(*EVPNInclusiveMulticastEthernetTagRoute)(nil), // 11: api.EVPNInclusiveMulticastEthernetTagRoute
	(*EVPNEthernetSegmentRoute)(nil),               // 12: api.EVPNEthernetSegmentRoute
	(*EVPNIPPrefixRoute)(nil),                      // 13: api.EVPNIPPrefixRoute
	(*EVPNIPMSIRoute)(nil),                         // 14: api.EVPNIPMSIRoute
	(*SRPolicyNLRI)(nil),                           // 15: api.SRPolicyNLRI
	(*LabeledVPNIPAddressPrefix)(nil),              // 16: api.LabeledVPNIPAddressPrefix
	(*RouteTargetMembershipNLRI)(nil),              // 17: api.RouteTargetMembershipNLRI
	(*FlowSpecIPPrefix)(nil),                       // 18: api.FlowSpecIPPrefix
	(*FlowSpecMAC)(nil),                            // 19: api.FlowSpecMAC
	(*FlowSpecComponentItem)(nil),                  // 20: api.FlowSpecComponentItem
	(*FlowSpecComponent)(nil),                      // 21: api.FlowSpecComponent
	(*FlowSpecRule)(nil),                           // 22: api.FlowSpecRule
	(*FlowSpecNLRI)(nil),                           // 23: api.FlowSpecNLRI
	(*VPNFlowSpecNLRI)(nil),                        // 24: api.VPNFlowSpecNLRI
	(*OpaqueNLRI)(nil),                             // 25: api.OpaqueNLRI
	(*LsNodeDescriptor)(nil),                       // 26: api.LsNodeDescriptor
	(*LsLinkDescriptor)(nil),                       // 27: api.LsLinkDescriptor
	(*LsPrefixDescriptor)(nil),                     // 28: api.LsPrefixDescriptor
	(*LsNodeNLRI)(nil),                             // 29: api.LsNodeNLRI
	(*LsLinkNLRI)(nil),                             // 30: api.LsLinkNLRI
	(*LsPrefixV4NLRI)(nil),                         // 31: api.LsPrefixV4NLRI
	(*LsPrefixV6NLRI)(nil),                         // 32: api.LsPrefixV6NLRI
	(*LsSrv6SIDInformation)(nil),                   // 33: api.LsSrv6SIDInformation
	(*LsMultiTopologyIdentifier)(nil),              // 34: api.LsMultiTopologyIdentifier
	(*LsSrv6SIDNLRI)(nil),                          // 35: api.LsSrv6SIDNLRI
	(*LsAddrPrefix)(nil),                           // 36: api.LsAddrPrefix
	(*MUPInterworkSegmentDiscoveryRoute)(nil),      // 37: api.MUPInterworkSegmentDiscoveryRoute
	(*MUPDirectSegmentDiscoveryRoute)(nil),         // 38: api.MUPDirectSegmentDiscoveryRoute
	(*MUPType1SessionTransformedRoute)(nil),        // 39: api.MUPType1SessionTransformedRoute
	(*MUPType2SessionTransformedRoute)(nil),        // 40: api.MUPType2SessionTransformedRoute
	(*LsAddrPrefix_LsNLRI)(nil),                    // 41: api.LsAddrPrefix.LsNLRI
	(*RouteDistinguisher)(nil),                     // 42: api.RouteDistinguisher
	(*RouteTarget)(nil),                            // 43: api.RouteTarget
}
var file_api_nlri_proto_depIdxs = []int32{
	4,  // 0: api.NLRI.prefix:type_name -> api.IPAddressPrefix
	5,  // 1: api.NLRI.labeled_prefix:type_name -> api.LabeledIPAddressPrefix
	6,  // 2: api.NLRI.encapsulation:type_name -> api.EncapsulationNLRI
	7,  // 3: api.NLRI.vpls:type_name -> api.VPLSNLRI
	9,  // 4: api.NLRI.evpn_ethernet_ad:type_name -> api.EVPNEthernetAutoDiscoveryRoute
	10, // 5: api.NLRI.evpn_macadv:type_name -> api.EVPNMACIPAdvertisementRoute
	11, // 6: api.NLRI.evpn_multicast:type_name -> api.EVPNInclusiveMulticastEthernetTagRoute
	12, // 7: api.NLRI.evpn_ethernet_segment:type_name -> api.EVPNEthernetSegmentRoute
	13, // 8: api.NLRI.evpn_ip_prefix:type_name -> api.EVPNIPPrefixRoute
	14, // 9: api.NLRI.evpn_i_pmsi:type_name -> api.EVPNIPMSIRoute
	16, // 10: api.NLRI.labeled_vpn_ip_prefix:type_name -> api.LabeledVPNIPAddressPrefix
	17, // 11: api.NLRI.route_target_membership:type_name -> api.RouteTargetMembershipNLRI
	23, // 12: api.NLRI.flow_spec:type_name -> api.FlowSpecNLRI
	24, // 13: api.NLRI.vpn_flow_spec:type_name -> api.VPNFlowSpecNLRI
	25, // 14: api.NLRI.opaque:type_name -> api.OpaqueNLRI
	36, // 15: api.NLRI.ls_addr_prefix:type_name -> api.LsAddrPrefix
	15, // 16: api.NLRI.sr_policy:type_name -> api.SRPolicyNLRI
	37, // 17: api.NLRI.mup_interwork_segment_discovery:type_name -> api.MUPInterworkSegmentDiscoveryRoute
	38, // 18: api.NLRI.mup_direct_segment_discovery:type_name -> api.MUPDirectSegmentDiscoveryRoute
	39, // 19: api.NLRI.mup_type_1_session_transformed:type_name -> api.MUPType1SessionTransformedRoute
	40, // 20: api.NLRI.mup_type_2_session_transformed:type_name -> api.MUPType2SessionTransformedRoute
	42, // 21: api.VPLSNLRI.rd:type_name -> api.RouteDistinguisher
	42, // 22: api.EVPNEthernetAutoDiscoveryRoute.rd:type_name -> api.RouteDistinguisher
	8,  // 23: api.EVPNEthernetAutoDiscoveryRoute.esi:type_name -> api.EthernetSegmentIdentifier
	42, // 24: api.EVPNMACIPAdvertisementRoute.rd:type_name -> api.RouteDistinguisher
	8,  // 25: api.EVPNMACIPAdvertisementRoute.esi:type_name -> api.EthernetSegmentIdentifier
	42, // 26: api.EVPNInclusiveMulticastEthernetTagRoute.rd:type_name -> api.RouteDistinguisher
	42, // 27: api.EVPNEthernetSegmentRoute.rd:type_name -> api.RouteDistinguisher
	8,  // 28: api.EVPNEthernetSegmentRoute.esi:type_name -> api.EthernetSegmentIdentifier
	42, // 29: api.EVPNIPPrefixRoute.rd:type_name -> api.RouteDistinguisher
	8,  // 30: api.EVPNIPPrefixRoute.esi:type_name -> api.EthernetSegmentIdentifier
	42, // 31: api.EVPNIPMSIRoute.rd:type_name -> api.RouteDistinguisher
	43, // 32: api.EVPNIPMSIRoute.rt:type_name -> api.RouteTarget
	42, // 33: api.LabeledVPNIPAddressPrefix.rd:type_name -> api.RouteDistinguisher
	43, // 34: api.RouteTargetMembershipNLRI.rt:type_name -> api.RouteTarget
	20, // 35: api.FlowSpecComponent.items:type_name -> api.FlowSpecComponentItem
	18, // 36: api.FlowSpecRule.ip_prefix:type_name -> api.FlowSpecIPPrefix
	19, // 37: api.FlowSpecRule.mac:type_name -> api.FlowSpecMAC
	21, // 38: api.FlowSpecRule.component:type_name -> api.FlowSpecComponent
	22, // 39: api.FlowSpecNLRI.rules:type_name -> api.FlowSpecRule
	42, // 40: api.VPNFlowSpecNLRI.rd:type_name -> api.RouteDistinguisher
	22, // 41: api.VPNFlowSpecNLRI.rules:type_name -> api.FlowSpecRule
	2,  // 42: api.LsPrefixDescriptor.ospf_route_type:type_name -> api.LsOspfRouteType
	26, // 43: api.LsNodeNLRI.local_node:type_name -> api.LsNodeDescriptor
	26, // 44: api.LsLinkNLRI.local_node:type_name -> api.LsNodeDescriptor
	26, // 45: api.LsLinkNLRI.remote_node:type_name -> api.LsNodeDescriptor
	27, // 46: api.LsLinkNLRI.link_descriptor:type_name -> api.LsLinkDescriptor
	26, // 47: api.LsPrefixV4NLRI.local_node:type_name -> api.LsNodeDescriptor
	28, // 48: api.LsPrefixV4NLRI.prefix_descriptor:type_name -> api.LsPrefixDescriptor
	26, // 49: api.LsPrefixV6NLRI.local_node:type_name -> api.LsNodeDescriptor
	28, // 50: api.LsPrefixV6NLRI.prefix_descriptor:type_name -> api.LsPrefixDescriptor
	26, // 51: api.LsSrv6SIDNLRI.local_node:type_name -> api.LsNodeDescriptor
	33, // 52: api.LsSrv6SIDNLRI.srv6_sid_information:type_name -> api.LsSrv6SIDInformation
	34, // 53: api.LsSrv6SIDNLRI.multi_topo_id:type_name -> api.LsMultiTopologyIdentifier
	0,  // 54: api.LsAddrPrefix.type:type_name -> api.LsNLRIType
	41, // 55: api.LsAddrPrefix.nlri:type_name -> api.LsAddrPrefix.LsNLRI
	1,  // 56: api.LsAddrPrefix.protocol_id:type_name -> api.LsProtocolID
	42, // 57: api.MUPInterworkSegmentDiscoveryRoute.rd:type_name -> api.RouteDistinguisher
	42, // 58: api.MUPDirectSegmentDiscoveryRoute.rd:type_name -> api.RouteDistinguisher
	42, // 59: api.MUPType1SessionTransformedRoute.rd:type_name -> api.RouteDistinguisher
	42, // 60: api.MUPType2SessionTransformedRoute.rd:type_name -> api.RouteDistinguisher
	29, // 61: api.LsAddrPrefix.LsNLRI.node:type_name -> api.LsNodeNLRI
	30, // 62: api.LsAddrPrefix.LsNLRI.link:type_name -> api.LsLinkNLRI
	31, // 63: api.LsAddrPrefix.LsNLRI.prefix_v4:type_name -> api.LsPrefixV4NLRI
	32, // 64: api.LsAddrPrefix.LsNLRI.prefix_v6:type_name -> api.LsPrefixV6NLRI
	35, // 65: api.LsAddrPrefix.LsNLRI.srv6_sid:type_name -> api.LsSrv6SIDNLRI
	66, // [66:66] is the sub-list for method output_type
	66, // [66:66] is the sub-list for method input_type
	66, // [66:66] is the sub-list for extension type_name
	66, // [66:66] is the sub-list for extension extendee
	0,  // [0:66] is the sub-list for field type_name
}

func init() { file_api_nlri_proto_init() }
func file_api_nlri_proto_init() {
	if File_api_nlri_proto != nil {
		return
	}
	file_api_common_proto_init()
	file_api_extcom_proto_init()
	file_api_nlri_proto_msgTypes[0].OneofWrappers = []any{
		(*NLRI_Prefix)(nil),
		(*NLRI_LabeledPrefix)(nil),
		(*NLRI_Encapsulation)(nil),
		(*NLRI_Vpls)(nil),
		(*NLRI_EvpnEthernetAd)(nil),
		(*NLRI_EvpnMacadv)(nil),
		(*NLRI_EvpnMulticast)(nil),
		(*NLRI_EvpnEthernetSegment)(nil),
		(*NLRI_EvpnIpPrefix)(nil),
		(*NLRI_EvpnIPmsi)(nil),
		(*NLRI_LabeledVpnIpPrefix)(nil),
		(*NLRI_RouteTargetMembership)(nil),
		(*NLRI_FlowSpec)(nil),
		(*NLRI_VpnFlowSpec)(nil),
		(*NLRI_Opaque)(nil),
		(*NLRI_LsAddrPrefix)(nil),
		(*NLRI_SrPolicy)(nil),
		(*NLRI_MupInterworkSegmentDiscovery)(nil),
		(*NLRI_MupDirectSegmentDiscovery)(nil),
		(*NLRI_MupType_1SessionTransformed)(nil),
		(*NLRI_MupType_2SessionTransformed)(nil),
	}
	file_api_nlri_proto_msgTypes[19].OneofWrappers = []any{
		(*FlowSpecRule_IpPrefix)(nil),
		(*FlowSpecRule_Mac)(nil),
		(*FlowSpecRule_Component)(nil),
	}
	file_api_nlri_proto_msgTypes[38].OneofWrappers = []any{
		(*LsAddrPrefix_LsNLRI_Node)(nil),
		(*LsAddrPrefix_LsNLRI_Link)(nil),
		(*LsAddrPrefix_LsNLRI_PrefixV4)(nil),
		(*LsAddrPrefix_LsNLRI_PrefixV6)(nil),
		(*LsAddrPrefix_LsNLRI_Srv6Sid)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_nlri_proto_rawDesc), len(file_api_nlri_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   39,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_api_nlri_proto_goTypes,
		DependencyIndexes: file_api_nlri_proto_depIdxs,
		EnumInfos:         file_api_nlri_proto_enumTypes,
		MessageInfos:      file_api_nlri_proto_msgTypes,
	}.Build()
	File_api_nlri_proto = out.File
	file_api_nlri_proto_goTypes = nil
	file_api_nlri_proto_depIdxs = nil
}
