eBPF: TC on egress 如何识别和忽略 TC on ingress 直接回复的数据包?

eBPF: TC on egress how to recognize and ignore the packet that is replied by TC on ingress directly?

出口TC意外捕获到入口TC直接回复的数据包。

出口上的 TC 如何识别和忽略由 TC 直接在入口上回复而不是由用户空间应用程序生成的数据包?

一个简单的解决方案是标记来自第一个程序(在入口端)的数据包,然后在出口端查找标记。

您可以通过写入 eBPF 程序中的 skb->markcb 字段之一(例如 skb->cb[0])来在入口端标记您的数据包。您稍后可以在出口程序中读取相同的字段。

应用程序使用套接字缓冲区的mark字段(通用数据包标记)来标记数据包(iptables可能会在某些用例中使用它,例如例子)。 cb控制缓冲区)数组中的五个条目也可供应用程序免费使用,以传递用户定义的标记或值。