AF_XDP-interaction: Code cleanup, remove local BTF code

The local BTF code in af_xdp_user.c was only used for
debugging the BTF structures while developing and testing
the lib_xsk_extend.c code.

If is confusing for other reading the code, so simply
remove thisi, as the lib_xsk_extend.c should hide
these details fpr API users.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
This commit is contained in:
Jesper Dangaard Brouer
2021-11-05 15:59:33 +01:00
parent 87654aecdd
commit 5e93cf0993

View File

@@ -418,6 +418,7 @@ static int print_meta_info_time(uint8_t *pkt)
time_now = gettime();
diff = time_now - rx_ktime;
if (debug_meta)
printf("meta-time rx_ktime:%llu time_now:%llu diff:%llu ns\n",
rx_ktime, time_now, diff);
@@ -445,6 +446,7 @@ static int print_meta_info_time_faster(uint8_t *pkt)
time_now = gettime();
diff = time_now - rx_ktime;
if (debug_meta)
printf("meta-time rx_ktime:%llu time_now:%llu diff:%llu ns\n",
rx_ktime, time_now, diff);
@@ -730,83 +732,6 @@ static void exit_application(int signal)
global_exit = true;
}
int btf_walk_struct_members(struct btf *btf_obj, __s32 btf_id)
{
const struct btf_member *m;
const struct btf_type *btype;
unsigned short vlen;
__u32 kind;
int i;
btype = btf__type_by_id(btf_obj, btf_id);
kind = btf_kind(btype);
if (kind != BTF_KIND_STRUCT) {
fprintf(stderr, "ERROR: %s() BTF must be BTF_KIND_STRUCT",
__func__);
return -1;
}
/* BTF_KIND_STRUCT and BTF_KIND_UNION are followed
* by multiple "struct btf_member". The exact number
* of btf_member is stored in the vlen (of the info in
* "struct btf_type").
*/
m = btf_members(btype);
vlen = BTF_INFO_VLEN(btype->info);
printf("XXX kind:%d members:%d\n", kind, vlen);
for (i = 0; i < vlen; i++, m++) {
__s64 sz = btf__resolve_size(btf_obj, m->type);
printf("XXX [%d] member type:%d bit-offset:%u name_off:%u sz:%lld\n",
i, m->type, m->offset, m->name_off, sz);
}
return 0;
}
__s32 btf_find_struct(struct btf *btf, const char *name, __s64 *size)
{
__s32 btf_id = btf__find_by_name_kind(btf, name, BTF_KIND_STRUCT);
__s64 sz = btf__resolve_size(btf, btf_id);
if (debug_meta)
printf("XXX bpf_id:%d struct name:%s size:%lld\n",
btf_id, name, sz);
*size = sz;
btf_walk_struct_members(btf, btf_id);
return btf_id;
}
int btf_info_via_bpf_object(struct bpf_object *bpf_obj)
{
struct btf *btf = bpf_object__btf(bpf_obj);
__s64 size;
int err;
struct xsk_btf_info *xdp_hint_rx_time = NULL;
static const char *name1 = "xdp_hints_mark";
static const char *name2 = "xdp_hints_rx_time";
btf_find_struct(btf, name1, &size);
btf_find_struct(btf, name2, &size);
err = xsk_btf__init_xdp_hint(btf, name2, &xdp_hint_rx_time);
if (err) {
fprintf(stderr, "WARN(%d): Cannot xsk_btf__init_xdp_hint\n", err);
return err;
}
if (!xsk_btf__has_field("rx_ktime", xdp_hint_rx_time)) {
fprintf(stderr, "WARN: %s doesn't contain member rx_ktime\n",
name2);
return 1;
}
return 0;
}
int main(int argc, char **argv)
{
int ret, err;
@@ -865,9 +790,6 @@ int main(int argc, char **argv)
}
}
if (debug_meta) {
btf_info_via_bpf_object(bpf_obj);
}
err = init_btf_info_via_bpf_object(bpf_obj);
if (err) {
fprintf(stderr, "ERROR(%d): Invalid BTF info: errno:%s\n",