我正在尝试使用 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 映射中读取值并将其与内核空间中的另一个值进行比较,但这似乎不起作用。