mirror of
https://github.com/xdp-project/bpf-examples.git
synced 2024-05-06 15:54:53 +00:00
pping: Add TC-BPF program for egress
Split and rename files so there is one userspace program (pping) and two kernel-space ones (one for XDP and one for TC-BPF). Copy the shell script for loading the TC-BPF program from traffic-pacing-edt folder, but add support for loading a specific section. The XDP and TC-BPF programs do not share the ts_start map, so program does not work. Signed-off-by: Simon Sundberg <simon.sundberg@kau.se>
This commit is contained in:
64
pping/functions.sh
Normal file
64
pping/functions.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#
|
||||
# Common functions used by scripts in this directory
|
||||
# - Depending on bash 3 (or higher) syntax
|
||||
#
|
||||
# Author: Jesper Dangaaard Brouer <netoptimizer@brouer.com>
|
||||
# License: GPLv2
|
||||
|
||||
## -- sudo trick --
|
||||
function root_check_run_with_sudo() {
|
||||
# Trick so, program can be run as normal user, will just use "sudo"
|
||||
# call as root_check_run_as_sudo "$@"
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
if [ -x $0 ]; then # Directly executable use sudo
|
||||
echo "# (Not root, running with sudo)" >&2
|
||||
sudo "$0" "$@"
|
||||
exit $?
|
||||
fi
|
||||
echo "cannot perform sudo run of $0"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
## -- General shell logging cmds --
|
||||
function err() {
|
||||
local exitcode=$1
|
||||
shift
|
||||
echo -e "ERROR: $@" >&2
|
||||
exit $exitcode
|
||||
}
|
||||
|
||||
function warn() {
|
||||
echo -e "WARN : $@" >&2
|
||||
}
|
||||
|
||||
function info() {
|
||||
if [[ -n "$VERBOSE" ]]; then
|
||||
echo "# $@"
|
||||
fi
|
||||
}
|
||||
|
||||
## -- Wrapper calls for TC --
|
||||
function _call_tc() {
|
||||
local allow_fail="$1"
|
||||
shift
|
||||
if [[ -n "$VERBOSE" ]]; then
|
||||
echo "tc $@"
|
||||
fi
|
||||
if [[ -n "$DRYRUN" ]]; then
|
||||
return
|
||||
fi
|
||||
$TC "$@"
|
||||
local status=$?
|
||||
if (( $status != 0 )); then
|
||||
if [[ "$allow_fail" == "" ]]; then
|
||||
err 3 "Exec error($status) occurred cmd: \"$TC $@\""
|
||||
fi
|
||||
fi
|
||||
}
|
||||
function call_tc() {
|
||||
_call_tc "" "$@"
|
||||
}
|
||||
function call_tc_allow_fail() {
|
||||
_call_tc "allow_fail" "$@"
|
||||
}
|
Reference in New Issue
Block a user