2021-05-22 16:12:26 -07:00
|
|
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
|
|
// versions:
|
2021-06-07 22:43:09 -07:00
|
|
|
// protoc-gen-go v1.26.0
|
2023-08-09 19:47:20 -07:00
|
|
|
// protoc v3.21.12
|
2021-05-22 16:12:26 -07:00
|
|
|
// 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"
|
|
|
|
)
|
|
|
|
|
|
|
|
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
|
|
|
|
sizeCache protoimpl.SizeCache
|
|
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Sampler information
|
2022-10-08 15:47:31 -07:00
|
|
|
SamplerAddress []byte `protobuf:"bytes,11,opt,name=sampler_address,json=samplerAddress,proto3" json:"sampler_address,omitempty"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Found inside packet
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Size of the sampled packet
|
2022-10-08 15:47:31 -07:00
|
|
|
Bytes uint64 `protobuf:"varint,9,opt,name=bytes,proto3" json:"bytes,omitempty"`
|
|
|
|
Packets uint64 `protobuf:"varint,10,opt,name=packets,proto3" json:"packets,omitempty"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Source/destination addresses
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Layer 3 protocol (IPv4/IPv6/ARP/MPLS...)
|
2022-10-08 15:47:31 -07:00
|
|
|
Etype uint32 `protobuf:"varint,30,opt,name=etype,proto3" json:"etype,omitempty"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Layer 4 protocol
|
2022-10-08 15:47:31 -07:00
|
|
|
Proto uint32 `protobuf:"varint,20,opt,name=proto,proto3" json:"proto,omitempty"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Ports for UDP and TCP
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Interfaces
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Ethernet information
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Vlan
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// 802.1q VLAN in sampled packet
|
2022-10-08 15:47:31 -07:00
|
|
|
VlanId uint32 `protobuf:"varint,29,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// VRF
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// IP and TCP special flags
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Fragments (IPv4/IPv6)
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Autonomous system information
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// Prefix size
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
// MPLS information
|
2022-10-08 15:47:31 -07:00
|
|
|
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"`
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
func (x *FlowMessageExt) Reset() {
|
|
|
|
*x = FlowMessageExt{}
|
|
|
|
if protoimpl.UnsafeEnabled {
|
|
|
|
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 protoimpl.UnsafeEnabled && x != nil {
|
|
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
if ms.LoadMessageInfo() == nil {
|
|
|
|
ms.StoreMessageInfo(mi)
|
|
|
|
}
|
|
|
|
return ms
|
|
|
|
}
|
|
|
|
return mi.MessageOf(x)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Deprecated: Use 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
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2021-05-22 16:12:26 -07:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetIngressVrfId() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.IngressVrfId
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetEgressVrfId() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.EgressVrfId
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetIpTos() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.IpTos
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (x *FlowMessageExt) GetForwardingStatus() uint32 {
|
|
|
|
if x != nil {
|
|
|
|
return x.ForwardingStatus
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetIpTtl() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.IpTtl
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetTcpFlags() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.TcpFlags
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetIpv6FlowLabel() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.Ipv6FlowLabel
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetSrcAs() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.SrcAs
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetDstAs() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.DstAs
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (x *FlowMessageExt) GetNextHop() []byte {
|
|
|
|
if x != nil {
|
|
|
|
return x.NextHop
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetNextHopAs() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.NextHopAs
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
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 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.AsPath
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (x *FlowMessageExt) GetHasMpls() bool {
|
|
|
|
if x != nil {
|
|
|
|
return x.HasMpls
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetMplsCount() uint32 {
|
|
|
|
if x != nil {
|
|
|
|
return x.MplsCount
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (x *FlowMessageExt) GetMpls_1Ttl() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.Mpls_1Ttl
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetMpls_1Label() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.Mpls_1Label
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetMpls_2Ttl() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.Mpls_2Ttl
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetMpls_2Label() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.Mpls_2Label
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetMpls_3Ttl() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.Mpls_3Ttl
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetMpls_3Label() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.Mpls_3Label
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetMplsLastTtl() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.MplsLastTtl
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
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 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.ObservationDomainId
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2022-10-08 15:47:31 -07:00
|
|
|
func (x *FlowMessageExt) GetObservationPointId() uint32 {
|
2021-05-22 16:12:26 -07:00
|
|
|
if x != nil {
|
2022-10-08 15:47:31 -07:00
|
|
|
return x.ObservationPointId
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
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
|
|
|
|
|
|
|
|
var file_cmd_enricher_pb_flowext_proto_rawDesc = []byte{
|
|
|
|
0x0a, 0x1d, 0x63, 0x6d, 0x64, 0x2f, 0x65, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x70,
|
|
|
|
0x62, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
|
2022-10-08 15:47:31 -07:00
|
|
|
0x06, 0x66, 0x6c, 0x6f, 0x77, 0x70, 0x62, 0x22, 0x9b, 0x10, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77,
|
|
|
|
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79,
|
2021-05-22 16:12:26 -07:00
|
|
|
0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x70,
|
|
|
|
0x62, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74,
|
2022-10-08 15:47:31 -07:00
|
|
|
0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
|
|
|
|
0x23, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64,
|
|
|
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x65,
|
|
|
|
0x69, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65,
|
|
|
|
0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x71, 0x75,
|
|
|
|
0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x61, 0x6d, 0x70, 0x6c,
|
|
|
|
0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c,
|
|
|
|
0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e,
|
|
|
|
0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2a,
|
|
|
|
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74,
|
|
|
|
0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x5f, 0x61,
|
|
|
|
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x61,
|
|
|
|
0x6d, 0x70, 0x6c, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f,
|
|
|
|
0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18,
|
|
|
|
0x26, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x53,
|
|
|
|
0x74, 0x61, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6c, 0x6f,
|
|
|
|
0x77, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x6d,
|
|
|
|
0x65, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65,
|
|
|
|
0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x3f,
|
|
|
|
0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74,
|
|
|
|
0x61, 0x72, 0x74, 0x4d, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6c,
|
|
|
|
0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x40, 0x20, 0x01, 0x28, 0x04, 0x52,
|
|
|
|
0x0d, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x6e, 0x64, 0x4d, 0x73, 0x12, 0x14,
|
|
|
|
0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62,
|
|
|
|
0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
|
|
|
|
0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x19,
|
|
|
|
0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c,
|
|
|
|
0x52, 0x07, 0x73, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74,
|
|
|
|
0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x73, 0x74,
|
|
|
|
0x41, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20,
|
|
|
|
0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72,
|
|
|
|
0x6f, 0x74, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
|
|
|
0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x15, 0x20, 0x01,
|
|
|
|
0x28, 0x0d, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64,
|
|
|
|
0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64,
|
|
|
|
0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x69, 0x6e, 0x5f, 0x69, 0x66, 0x18,
|
|
|
|
0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x6e, 0x49, 0x66, 0x12, 0x15, 0x0a, 0x06, 0x6f,
|
|
|
|
0x75, 0x74, 0x5f, 0x69, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6f, 0x75, 0x74,
|
|
|
|
0x49, 0x66, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x1b, 0x20,
|
|
|
|
0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x64,
|
|
|
|
0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73,
|
|
|
|
0x74, 0x4d, 0x61, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e,
|
|
|
|
0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x72, 0x63, 0x56, 0x6c, 0x61, 0x6e, 0x12,
|
|
|
|
0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28,
|
|
|
|
0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c,
|
|
|
|
0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61,
|
|
|
|
0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76,
|
|
|
|
0x72, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x6e, 0x67,
|
|
|
|
0x72, 0x65, 0x73, 0x73, 0x56, 0x72, 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x67, 0x72,
|
|
|
|
0x65, 0x73, 0x73, 0x5f, 0x76, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d,
|
|
|
|
0x52, 0x0b, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x56, 0x72, 0x66, 0x49, 0x64, 0x12, 0x15, 0x0a,
|
|
|
|
0x06, 0x69, 0x70, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69,
|
|
|
|
0x70, 0x54, 0x6f, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69,
|
|
|
|
0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
|
|
|
0x10, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75,
|
|
|
|
0x73, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28,
|
|
|
|
0x0d, 0x52, 0x05, 0x69, 0x70, 0x54, 0x74, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x63, 0x70, 0x5f,
|
|
|
|
0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x63, 0x70,
|
|
|
|
0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79,
|
|
|
|
0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63, 0x6d, 0x70, 0x54, 0x79,
|
|
|
|
0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18,
|
|
|
|
0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
|
|
|
0x26, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62,
|
|
|
|
0x65, 0x6c, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x46, 0x6c,
|
|
|
|
0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x61, 0x67, 0x6d,
|
|
|
|
0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x72,
|
|
|
|
0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67,
|
|
|
|
0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28,
|
|
|
|
0x0d, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65,
|
|
|
|
0x74, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x69, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x72,
|
|
|
|
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x69,
|
|
|
|
0x46, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a,
|
|
|
|
0x06, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73,
|
|
|
|
0x72, 0x63, 0x41, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x73, 0x18, 0x0f,
|
|
|
|
0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x73, 0x74, 0x41, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e,
|
|
|
|
0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6e,
|
|
|
|
0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68,
|
|
|
|
0x6f, 0x70, 0x5f, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6e, 0x65, 0x78,
|
|
|
|
0x74, 0x48, 0x6f, 0x70, 0x41, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x65,
|
|
|
|
0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4e, 0x65, 0x74, 0x12,
|
|
|
|
0x17, 0x0a, 0x07, 0x64, 0x73, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d,
|
|
|
|
0x52, 0x06, 0x64, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f,
|
|
|
|
0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a,
|
|
|
|
0x62, 0x67, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x67,
|
|
|
|
0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x65, 0x20,
|
|
|
|
0x03, 0x28, 0x0d, 0x52, 0x0e, 0x62, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
|
|
|
|
0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x66,
|
|
|
|
0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08,
|
|
|
|
0x68, 0x61, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
|
|
|
|
0x68, 0x61, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x70, 0x6c, 0x73, 0x5f,
|
|
|
|
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x70, 0x6c,
|
|
|
|
0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x31,
|
|
|
|
0x5f, 0x74, 0x74, 0x6c, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x70, 0x6c, 0x73,
|
|
|
|
0x31, 0x54, 0x74, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x31, 0x5f, 0x6c,
|
|
|
|
0x61, 0x62, 0x65, 0x6c, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x70, 0x6c, 0x73,
|
|
|
|
0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x32,
|
|
|
|
0x5f, 0x74, 0x74, 0x6c, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x70, 0x6c, 0x73,
|
|
|
|
0x32, 0x54, 0x74, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x32, 0x5f, 0x6c,
|
|
|
|
0x61, 0x62, 0x65, 0x6c, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x70, 0x6c, 0x73,
|
|
|
|
0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x33,
|
|
|
|
0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x70, 0x6c, 0x73,
|
|
|
|
0x33, 0x54, 0x74, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x33, 0x5f, 0x6c,
|
|
|
|
0x61, 0x62, 0x65, 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x70, 0x6c, 0x73,
|
|
|
|
0x33, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c,
|
|
|
|
0x61, 0x73, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d,
|
|
|
|
0x70, 0x6c, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x70,
|
|
|
|
0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3e, 0x20,
|
|
|
|
0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x61, 0x62,
|
|
|
|
0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c,
|
|
|
|
0x5f, 0x69, 0x70, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x70, 0x6c, 0x73, 0x4c,
|
|
|
|
0x61, 0x62, 0x65, 0x6c, 0x49, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76,
|
|
|
|
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18,
|
|
|
|
0x46, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69,
|
|
|
|
0x6f, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x6f, 0x62,
|
|
|
|
0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f,
|
|
|
|
0x69, 0x64, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76,
|
|
|
|
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b,
|
|
|
|
0x73, 0x72, 0x63, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0xe8, 0x07, 0x20, 0x01,
|
|
|
|
0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x20,
|
|
|
|
0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0xe9, 0x07,
|
|
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
|
|
|
|
0x22, 0x53, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b,
|
|
|
|
0x46, 0x4c, 0x4f, 0x57, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a,
|
|
|
|
0x07, 0x53, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x35, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45,
|
|
|
|
0x54, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x56, 0x35, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45,
|
|
|
|
0x54, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x56, 0x39, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x50,
|
|
|
|
0x46, 0x49, 0x58, 0x10, 0x04, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
|
|
|
0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x65, 0x74, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x2f, 0x67,
|
|
|
|
0x6f, 0x66, 0x6c, 0x6f, 0x77, 0x32, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x65, 0x6e, 0x72, 0x69, 0x63,
|
|
|
|
0x68, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x3b, 0x66, 0x6c, 0x6f, 0x77, 0x70, 0x62, 0x62, 0x06, 0x70,
|
|
|
|
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
2021-05-22 16:12:26 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
var (
|
|
|
|
file_cmd_enricher_pb_flowext_proto_rawDescOnce sync.Once
|
|
|
|
file_cmd_enricher_pb_flowext_proto_rawDescData = file_cmd_enricher_pb_flowext_proto_rawDesc
|
|
|
|
)
|
|
|
|
|
|
|
|
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(file_cmd_enricher_pb_flowext_proto_rawDescData)
|
|
|
|
})
|
|
|
|
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 = []interface{}{
|
|
|
|
(FlowMessageExt_FlowType)(0), // 0: flowpb.FlowMessageExt.FlowType
|
|
|
|
(*FlowMessageExt)(nil), // 1: flowpb.FlowMessageExt
|
|
|
|
}
|
|
|
|
var file_cmd_enricher_pb_flowext_proto_depIdxs = []int32{
|
2022-10-08 15:47:31 -07:00
|
|
|
0, // 0: flowpb.FlowMessageExt.type:type_name -> flowpb.FlowMessageExt.FlowType
|
2021-05-22 16:12:26 -07:00
|
|
|
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
|
|
|
|
}
|
|
|
|
if !protoimpl.UnsafeEnabled {
|
|
|
|
file_cmd_enricher_pb_flowext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
|
|
|
switch v := v.(*FlowMessageExt); i {
|
|
|
|
case 0:
|
|
|
|
return &v.state
|
|
|
|
case 1:
|
|
|
|
return &v.sizeCache
|
|
|
|
case 2:
|
|
|
|
return &v.unknownFields
|
|
|
|
default:
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
type x struct{}
|
|
|
|
out := protoimpl.TypeBuilder{
|
|
|
|
File: protoimpl.DescBuilder{
|
|
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
|
|
RawDescriptor: file_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_rawDesc = nil
|
|
|
|
file_cmd_enricher_pb_flowext_proto_goTypes = nil
|
|
|
|
file_cmd_enricher_pb_flowext_proto_depIdxs = nil
|
|
|
|
}
|