Commit b7264f87 authored by Tao Chen's avatar Tao Chen Committed by Andrii Nakryiko
Browse files

bpftool: Refactor xdp attach/detach type judgment



This commit no logical changed, just increases code readability and
facilitates TCX prog expansion, which will be implemented in the next
patch.

Signed-off-by: default avatarTao Chen <chen.dylane@gmail.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarQuentin Monnet <qmo@kernel.org>
Link: https://lore.kernel.org/bpf/20240721143353.95980-2-chen.dylane@gmail.com


Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
parent 81a0b954
Loading
Loading
Loading
Loading
+21 −5
Original line number Diff line number Diff line
@@ -684,10 +684,18 @@ static int do_attach(int argc, char **argv)
		}
	}

	switch (attach_type) {
	/* attach xdp prog */
	if (is_prefix("xdp", attach_type_strings[attach_type]))
		err = do_attach_detach_xdp(progfd, attach_type, ifindex,
					   overwrite);
	case NET_ATTACH_TYPE_XDP:
	case NET_ATTACH_TYPE_XDP_GENERIC:
	case NET_ATTACH_TYPE_XDP_DRIVER:
	case NET_ATTACH_TYPE_XDP_OFFLOAD:
		err = do_attach_detach_xdp(progfd, attach_type, ifindex, overwrite);
		break;
	default:
		break;
	}

	if (err) {
		p_err("interface %s attach failed: %s",
		      attach_type_strings[attach_type], strerror(-err));
@@ -721,10 +729,18 @@ static int do_detach(int argc, char **argv)
	if (ifindex < 1)
		return -EINVAL;

	switch (attach_type) {
	/* detach xdp prog */
	case NET_ATTACH_TYPE_XDP:
	case NET_ATTACH_TYPE_XDP_GENERIC:
	case NET_ATTACH_TYPE_XDP_DRIVER:
	case NET_ATTACH_TYPE_XDP_OFFLOAD:
		progfd = -1;
	if (is_prefix("xdp", attach_type_strings[attach_type]))
		err = do_attach_detach_xdp(progfd, attach_type, ifindex, NULL);
		break;
	default:
		break;
	}

	if (err < 0) {
		p_err("interface %s detach failed: %s",