1

我正在尝试使用 eBPF 映射,但在“if”子句中使用从 eBPF 映射中检索到的值时遇到问题。

我也在使用密件抄送来试验这段代码!

所以,当我运行代码时,我尝试这样做:

BPF_ARRAY(test,u64, 12);
u64 key0 = 0;
u64 test = 1234;
test.update(&key0, &test);

我在运行代码后检查了 1234 是否已正确插入。

当我尝试从 eBPF 映射中读取值并使用“if”进行比较时,它给了我一个错误,例如:

BPF_ARRAY(test,u64, 12);
u64 key0 = 0;
u64 test = 1234;
test.update(&key0, &test);
u64 comparer = 0;
u64 compared = 1234;
u64 replace_value = 1111;
comparer = test.lookup(&key0);
if (comparer == compared)
    test.update(&key0, &replace_value);

这给了我一个错误,例如:

R3 type=map_value_or_null expected=fp

我认为我正在做合法的操作,只是从 eBPF 映射中读取值并将其与内核空间中的另一个值进行比较,但这似乎不起作用。

4

0 回答 0