我想产生多个用户空间进程,每个进程都处理来自单个源(三倍(SRC-IP, DST-IP, DST-Port)
)的数据包。
因为要通过 AF-XDP 内核程序传递大量数据包并且时间很关键,所以我想到了内核程序中的一个单独的映射,该映射预先由用户空间程序填充。
该映射定义了从前面提到的三元组到索引的映射,然后用于bpf_redirect_map(&xsks_map, index, 0)
将数据包发送到用户空间中的特定套接字。
我最初的想法是将 src-ip、destination-ip 和目标端口连接成一个 (32 + 32 + 16) 位的值。
是否可以定义具有如此大键大小的映射?哪张地图最适合这个问题?此外,是否可以从用户空间填充地图?