On 10/25/24 4:05 AM, D. Wythe wrote:
Our main concern is to avoid introducing kfuncs as much as possible. For our subsystem, we might need to maintain it in a way that maintains a uapi, as we certainly have user applications depending on it.
The smc_bpf_ops can read/write the tp and ireq. In patch 4, there is 'tp->syn_smc = 1'. I assume the real bpf prog will read something from the tp to make the decision also. Note that tp/ireq is also not in the uapi but the CO-RE can help in case the tp->syn_smc bool is moved around.
From looking at the selftest in patch 4 again, I think all it needs is for the bpf prog (i.e. the ops) to return a bool instead of allowing the bpf prog to write or call a kfunc to change the tp/ireq.