|
|
|
@ -3,50 +3,57 @@
|
|
|
|
|
set -eux
|
|
|
|
|
|
|
|
|
|
TEMPLATE_DIR=$1
|
|
|
|
|
if [ -z "${TEMPLATE_DIR}" ]; then echo "template dir required"; exit 1; fi
|
|
|
|
|
if [ -z "${TEMPLATE_DIR}" ]; then
|
|
|
|
|
echo "template dir required"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
PROG_TYPE=$2
|
|
|
|
|
if [ -z "${PROG_TYPE}" ]; then echo "program type required"; exit 1; fi
|
|
|
|
|
if [ -z "${PROG_TYPE}" ]; then
|
|
|
|
|
echo "program type required"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
CRATE_NAME=aya-test-crate
|
|
|
|
|
|
|
|
|
|
case "${PROG_TYPE}" in
|
|
|
|
|
"cgroup_sockopt")
|
|
|
|
|
ADDITIONAL_ARGS=(-d sockopt_target=getsockopt)
|
|
|
|
|
;;
|
|
|
|
|
"classifier"|"cgroup_skb")
|
|
|
|
|
ADDITIONAL_ARGS=(-d direction=Ingress)
|
|
|
|
|
;;
|
|
|
|
|
"fentry"|"fexit")
|
|
|
|
|
ADDITIONAL_ARGS=(-d fn_name=try_to_wake_up)
|
|
|
|
|
;;
|
|
|
|
|
"kprobe"|"kretprobe")
|
|
|
|
|
ADDITIONAL_ARGS=(-d kprobe=do_unlinkat)
|
|
|
|
|
;;
|
|
|
|
|
"lsm")
|
|
|
|
|
ADDITIONAL_ARGS=(-d lsm_hook=file_open)
|
|
|
|
|
;;
|
|
|
|
|
"raw_tracepoint")
|
|
|
|
|
ADDITIONAL_ARGS=(-d tracepoint_name=sys_enter)
|
|
|
|
|
;;
|
|
|
|
|
"sk_msg")
|
|
|
|
|
ADDITIONAL_ARGS=(-d sock_map=SOCK_MAP)
|
|
|
|
|
;;
|
|
|
|
|
"tp_btf")
|
|
|
|
|
ADDITIONAL_ARGS=(-d tracepoint_name=net_dev_queue)
|
|
|
|
|
;;
|
|
|
|
|
"tracepoint")
|
|
|
|
|
ADDITIONAL_ARGS=(-d tracepoint_category=net -d tracepoint_name=net_dev_queue)
|
|
|
|
|
;;
|
|
|
|
|
"uprobe"|"uretprobe")
|
|
|
|
|
ADDITIONAL_ARGS=(-d uprobe_target=/proc/self/exe -d uprobe_fn_name=main)
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
ADDITIONAL_ARGS=()
|
|
|
|
|
"cgroup_sockopt")
|
|
|
|
|
ADDITIONAL_ARGS=(-d sockopt_target=getsockopt)
|
|
|
|
|
;;
|
|
|
|
|
"classifier" | "cgroup_skb")
|
|
|
|
|
ADDITIONAL_ARGS=(-d direction=Ingress)
|
|
|
|
|
;;
|
|
|
|
|
"fentry" | "fexit")
|
|
|
|
|
ADDITIONAL_ARGS=(-d fn_name=try_to_wake_up)
|
|
|
|
|
;;
|
|
|
|
|
"kprobe" | "kretprobe")
|
|
|
|
|
ADDITIONAL_ARGS=(-d kprobe=do_unlinkat)
|
|
|
|
|
;;
|
|
|
|
|
"lsm")
|
|
|
|
|
ADDITIONAL_ARGS=(-d lsm_hook=file_open)
|
|
|
|
|
;;
|
|
|
|
|
"raw_tracepoint")
|
|
|
|
|
ADDITIONAL_ARGS=(-d tracepoint_name=sys_enter)
|
|
|
|
|
;;
|
|
|
|
|
"sk_msg")
|
|
|
|
|
ADDITIONAL_ARGS=(-d sock_map=SOCK_MAP)
|
|
|
|
|
;;
|
|
|
|
|
"tp_btf")
|
|
|
|
|
ADDITIONAL_ARGS=(-d tracepoint_name=net_dev_queue)
|
|
|
|
|
;;
|
|
|
|
|
"tracepoint")
|
|
|
|
|
ADDITIONAL_ARGS=(-d tracepoint_category=net -d tracepoint_name=net_dev_queue)
|
|
|
|
|
;;
|
|
|
|
|
"uprobe" | "uretprobe")
|
|
|
|
|
ADDITIONAL_ARGS=(-d uprobe_target=/proc/self/exe -d uprobe_fn_name=main)
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
ADDITIONAL_ARGS=()
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
TMP_DIR=$(mktemp -d)
|
|
|
|
|
clean_up() {
|
|
|
|
|
# shellcheck disable=SC2317
|
|
|
|
|
rm -rf "${TMP_DIR}"
|
|
|
|
|
# shellcheck disable=SC2317
|
|
|
|
|
rm -rf "${TMP_DIR}"
|
|
|
|
|
}
|
|
|
|
|
trap clean_up EXIT
|
|
|
|
|
|
|
|
|
@ -64,7 +71,7 @@ cargo build --package "${CRATE_NAME}" --release
|
|
|
|
|
cargo clippy --exclude "${CRATE_NAME}-ebpf" --all-targets --workspace -- --deny warnings
|
|
|
|
|
cargo clippy --package "${CRATE_NAME}-ebpf" --all-targets -- --deny warnings
|
|
|
|
|
|
|
|
|
|
expect << EOF
|
|
|
|
|
expect <<EOF
|
|
|
|
|
set timeout 30 ;# Increase timeout if necessary
|
|
|
|
|
spawn cargo xtask run
|
|
|
|
|
expect {
|
|
|
|
|