// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v3.21.12
// source: cmd/enricher/pb/flowext.proto

package flowpb

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

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

type FlowMessageExt_FlowType int32

const (
	FlowMessageExt_FLOWUNKNOWN FlowMessageExt_FlowType = 0
	FlowMessageExt_SFLOW_5     FlowMessageExt_FlowType = 1
	FlowMessageExt_NETFLOW_V5  FlowMessageExt_FlowType = 2
	FlowMessageExt_NETFLOW_V9  FlowMessageExt_FlowType = 3
	FlowMessageExt_IPFIX       FlowMessageExt_FlowType = 4
)

// Enum value maps for FlowMessageExt_FlowType.
var (
	FlowMessageExt_FlowType_name = map[int32]string{
		0: "FLOWUNKNOWN",
		1: "SFLOW_5",
		2: "NETFLOW_V5",
		3: "NETFLOW_V9",
		4: "IPFIX",
	}
	FlowMessageExt_FlowType_value = map[string]int32{
		"FLOWUNKNOWN": 0,
		"SFLOW_5":     1,
		"NETFLOW_V5":  2,
		"NETFLOW_V9":  3,
		"IPFIX":       4,
	}
)

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

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

func (FlowMessageExt_FlowType) Descriptor() protoreflect.EnumDescriptor {
	return file_cmd_enricher_pb_flowext_proto_enumTypes[0].Descriptor()
}

func (FlowMessageExt_FlowType) Type() protoreflect.EnumType {
	return &file_cmd_enricher_pb_flowext_proto_enumTypes[0]
}

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

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

