On Wed, Aug 16, 2023 at 11:13 PM -07, John Fastabend wrote: > Liu Jian wrote: >> If the sockmap msg redirection function is used only to forward packets >> and no other operation, the execution result of the BPF_SK_MSG_VERDICT >> program is the same each time. In this case, the BPF program only needs to >> be run once. Add BPF_F_PERMANENTLY flag to bpf_msg_redirect_map() and >> bpf_msg_redirect_hash() to implement this ability. >> > > I like the use case. Did you consider using > > long bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes) > > This could be set to UINT32_MAX and then the BPF prog would only be run > every 0xfffffff bytes. It would be great to have the permanent redirect feature implemented also for BPF_SK_SKB_STREAM_VERDICT and BPF_SK_SKB_VERDICT. I don't think there are any obstacles to support it for both input configurations. But in SK_SKB verdict prog we don't have apply_bytes. So we couldn't keep the API the same without introducing a helper. That's why I'd go with the flag. [...]