1
0
mirror of https://github.com/netsampler/goflow2.git synced 2024-05-06 15:54:52 +00:00

116 lines
2.4 KiB
Protocol Buffer
Raw Normal View History

2021-05-22 16:12:26 -07:00
syntax = "proto3";
package flowpb;
option go_package = "github.com/netsampler/goflow2/cmd/enricher/pb;flowpb";
2021-05-22 16:12:26 -07:00
message FlowMessageExt {
enum FlowType {
FLOWUNKNOWN = 0;
SFLOW_5 = 1;
NETFLOW_V5 = 2;
NETFLOW_V9 = 3;
IPFIX = 4;
}
FlowType type = 1;
2021-05-22 16:12:26 -07:00
uint64 time_received = 2;
uint32 sequence_num = 4;
uint64 sampling_rate = 3;
2021-05-22 16:12:26 -07:00
uint32 flow_direction = 42;
2021-05-22 16:12:26 -07:00
// Sampler information
bytes sampler_address = 11;
2021-05-22 16:12:26 -07:00
// Found inside packet
uint64 time_flow_start = 38;
uint64 time_flow_end = 5;
uint64 time_flow_start_ms = 63;
uint64 time_flow_end_ms = 64;
2021-05-22 16:12:26 -07:00
// Size of the sampled packet
uint64 bytes = 9;
uint64 packets = 10;
2021-05-22 16:12:26 -07:00
// Source/destination addresses
bytes src_addr = 6;
bytes dst_addr = 7;
2021-05-22 16:12:26 -07:00
// Layer 3 protocol (IPv4/IPv6/ARP/MPLS...)
uint32 etype = 30;
2021-05-22 16:12:26 -07:00
// Layer 4 protocol
uint32 proto = 20;
2021-05-22 16:12:26 -07:00
// Ports for UDP and TCP
uint32 src_port = 21;
uint32 dst_port = 22;
2021-05-22 16:12:26 -07:00
// Interfaces
uint32 in_if = 18;
uint32 out_if = 19;
2021-05-22 16:12:26 -07:00
// Ethernet information
uint64 src_mac = 27;
uint64 dst_mac = 28;
2021-05-22 16:12:26 -07:00
// Vlan
uint32 src_vlan = 33;
uint32 dst_vlan = 34;
2021-05-22 16:12:26 -07:00
// 802.1q VLAN in sampled packet
uint32 vlan_id = 29;
2021-05-22 16:12:26 -07:00
// VRF
uint32 ingress_vrf_id = 39;
uint32 egress_vrf_id = 40;
2021-05-22 16:12:26 -07:00
// IP and TCP special flags
uint32 ip_tos = 23;
uint32 forwarding_status = 24;
uint32 ip_ttl = 25;
uint32 tcp_flags = 26;
uint32 icmp_type = 31;
uint32 icmp_code = 32;
uint32 ipv6_flow_label = 37;
2021-05-22 16:12:26 -07:00
// Fragments (IPv4/IPv6)
uint32 fragment_id = 35;
uint32 fragment_offset = 36;
uint32 bi_flow_direction = 41;
2021-05-22 16:12:26 -07:00
// Autonomous system information
uint32 src_as = 14;
uint32 dst_as = 15;
2021-05-22 16:12:26 -07:00
bytes next_hop = 12;
uint32 next_hop_as = 13;
2021-05-22 16:12:26 -07:00
// Prefix size
uint32 src_net = 16;
uint32 dst_net = 17;
// BGP information
bytes bgp_next_hop = 100;
repeated uint32 bgp_communities = 101;
repeated uint32 as_path = 102;
2021-05-22 16:12:26 -07:00
// MPLS information
bool has_mpls = 53;
uint32 mpls_count = 54;
uint32 mpls_1_ttl = 55; // First TTL
uint32 mpls_1_label = 56; // First Label
uint32 mpls_2_ttl = 57; // Second TTL
uint32 mpls_2_label = 58; // Second Label
uint32 mpls_3_ttl = 59; // Third TTL
uint32 mpls_3_label = 60; // Third Label
uint32 mpls_last_ttl = 61; // Last TTL
uint32 mpls_last_label = 62; // Last Label
bytes mpls_label_ip = 65; // MPLS TOP Label IP
uint32 observation_domain_id = 70;
uint32 observation_point_id = 71;
string src_country = 1000;
string dst_country = 1001;
2021-05-22 16:12:26 -07:00
}