Skip to content

Latest commit

 

History

History
executable file
·
80 lines (53 loc) · 1.61 KB

README.md

File metadata and controls

executable file
·
80 lines (53 loc) · 1.61 KB

flat

Measure UDP and TCP flow latency for both IPv4 and IPv6 using eBPF.

This repo is the companion to my blog posts about eBPF at https://thegraynode.io/tags/flat/.

flat in action

Running The Program

You can install flat in two ways.

  1. Download the pre-compiled binary
  2. Compile from source

Download The Pre-compiled Binary

wget https://github.com/pouriyajamshidi/flat/releases/latest/download/flat

Then check out the examples.

Compile From Source

Clone the repository:

git clone https://github.com/pouriyajamshidi/flat .

Change directory to flat:

cd flat

While at the root of project directory, to compile the C code and generate the helper functions, run:

go generate ./...

Compile the Go program:

go build -ldflags "-s -w" -o flat cmd/flat.go

Examples

Run it with elevated privileges:

# Replace eth0 with your desired interface name
sudo ./flat -i eth0
# Or
sudo ./flat -i eth0 -ip 1.1.1.1
# Or
sudo ./flat -i eth0 -port 53
# Or
sudo ./flat -i eth0 -ip 1.1.1.1 -port 53

Flags

flat supports four flags at the moment:

flag Description
-i interface to attach the probe to
-ip IP address to filter on (optional)
-port Port number to filter on (optional)
-h Show help message

Acknolegments

Heavily inspired by flowlat.