Thread (13 messages) flat view 13 messages, 3 authors, 2019-12-13

Re: [PATCH bpf-next 2/3] bpftool: match programs by name

From: Paul Chaignon <hidden>
Date: 2019-12-13 20:36:54
Also in: bpf

On Tue, Dec 10, 2019 at 01:04:13PM -0800, Jakub Kicinski wrote:
On Tue, 10 Dec 2019 17:06:42 +0100, Paul Chaignon wrote:
quoted
When working with frequently modified BPF programs, both the ID and the
tag may change.  bpftool currently doesn't provide a "stable" way to match
such programs.

This patch implements lookup by name for programs.  The show and dump
commands will return all programs with the given name, whereas other
commands will error out if several programs have the same name.

Signed-off-by: Paul Chaignon <redacted>
quoted
@@ -164,7 +165,7 @@ prog_parse_fds(int *argc, char ***argv, int *fds)
 		}
 		return 1;
 	} else if (is_prefix(**argv, "tag")) {
-		unsigned char tag[BPF_TAG_SIZE];
+		char tag[BPF_TAG_SIZE];
Perhaps better to change the argument to prog_fd_by_nametag() to void *?
quoted
 
 		NEXT_ARGP();
 
@@ -176,7 +177,20 @@ prog_parse_fds(int *argc, char ***argv, int *fds)
 		}
 		NEXT_ARGP();
 
-		return prog_fd_by_tag(tag, fds);
+		return prog_fd_by_nametag(tag, fds, true);
+	} else if (is_prefix(**argv, "name")) {
+		char *name;
+
+		NEXT_ARGP();
+
+		name = **argv;
+		if (strlen(name) > BPF_OBJ_NAME_LEN - 1) {
Is this needed? strncmp will simply never match, is it preferred to
hard error?
I tried to follow the fail-early pattern of lookups by tag above.  I do
like that there's a different error message for a longer than expected
name.  Since libbpf silently truncates names, typing a longer name is
not uncommon.

[...]

Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help