type FlowMessageExt struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Type          FlowMessageExt_FlowType `protobuf:"varint,1,opt,name=type,proto3,enum=flowpb.FlowMessageExt_FlowType" json:"type,omitempty"`
	TimeReceived  uint64                  `protobuf:"varint,2,opt,name=time_received,json=timeReceived,proto3" json:"time_received,omitempty"`
	SequenceNum   uint32                  `protobuf:"varint,4,opt,name=sequence_num,json=sequenceNum,proto3" json:"sequence_num,omitempty"`
	SamplingRate  uint64                  `protobuf:"varint,3,opt,name=sampling_rate,json=samplingRate,proto3" json:"sampling_rate,omitempty"`
	FlowDirection uint32                  `protobuf:"varint,42,opt,name=flow_direction,json=flowDirection,proto3" json:"flow_direction,omitempty"`
	// Sampler information
	SamplerAddress []byte `protobuf:"bytes,11,opt,name=sampler_address,json=samplerAddress,proto3" json:"sampler_address,omitempty"`
	// Found inside packet
	TimeFlowStart   uint64 `protobuf:"varint,38,opt,name=time_flow_start,json=timeFlowStart,proto3" json:"time_flow_start,omitempty"`
	TimeFlowEnd     uint64 `protobuf:"varint,5,opt,name=time_flow_end,json=timeFlowEnd,proto3" json:"time_flow_end,omitempty"`
	TimeFlowStartMs uint64 `protobuf:"varint,63,opt,name=time_flow_start_ms,json=timeFlowStartMs,proto3" json:"time_flow_start_ms,omitempty"`
	TimeFlowEndMs   uint64 `protobuf:"varint,64,opt,name=time_flow_end_ms,json=timeFlowEndMs,proto3" json:"time_flow_end_ms,omitempty"`
	// Size of the sampled packet
	Bytes   uint64 `protobuf:"varint,9,opt,name=bytes,proto3" json:"bytes,omitempty"`
	Packets uint64 `protobuf:"varint,10,opt,name=packets,proto3" json:"packets,omitempty"`
	// Source/destination addresses
	SrcAddr []byte `protobuf:"bytes,6,opt,name=src_addr,json=srcAddr,proto3" json:"src_addr,omitempty"`
	DstAddr []byte `protobuf:"bytes,7,opt,name=dst_addr,json=dstAddr,proto3" json:"dst_addr,omitempty"`
	// Layer 3 protocol (IPv4/IPv6/ARP/MPLS...)
	Etype uint32 `protobuf:"varint,30,opt,name=etype,proto3" json:"etype,omitempty"`
	// Layer 4 protocol
	Proto uint32 `protobuf:"varint,20,opt,name=proto,proto3" json:"proto,omitempty"`
	// Ports for UDP and TCP
	SrcPort uint32 `protobuf:"varint,21,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"`
	DstPort uint32 `protobuf:"varint,22,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"`
	// Interfaces
	InIf  uint32 `protobuf:"varint,18,opt,name=in_if,json=inIf,proto3" json:"in_if,omitempty"`
	OutIf uint32 `protobuf:"varint,19,opt,name=out_if,json=outIf,proto3" json:"out_if,omitempty"`
	// Ethernet information
	SrcMac uint64 `protobuf:"varint,27,opt,name=src_mac,json=srcMac,proto3" json:"src_mac,omitempty"`
	DstMac uint64 `protobuf:"varint,28,opt,name=dst_mac,json=dstMac,proto3" json:"dst_mac,omitempty"`
	// Vlan
	SrcVlan uint32 `protobuf:"varint,33,opt,name=src_vlan,json=srcVlan,proto3" json:"src_vlan,omitempty"`
	DstVlan uint32 `protobuf:"varint,34,opt,name=dst_vlan,json=dstVlan,proto3" json:"dst_vlan,omitempty"`
	// 802.1q VLAN in sampled packet
	VlanId uint32 `protobuf:"varint,29,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"`
	// VRF
	IngressVrfId uint32 `protobuf:"varint,39,opt,name=ingress_vrf_id,json=ingressVrfId,proto3" json:"ingress_vrf_id,omitempty"`
	EgressVrfId  uint32 `protobuf:"varint,40,opt,name=egress_vrf_id,json=egressVrfId,proto3" json:"egress_vrf_id,omitempty"`
	// IP and TCP special flags
	IpTos            uint32 `protobuf:"varint,23,opt,name=ip_tos,json=ipTos,proto3" json:"ip_tos,omitempty"`
	ForwardingStatus uint32 `protobuf:"varint,24,opt,name=forwarding_status,json=forwardingStatus,proto3" json:"forwarding_status,omitempty"`
	IpTtl            uint32 `protobuf:"varint,25,opt,name=ip_ttl,json=ipTtl,proto3" json:"ip_ttl,omitempty"`
	TcpFlags         uint32 `protobuf:"varint,26,opt,name=tcp_flags,json=tcpFlags,proto3" json:"tcp_flags,omitempty"`
	IcmpType         uint32 `protobuf:"varint,31,opt,name=icmp_type,json=icmpType,proto3" json:"icmp_type,omitempty"`
	IcmpCode         uint32 `protobuf:"varint,32,opt,name=icmp_code,json=icmpCode,proto3" json:"icmp_code,omitempty"`
	Ipv6FlowLabel    uint32 `protobuf:"varint,37,opt,name=ipv6_flow_label,json=ipv6FlowLabel,proto3" json:"ipv6_flow_label,omitempty"`
	// Fragments (IPv4/IPv6)
	FragmentId      uint32 `protobuf:"varint,35,opt,name=fragment_id,json=fragmentId,proto3" json:"fragment_id,omitempty"`
	FragmentOffset  uint32 `protobuf:"varint,36,opt,name=fragment_offset,json=fragmentOffset,proto3" json:"fragment_offset,omitempty"`
	BiFlowDirection uint32 `protobuf:"varint,41,opt,name=bi_flow_direction,json=biFlowDirection,proto3" json:"bi_flow_direction,omitempty"`
	// Autonomous system information
	SrcAs     uint32 `protobuf:"varint,14,opt,name=src_as,json=srcAs,proto3" json:"src_as,omitempty"`
	DstAs     uint32 `protobuf:"varint,15,opt,name=dst_as,json=dstAs,proto3" json:"dst_as,omitempty"`
	NextHop   []byte `protobuf:"bytes,12,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"`
	NextHopAs uint32 `protobuf:"varint,13,opt,name=next_hop_as,json=nextHopAs,proto3" json:"next_hop_as,omitempty"`
	// Prefix size
	SrcNet uint32 `protobuf:"varint,16,opt,name=src_net,json=srcNet,proto3" json:"src_net,omitempty"`
	DstNet uint32 `protobuf:"varint,17,opt,name=dst_net,json=dstNet,proto3" json:"dst_net,omitempty"`
	// BGP information
	BgpNextHop     []byte   `protobuf:"bytes,100,opt,name=bgp_next_hop,json=bgpNextHop,proto3" json:"bgp_next_hop,omitempty"`
	BgpCommunities []uint32 `protobuf:"varint,101,rep,packed,name=bgp_communities,json=bgpCommunities,proto3" json:"bgp_communities,omitempty"`
	AsPath         []uint32 `protobuf:"varint,102,rep,packed,name=as_path,json=asPath,proto3" json:"as_path,omitempty"`
	// MPLS information
	HasMpls             bool   `protobuf:"varint,53,opt,name=has_mpls,json=hasMpls,proto3" json:"has_mpls,omitempty"`
	MplsCount           uint32 `protobuf:"varint,54,opt,name=mpls_count,json=mplsCount,proto3" json:"mpls_count,omitempty"`
	Mpls_1Ttl           uint32 `protobuf:"varint,55,opt,name=mpls_1_ttl,json=mpls1Ttl,proto3" json:"mpls_1_ttl,omitempty"`                // First TTL
	Mpls_1Label         uint32 `protobuf:"varint,56,opt,name=mpls_1_label,json=mpls1Label,proto3" json:"mpls_1_label,omitempty"`          // First Label
	Mpls_2Ttl           uint32 `protobuf:"varint,57,opt,name=mpls_2_ttl,json=mpls2Ttl,proto3" json:"mpls_2_ttl,omitempty"`                // Second TTL
	Mpls_2Label         uint32 `protobuf:"varint,58,opt,name=mpls_2_label,json=mpls2Label,proto3" json:"mpls_2_label,omitempty"`          // Second Label
	Mpls_3Ttl           uint32 `protobuf:"varint,59,opt,name=mpls_3_ttl,json=mpls3Ttl,proto3" json:"mpls_3_ttl,omitempty"`                // Third TTL
	Mpls_3Label         uint32 `protobuf:"varint,60,opt,name=mpls_3_label,json=mpls3Label,proto3" json:"mpls_3_label,omitempty"`          // Third Label
	MplsLastTtl         uint32 `protobuf:"varint,61,opt,name=mpls_last_ttl,json=mplsLastTtl,proto3" json:"mpls_last_ttl,omitempty"`       // Last TTL
	MplsLastLabel       uint32 `protobuf:"varint,62,opt,name=mpls_last_label,json=mplsLastLabel,proto3" json:"mpls_last_label,omitempty"` // Last Label
	MplsLabelIp         []byte `protobuf:"bytes,65,opt,name=mpls_label_ip,json=mplsLabelIp,proto3" json:"mpls_label_ip,omitempty"`        // MPLS TOP Label IP
	ObservationDomainId uint32 `protobuf:"varint,70,opt,name=observation_domain_id,json=observationDomainId,proto3" json:"observation_domain_id,omitempty"`
	ObservationPointId  uint32 `protobuf:"varint,71,opt,name=observation_point_id,json=observationPointId,proto3" json:"observation_point_id,omitempty"`
	SrcCountry          string `protobuf:"bytes,1000,opt,name=src_country,json=srcCountry,proto3" json:"src_country,omitempty"`
	DstCountry          string `protobuf:"bytes,1001,opt,name=dst_country,json=dstCountry,proto3" json:"dst_country,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*FlowMessageExt) ProtoMessage() {}

func (x *FlowMessageExt) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_enricher_pb_flowext_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 FlowMessageExt.ProtoReflect.Descriptor instead.
func (*FlowMessageExt) Descriptor() ([]byte, []int) {
	return file_cmd_enricher_pb_flowext_proto_rawDescGZIP(), []int{0}
}

func (x *FlowMessageExt) GetType() FlowMessageExt_FlowType {
	if x != nil {
		return x.Type
	}
	return FlowMessageExt_FLOWUNKNOWN
}

func (x *FlowMessageExt) GetTimeReceived() uint64 {
	if x != nil {
		return x.TimeReceived
	}
	return 0
}

func (x *FlowMessageExt) GetSequenceNum() uint32 {
	if x != nil {
		return x.SequenceNum
	}
	return 0
}

func (x *FlowMessageExt) GetSamplingRate() uint64 {
	if x != nil {
		return x.SamplingRate
	}
	return 0
}

func (x *FlowMessageExt) GetFlowDirection() uint32 {
	if x != nil {
		return x.FlowDirection
	}
	return 0
}

func (x *FlowMessageExt) GetSamplerAddress() []byte {
	if x != nil {
		return x.SamplerAddress
	}
	return nil
}

func (x *FlowMessageExt) GetTimeFlowStart() uint64 {
	if x != nil {
		return x.TimeFlowStart
	}
	return 0
}

func (x *FlowMessageExt) GetTimeFlowEnd() uint64 {
	if x != nil {
		return x.TimeFlowEnd
	}
	return 0
}

func (x *FlowMessageExt) GetTimeFlowStartMs() uint64 {
	if x != nil {
		return x.TimeFlowStartMs
	}
	return 0
}

func (x *FlowMessageExt) GetTimeFlowEndMs() uint64 {
	if x != nil {
		return x.TimeFlowEndMs
	}
	return 0
}

func (x *FlowMessageExt) GetBytes() uint64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

func (x *FlowMessageExt) GetPackets() uint64 {
	if x != nil {
		return x.Packets
	}
	return 0
}

func (x *FlowMessageExt) GetSrcAddr() []byte {
	if x != nil {
		return x.SrcAddr
	}
	return nil
}

func (x *FlowMessageExt) GetDstAddr() []byte {
	if x != nil {
		return x.DstAddr
	}
	return nil
}

func (x *FlowMessageExt) GetEtype() uint32 {
	if x != nil {
		return x.Etype
	}
	return 0
}

func (x *FlowMessageExt) GetProto() uint32 {
	if x != nil {
		return x.Proto
	}
	return 0
}

func (x *FlowMessageExt) GetSrcPort() uint32 {
	if x != nil {
		return x.SrcPort
	}
	return 0
}

func (x *FlowMessageExt) GetDstPort() uint32 {
	if x != nil {
		return x.DstPort
	}
	return 0
}

func (x *FlowMessageExt) GetInIf() uint32 {
	if x != nil {
		return x.InIf
	}
	return 0
}

func (x *FlowMessageExt) GetOutIf() uint32 {
	if x != nil {
		return x.OutIf
	}
	return 0
}

func (x *FlowMessageExt) GetSrcMac() uint64 {
	if x != nil {
		return x.SrcMac
	}
	return 0
}

func (x *FlowMessageExt) GetDstMac() uint64 {
	if x != nil {
		return x.DstMac
	}
	return 0
}

func (x *FlowMessageExt) GetSrcVlan() uint32 {
	if x != nil {
		return x.SrcVlan
	}
	return 0
}

func (x *FlowMessageExt) GetDstVlan() uint32 {
	if x != nil {
		return x.DstVlan
	}
	return 0
}

func (x *FlowMessageExt) GetVlanId() uint32 {
	if x != nil {
		return x.VlanId
	}
	return 0
}

func (x *FlowMessageExt) GetIngressVrfId() uint32 {
	if x != nil {
		return x.IngressVrfId
	}
	return 0
}

func (x *FlowMessageExt) GetEgressVrfId() uint32 {
	if x != nil {
		return x.EgressVrfId
	}
	return 0
}

func (x *FlowMessageExt) GetIpTos() uint32 {
	if x != nil {
		return x.IpTos
	}
	return 0
}

func (x *FlowMessageExt) GetForwardingStatus() uint32 {
	if x != nil {
		return x.ForwardingStatus
	}
	return 0
}

func (x *FlowMessageExt) GetIpTtl() uint32 {
	if x != nil {
		return x.IpTtl
	}
	return 0
}

func (x *FlowMessageExt) GetTcpFlags() uint32 {
	if x != nil {
		return x.TcpFlags
	}
	return 0
}

func (x *FlowMessageExt) GetIcmpType() uint32 {
	if x != nil {
		return x.IcmpType
	}
	return 0
}

func (x *FlowMessageExt) GetIcmpCode() uint32 {
	if x != nil {
		return x.IcmpCode
	}
	return 0
}

func (x *FlowMessageExt) GetIpv6FlowLabel() uint32 {
	if x != nil {
		return x.Ipv6FlowLabel
	}
	return 0
}

func (x *FlowMessageExt) GetFragmentId() uint32 {
	if x != nil {
		return x.FragmentId
	}
	return 0
}

func (x *FlowMessageExt) GetFragmentOffset() uint32 {
	if x != nil {
		return x.FragmentOffset
	}
	return 0
}

func (x *FlowMessageExt) GetBiFlowDirection() uint32 {
	if x != nil {
		return x.BiFlowDirection
	}
	return 0
}

func (x *FlowMessageExt) GetSrcAs() uint32 {
	if x != nil {
		return x.SrcAs
	}
	return 0
}

func (x *FlowMessageExt) GetDstAs() uint32 {
	if x != nil {
		return x.DstAs
	}
	return 0
}

func (x *FlowMessageExt) GetNextHop() []byte {
	if x != nil {
		return x.NextHop
	}
	return nil
}

func (x *FlowMessageExt) GetNextHopAs() uint32 {
	if x != nil {
		return x.NextHopAs
	}
	return 0
}

func (x *FlowMessageExt) GetSrcNet() uint32 {
	if x != nil {
		return x.SrcNet
	}
	return 0
}

func (x *FlowMessageExt) GetDstNet() uint32 {
	if x != nil {
		return x.DstNet
	}
	return 0
}

func (x *FlowMessageExt) GetBgpNextHop() []byte {
	if x != nil {
		return x.BgpNextHop
	}
	return nil
}

func (x *FlowMessageExt) GetBgpCommunities() []uint32 {
	if x != nil {
		return x.BgpCommunities
	}
	return nil
}

func (x *FlowMessageExt) GetAsPath() []uint32 {
	if x != nil {
		return x.AsPath
	}
	return nil
}

func (x *FlowMessageExt) GetHasMpls() bool {
	if x != nil {
		return x.HasMpls
	}
	return false
}

func (x *FlowMessageExt) GetMplsCount() uint32 {
	if x != nil {
		return x.MplsCount
	}
	return 0
}

func (x *FlowMessageExt) GetMpls_1Ttl() uint32 {
	if x != nil {
		return x.Mpls_1Ttl
	}
	return 0
}

func (x *FlowMessageExt) GetMpls_1Label() uint32 {
	if x != nil {
		return x.Mpls_1Label
	}
	return 0
}

func (x *FlowMessageExt) GetMpls_2Ttl() uint32 {
	if x != nil {
		return x.Mpls_2Ttl
	}
	return 0
}

func (x *FlowMessageExt) GetMpls_2Label() uint32 {
	if x != nil {
		return x.Mpls_2Label
	}
	return 0
}

func (x *FlowMessageExt) GetMpls_3Ttl() uint32 {
	if x != nil {
		return x.Mpls_3Ttl
	}
	return 0
}

func (x *FlowMessageExt) GetMpls_3Label() uint32 {
	if x != nil {
		return x.Mpls_3Label
	}
	return 0
}

func (x *FlowMessageExt) GetMplsLastTtl() uint32 {
	if x != nil {
		return x.MplsLastTtl
	}
	return 0
}

func (x *FlowMessageExt) GetMplsLastLabel() uint32 {
	if x != nil {
		return x.MplsLastLabel
	}
	return 0
}

func (x *FlowMessageExt) GetMplsLabelIp() []byte {
	if x != nil {
		return x.MplsLabelIp
	}
	return nil
}

func (x *FlowMessageExt) GetObservationDomainId() uint32 {
	if x != nil {
		return x.ObservationDomainId
	}
	return 0
}

func (x *FlowMessageExt) GetObservationPointId() uint32 {
	if x != nil {
		return x.ObservationPointId
	}
	return 0
}

func (x *FlowMessageExt) GetSrcCountry() string {
	if x != nil {
		return x.SrcCountry
	}
	return ""
}

func (x *FlowMessageExt) GetDstCountry() string {
	if x != nil {
		return x.DstCountry
	}
	return ""
}

var File_cmd_enricher_pb_flowext_proto protoreflect.FileDescriptor

const file_cmd_enricher_pb_flowext_proto_rawDesc = "" +
	"\n" +
	"\x1dcmd/enricher/pb/flowext.proto\x12\x06flowpb\"\x9b\x10\n" +
	"\x0eFlowMessageExt\x123\n" +
	"\x04type\x18\x01 \x01(\x0e2\x1f.flowpb.FlowMessageExt.FlowTypeR\x04type\x12#\n" +
	"\rtime_received\x18\x02 \x01(\x04R\ftimeReceived\x12!\n" +
	"\fsequence_num\x18\x04 \x01(\rR\vsequenceNum\x12#\n" +
	"\rsampling_rate\x18\x03 \x01(\x04R\fsamplingRate\x12%\n" +
	"\x0eflow_direction\x18* \x01(\rR\rflowDirection\x12'\n" +
	"\x0fsampler_address\x18\v \x01(\fR\x0esamplerAddress\x12&\n" +
	"\x0ftime_flow_start\x18& \x01(\x04R\rtimeFlowStart\x12\"\n" +
	"\rtime_flow_end\x18\x05 \x01(\x04R\vtimeFlowEnd\x12+\n" +
	"\x12time_flow_start_ms\x18? \x01(\x04R\x0ftimeFlowStartMs\x12'\n" +
	"\x10time_flow_end_ms\x18@ \x01(\x04R\rtimeFlowEndMs\x12\x14\n" +
	"\x05bytes\x18\t \x01(\x04R\x05bytes\x12\x18\n" +
	"\apackets\x18\n" +
	" \x01(\x04R\apackets\x12\x19\n" +
	"\bsrc_addr\x18\x06 \x01(\fR\asrcAddr\x12\x19\n" +
	"\bdst_addr\x18\a \x01(\fR\adstAddr\x12\x14\n" +
	"\x05etype\x18\x1e \x01(\rR\x05etype\x12\x14\n" +
	"\x05proto\x18\x14 \x01(\rR\x05proto\x12\x19\n" +
	"\bsrc_port\x18\x15 \x01(\rR\asrcPort\x12\x19\n" +
	"\bdst_port\x18\x16 \x01(\rR\adstPort\x12\x13\n" +
	"\x05in_if\x18\x12 \x01(\rR\x04inIf\x12\x15\n" +
	"\x06out_if\x18\x13 \x01(\rR\x05outIf\x12\x17\n" +
	"\asrc_mac\x18\x1b \x01(\x04R\x06srcMac\x12\x17\n" +
	"\adst_mac\x18\x1c \x01(\x04R\x06dstMac\x12\x19\n" +
	"\bsrc_vlan\x18! \x01(\rR\asrcVlan\x12\x19\n" +
	"\bdst_vlan\x18\" \x01(\rR\adstVlan\x12\x17\n" +
	"\avlan_id\x18\x1d \x01(\rR\x06vlanId\x12$\n" +
	"\x0eingress_vrf_id\x18' \x01(\rR\fingressVrfId\x12\"\n" +
	"\regress_vrf_id\x18( \x01(\rR\vegressVrfId\x12\x15\n" +
	"\x06ip_tos\x18\x17 \x01(\rR\x05ipTos\x12+\n" +
	"\x11forwarding_status\x18\x18 \x01(\rR\x10forwardingStatus\x12\x15\n" +
	"\x06ip_ttl\x18\x19 \x01(\rR\x05ipTtl\x12\x1b\n" +
	"\ttcp_flags\x18\x1a \x01(\rR\btcpFlags\x12\x1b\n" +
	"\ticmp_type\x18\x1f \x01(\rR\bicmpType\x12\x1b\n" +
	"\ticmp_code\x18  \x01(\rR\bicmpCode\x12&\n" +
	"\x0fipv6_flow_label\x18% \x01(\rR\ripv6FlowLabel\x12\x1f\n" +
	"\vfragment_id\x18# \x01(\rR\n" +
	"fragmentId\x12'\n" +
	"\x0ffragment_offset\x18$ \x01(\rR\x0efragmentOffset\x12*\n" +
	"\x11bi_flow_direction\x18) \x01(\rR\x0fbiFlowDirection\x12\x15\n" +
	"\x06src_as\x18\x0e \x01(\rR\x05srcAs\x12\x15\n" +
	"\x06dst_as\x18\x0f \x01(\rR\x05dstAs\x12\x19\n" +
	"\bnext_hop\x18\f \x01(\fR\anextHop\x12\x1e\n" +
	"\vnext_hop_as\x18\r \x01(\rR\tnextHopAs\x12\x17\n" +
	"\asrc_net\x18\x10 \x01(\rR\x06srcNet\x12\x17\n" +
	"\adst_net\x18\x11 \x01(\rR\x06dstNet\x12 \n" +
	"\fbgp_next_hop\x18d \x01(\fR\n" +
	"bgpNextHop\x12'\n" +
	"\x0fbgp_communities\x18e \x03(\rR\x0ebgpCommunities\x12\x17\n" +
	"\aas_path\x18f \x03(\rR\x06asPath\x12\x19\n" +
	"\bhas_mpls\x185 \x01(\bR\ahasMpls\x12\x1d\n" +
	"\n" +
	"mpls_count\x186 \x01(\rR\tmplsCount\x12\x1c\n" +
	"\n" +
	"mpls_1_ttl\x187 \x01(\rR\bmpls1Ttl\x12 \n" +
	"\fmpls_1_label\x188 \x01(\rR\n" +
	"mpls1Label\x12\x1c\n" +
	"\n" +
	"mpls_2_ttl\x189 \x01(\rR\bmpls2Ttl\x12 \n" +
	"\fmpls_2_label\x18: \x01(\rR\n" +
	"mpls2Label\x12\x1c\n" +
	"\n" +
	"mpls_3_ttl\x18; \x01(\rR\bmpls3Ttl\x12 \n" +
	"\fmpls_3_label\x18< \x01(\rR\n" +
	"mpls3Label\x12\"\n" +
	"\rmpls_last_ttl\x18= \x01(\rR\vmplsLastTtl\x12&\n" +
	"\x0fmpls_last_label\x18> \x01(\rR\rmplsLastLabel\x12\"\n" +
	"\rmpls_label_ip\x18A \x01(\fR\vmplsLabelIp\x122\n" +
	"\x15observation_domain_id\x18F \x01(\rR\x13observationDomainId\x120\n" +
	"\x14observation_point_id\x18G \x01(\rR\x12observationPointId\x12 \n" +
	"\vsrc_country\x18\xe8\a \x01(\tR\n" +
	"srcCountry\x12 \n" +
	"\vdst_country\x18\xe9\a \x01(\tR\n" +
	"dstCountry\"S\n" +
	"\bFlowType\x12\x0f\n" +
	"\vFLOWUNKNOWN\x10\x00\x12\v\n" +
	"\aSFLOW_5\x10\x01\x12\x0e\n" +
	"\n" +
	"NETFLOW_V5\x10\x02\x12\x0e\n" +
	"\n" +
	"NETFLOW_V9\x10\x03\x12\t\n" +
	"\x05IPFIX\x10\x04B6Z4github.com/netsampler/goflow2/cmd/enricher/pb;flowpbb\x06proto3"

var (
	file_cmd_enricher_pb_flowext_proto_rawDescOnce sync.Once
	file_cmd_enricher_pb_flowext_proto_rawDescData []byte
)

func file_cmd_enricher_pb_flowext_proto_rawDescGZIP() []byte {
	file_cmd_enricher_pb_flowext_proto_rawDescOnce.Do(func() {
		file_cmd_enricher_pb_flowext_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_cmd_enricher_pb_flowext_proto_rawDesc), len(file_cmd_enricher_pb_flowext_proto_rawDesc)))
	})
	return file_cmd_enricher_pb_flowext_proto_rawDescData
}

var file_cmd_enricher_pb_flowext_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_cmd_enricher_pb_flowext_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_cmd_enricher_pb_flowext_proto_goTypes = []any{
	(FlowMessageExt_FlowType)(0), // 0: flowpb.FlowMessageExt.FlowType
	(*FlowMessageExt)(nil),       // 1: flowpb.FlowMessageExt
}
var file_cmd_enricher_pb_flowext_proto_depIdxs = []int32{
	0, // 0: flowpb.FlowMessageExt.type:type_name -> flowpb.FlowMessageExt.FlowType
	1, // [1:1] is the sub-list for method output_type
	1, // [1:1] is the sub-list for method input_type
	1, // [1:1] is the sub-list for extension type_name
	1, // [1:1] is the sub-list for extension extendee
	0, // [0:1] is the sub-list for field type_name
}

func init() { file_cmd_enricher_pb_flowext_proto_init() }
func file_cmd_enricher_pb_flowext_proto_init() {
	if File_cmd_enricher_pb_flowext_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_cmd_enricher_pb_flowext_proto_rawDesc), len(file_cmd_enricher_pb_flowext_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_cmd_enricher_pb_flowext_proto_goTypes,
		DependencyIndexes: file_cmd_enricher_pb_flowext_proto_depIdxs,
		EnumInfos:         file_cmd_enricher_pb_flowext_proto_enumTypes,
		MessageInfos:      file_cmd_enricher_pb_flowext_proto_msgTypes,
	}.Build()
	File_cmd_enricher_pb_flowext_proto = out.File
	file_cmd_enricher_pb_flowext_proto_goTypes = nil
	file_cmd_enricher_pb_flowext_proto_depIdxs = nil
}
