// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v3.21.12
// source: pb/flow.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 FlowMessage_FlowType int32

const (
	FlowMessage_FLOWUNKNOWN FlowMessage_FlowType = 0
	FlowMessage_SFLOW_5     FlowMessage_FlowType = 1
	FlowMessage_NETFLOW_V5  FlowMessage_FlowType = 2
	FlowMessage_NETFLOW_V9  FlowMessage_FlowType = 3
	FlowMessage_IPFIX       FlowMessage_FlowType = 4
)

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

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

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

func (FlowMessage_FlowType) Descriptor() protoreflect.EnumDescriptor {
	return file_pb_flow_proto_enumTypes[0].Descriptor()
}

func (FlowMessage_FlowType) Type() protoreflect.EnumType {
	return &file_pb_flow_proto_enumTypes[0]
}

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

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

// Encapsulation
type FlowMessage_LayerStack int32

const (
	FlowMessage_Ethernet           FlowMessage_LayerStack = 0
	FlowMessage_IPv4               FlowMessage_LayerStack = 1
	FlowMessage_IPv6               FlowMessage_LayerStack = 2
	FlowMessage_TCP                FlowMessage_LayerStack = 3
	FlowMessage_UDP                FlowMessage_LayerStack = 4
	FlowMessage_MPLS               FlowMessage_LayerStack = 5
	FlowMessage_Dot1Q              FlowMessage_LayerStack = 6
	FlowMessage_ICMP               FlowMessage_LayerStack = 7
	FlowMessage_ICMPv6             FlowMessage_LayerStack = 8
	FlowMessage_GRE                FlowMessage_LayerStack = 9
	FlowMessage_IPv6HeaderRouting  FlowMessage_LayerStack = 10
	FlowMessage_IPv6HeaderFragment FlowMessage_LayerStack = 11
	FlowMessage_Geneve             FlowMessage_LayerStack = 12
	FlowMessage_Teredo             FlowMessage_LayerStack = 13
	FlowMessage_Custom             FlowMessage_LayerStack = 99 // todo: add nsh
)

// Enum value maps for FlowMessage_LayerStack.
var (
	FlowMessage_LayerStack_name = map[int32]string{
		0:  "Ethernet",
		1:  "IPv4",
		2:  "IPv6",
		3:  "TCP",
		4:  "UDP",
		5:  "MPLS",
		6:  "Dot1Q",
		7:  "ICMP",
		8:  "ICMPv6",
		9:  "GRE",
		10: "IPv6HeaderRouting",
		11: "IPv6HeaderFragment",
		12: "Geneve",
		13: "Teredo",
		99: "Custom",
	}
	FlowMessage_LayerStack_value = map[string]int32{
		"Ethernet":           0,
		"IPv4":               1,
		"IPv6":               2,
		"TCP":                3,
		"UDP":                4,
		"MPLS":               5,
		"Dot1Q":              6,
		"ICMP":               7,
		"ICMPv6":             8,
		"GRE":                9,
		"IPv6HeaderRouting":  10,
		"IPv6HeaderFragment": 11,
		"Geneve":             12,
		"Teredo":             13,
		"Custom":             99,
	}
)

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

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

func (FlowMessage_LayerStack) Descriptor() protoreflect.EnumDescriptor {
	return file_pb_flow_proto_enumTypes[1].Descriptor()
}

func (FlowMessage_LayerStack) Type() protoreflect.EnumType {
	return &file_pb_flow_proto_enumTypes[1]
}

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

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

