Files
xdp-project-bpf-examples/pping/functions.sh
Simon Sundberg 954c66b0e8 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>
2021-02-04 19:39:16 +01:00

65 lines
1.3 KiB
Bash

#
# 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" "$@"
}