我正在编写一个sockmap BPF 程序,我想知道这样一个程序的要求是什么。一个 sockmap 可能附加了一个解析器和一个判断程序,所以我的问题是在将套接字添加到映射之前是否需要任何一个程序,如果两者都不需要,那么当省略任何一个程序时会发生什么行为。
一些令人困惑的相关陈述显示了我为什么有这个问题:
- 如果没有附加 BPF 程序,则 sock 对象只能用于 sock 重定向- 我认为这意味着重定向是通过附加到 sock 映射本身的裁决程序以外的某种方式编程的?
- 将 SOCKMAP 附加到解析器和判断程序很重要——这意味着解析器和判断程序都是必需的,即没有另一个程序就不能存在?
- recv_sock -> str_parser (parse_prog) -> verdict_prog -> skb_send_sock - 这个 ASCII 图似乎也暗示如果解析程序被省略,判断程序将不会收到任何操作?