type FlowMessage struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Type           FlowMessage_FlowType   `protobuf:"varint,1,opt,name=type,proto3,enum=flowpb.FlowMessage_FlowType" json:"type,omitempty"`
	TimeReceivedNs uint64                 `protobuf:"varint,110,opt,name=time_received_ns,json=timeReceivedNs,proto3" json:"time_received_ns,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"`
	// Sampler information
	SamplerAddress []byte `protobuf:"bytes,11,opt,name=sampler_address,json=samplerAddress,proto3" json:"sampler_address,omitempty"`
	// Found inside packet
	TimeFlowStartNs uint64 `protobuf:"varint,111,opt,name=time_flow_start_ns,json=timeFlowStartNs,proto3" json:"time_flow_start_ns,omitempty"`
	TimeFlowEndNs   uint64 `protobuf:"varint,112,opt,name=time_flow_end_ns,json=timeFlowEndNs,proto3" json:"time_flow_end_ns,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"`
	// 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"`
	IpFlags          uint32 `protobuf:"varint,38,opt,name=ip_flags,json=ipFlags,proto3" json:"ip_flags,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"`
	// 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
	MplsTtl                    []uint32                 `protobuf:"varint,80,rep,packed,name=mpls_ttl,json=mplsTtl,proto3" json:"mpls_ttl,omitempty"`
	MplsLabel                  []uint32                 `protobuf:"varint,81,rep,packed,name=mpls_label,json=mplsLabel,proto3" json:"mpls_label,omitempty"`
	MplsIp                     [][]byte                 `protobuf:"bytes,82,rep,name=mpls_ip,json=mplsIp,proto3" json:"mpls_ip,omitempty"`
	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"`
	LayerStack                 []FlowMessage_LayerStack `protobuf:"varint,103,rep,packed,name=layer_stack,json=layerStack,proto3,enum=flowpb.FlowMessage_LayerStack" json:"layer_stack,omitempty"`
	LayerSize                  []uint32                 `protobuf:"varint,104,rep,packed,name=layer_size,json=layerSize,proto3" json:"layer_size,omitempty"`
	Ipv6RoutingHeaderAddresses [][]byte                 `protobuf:"bytes,105,rep,name=ipv6_routing_header_addresses,json=ipv6RoutingHeaderAddresses,proto3" json:"ipv6_routing_header_addresses,omitempty"` // SRv6
	Ipv6RoutingHeaderSegLeft   uint32                   `protobuf:"varint,106,opt,name=ipv6_routing_header_seg_left,json=ipv6RoutingHeaderSegLeft,proto3" json:"ipv6_routing_header_seg_left,omitempty"`    // SRv6
	unknownFields              protoimpl.UnknownFields
	sizeCache                  protoimpl.SizeCache
}

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

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

func (*FlowMessage) ProtoMessage() {}

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

func (x *FlowMessage) GetType() FlowMessage_FlowType {
	if x != nil {
		return x.Type
	}
	return FlowMessage_FLOWUNKNOWN
}

func (x *FlowMessage) GetTimeReceivedNs() uint64 {
	if x != nil {
		return x.TimeReceivedNs
	}
	return 0
}

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

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

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

func (x *FlowMessage) GetTimeFlowStartNs() uint64 {
	if x != nil {
		return x.TimeFlowStartNs
	}
	return 0
}

