2.3 Android ebpf帮助函数解读(二)---更新中

写在前面:

    帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

    我们继续来介绍。

24.u32 bpf_get_route_realm(struct sk_buff *skb)

描述:检索realm或route,也就是skb tclassid字段。所检索到的标识符是用户提供的标记,与net_cls cgroup 使用的标记类似(可参考bpf_get_cgroup_classid()帮助函数的说明),但此处标记由route(目标条目)保存而不是由task。

    检索此标识符适用于classt TC出口钩子(可参考tc-bpf(8)),或者适用于传统的出口 qdiscs(qdiscs:表示队列出口规则,queueing discipline,Linux流量控制系统的核心),但不适用于TC入口路径。假若使用clsact TC出口钩子,这样做有一定的好处,在内部,目标条目尚未在传输路径中删除。因此,在释放skb之前,不需要通过netif_keep_dst() 人为地持有qdisc的目标条目。

    这个帮助函数要求在内核配置中使能CONFIG_IP_ROUTE_CLASSID。

返回值:返回与skb关联的数据包的路由区域,如果未找到,则返回0.

25.long bpf_perf_event_output(void *ctx,

你可能感兴趣的:(Android,eBPF,Book,linux,eBPF,ebpf,android)