func (x *FlowMessage) GetTimeFlowEndNs() uint64 {
	if x != nil {
		return x.TimeFlowEndNs
	}
	return 0
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

func (x *FlowMessage) GetIpFlags() uint32 {
	if x != nil {
		return x.IpFlags
	}
	return 0
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

func (x *FlowMessage) GetMplsTtl() []uint32 {
	if x != nil {
		return x.MplsTtl
	}
	return nil
}

func (x *FlowMessage) GetMplsLabel() []uint32 {
	if x != nil {
		return x.MplsLabel
	}
	return nil
}

func (x *FlowMessage) GetMplsIp() [][]byte {
	if x != nil {
		return x.MplsIp
	}
	return nil
}

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

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

func (x *FlowMessage) GetLayerStack() []FlowMessage_LayerStack {
	if x != nil {
		return x.LayerStack
	}
	return nil
}

func (x *FlowMessage) GetLayerSize() []uint32 {
	if x != nil {
		return x.LayerSize
	}
	return nil
}

func (x *FlowMessage) GetIpv6RoutingHeaderAddresses() [][]byte {
	if x != nil {
		return x.Ipv6RoutingHeaderAddresses
	}
	return nil
}

func (x *FlowMessage) GetIpv6RoutingHeaderSegLeft() uint32 {
	if x != nil {
		return x.Ipv6RoutingHeaderSegLeft
	}
	return 0
}

var File_pb_flow_proto protoreflect.FileDescriptor

const file_pb_flow_proto_rawDesc = "" +
	"\n" +
	"\rpb/flow.proto\x12\x06flowpb\"\x9e\x0f\n" +
	"\vFlowMessage\x120\n" +
	"\x04type\x18\x01 \x01(\x0e2\x1c.flowpb.FlowMessage.FlowTypeR\x04type\x12(\n" +
	"\x10time_received_ns\x18n \x01(\x04R\x0etimeReceivedNs\x12!\n" +
	"\fsequence_num\x18\x04 \x01(\rR\vsequenceNum\x12#\n" +
	"\rsampling_rate\x18\x03 \x01(\x04R\fsamplingRate\x12'\n" +
	"\x0fsampler_address\x18\v \x01(\fR\x0esamplerAddress\x12+\n" +
	"\x12time_flow_start_ns\x18o \x01(\x04R\x0ftimeFlowStartNs\x12'\n" +
	"\x10time_flow_end_ns\x18p \x01(\x04R\rtimeFlowEndNs\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\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\x19\n" +
	"\bip_flags\x18& \x01(\rR\aipFlags\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\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" +
	"\bmpls_ttl\x18P \x03(\rR\amplsTtl\x12\x1d\n" +
	"\n" +
	"mpls_label\x18Q \x03(\rR\tmplsLabel\x12\x17\n" +
	"\ampls_ip\x18R \x03(\fR\x06mplsIp\x122\n" +
	"\x15observation_domain_id\x18F \x01(\rR\x13observationDomainId\x120\n" +
	"\x14observation_point_id\x18G \x01(\rR\x12observationPointId\x12?\n" +
	"\vlayer_stack\x18g \x03(\x0e2\x1e.flowpb.FlowMessage.LayerStackR\n" +
	"layerStack\x12\x1d\n" +
	"\n" +
	"layer_size\x18h \x03(\rR\tlayerSize\x12A\n" +
	"\x1dipv6_routing_header_addresses\x18i \x03(\fR\x1aipv6RoutingHeaderAddresses\x12>\n" +
	"\x1cipv6_routing_header_seg_left\x18j \x01(\rR\x18ipv6RoutingHeaderSegLeft\"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\x04\"\xc7\x01\n" +
	"\n" +
	"LayerStack\x12\f\n" +
	"\bEthernet\x10\x00\x12\b\n" +
	"\x04IPv4\x10\x01\x12\b\n" +
	"\x04IPv6\x10\x02\x12\a\n" +
	"\x03TCP\x10\x03\x12\a\n" +
	"\x03UDP\x10\x04\x12\b\n" +
	"\x04MPLS\x10\x05\x12\t\n" +
	"\x05Dot1Q\x10\x06\x12\b\n" +
	"\x04ICMP\x10\a\x12\n" +
	"\n" +
	"\x06ICMPv6\x10\b\x12\a\n" +
	"\x03GRE\x10\t\x12\x15\n" +
	"\x11IPv6HeaderRouting\x10\n" +
	"\x12\x16\n" +
	"\x12IPv6HeaderFragment\x10\v\x12\n" +
	"\n" +
	"\x06Geneve\x10\f\x12\n" +
	"\n" +
	"\x06Teredo\x10\r\x12\n" +
	"\n" +
	"\x06Custom\x10cB)Z'github.com/netsampler/goflow2/pb;flowpbb\x06proto3"

var (
	file_pb_flow_proto_rawDescOnce sync.Once
	file_pb_flow_proto_rawDescData []byte
)

func file_pb_flow_proto_rawDescGZIP() []byte {
	file_pb_flow_proto_rawDescOnce.Do(func() {
		file_pb_flow_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pb_flow_proto_rawDesc), len(file_pb_flow_proto_rawDesc)))
	})
	return file_pb_flow_proto_rawDescData
}

var file_pb_flow_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_pb_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_pb_flow_proto_goTypes = []any{
	(FlowMessage_FlowType)(0),   // 0: flowpb.FlowMessage.FlowType
	(FlowMessage_LayerStack)(0), // 1: flowpb.FlowMessage.LayerStack
	(*FlowMessage)(nil),         // 2: flowpb.FlowMessage
}
var file_pb_flow_proto_depIdxs = []int32{
	0, // 0: flowpb.FlowMessage.type:type_name -> flowpb.FlowMessage.FlowType
	1, // 1: flowpb.FlowMessage.layer_stack:type_name -> flowpb.FlowMessage.LayerStack
	2, // [2:2] is the sub-list for method output_type
	2, // [2:2] is the sub-list for method input_type
	2, // [2:2] is the sub-list for extension type_name
	2, // [2:2] is the sub-list for extension extendee
	0, // [0:2] is the sub-list for field type_name
}

func init() { file_pb_flow_proto_init() }
func file_pb_flow_proto_init() {
	if File_pb_flow_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_pb_flow_proto_rawDesc), len(file_pb_flow_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_pb_flow_proto_goTypes,
		DependencyIndexes: file_pb_flow_proto_depIdxs,
		EnumInfos:         file_pb_flow_proto_enumTypes,
		MessageInfos:      file_pb_flow_proto_msgTypes,
	}.Build()
	File_pb_flow_proto = out.File
	file_pb_flow_proto_goTypes = nil
	file_pb_flow_proto_depIdxs = nil
}
