2.3 Android ebpf帮助函数解读(二)

写在前面:

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

    我们继续来介绍。

术语

  • skb

Linux网络核心数据结构是套接字缓存(socket buffer),简称skb。它代表一个要发送或处理的保文,并贯穿于整个协议栈。

  • off-cpu 火焰图

线程在i/o,锁,计时器,分页/交换等阻塞等待的时间

  • on-cpu火焰图

线程在CPU上运行所花费的时间

  • qdisc

队列规则,queueing discipline,Linux流量控制体系的核心。

21.long bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)

描述:填充skb关联的数据包的隧道元数据。隧道元数据被设置为key一定size大小的内容,可以将flags设置为以下值的组合:

  • BPF_F_TUNINFO_IPV6:指示隧道基于 IPv6 协议而不是 IPv4。
  • BPF_F_ZERO_CSUM_TX:对于 IPv4 数据包,向隧道元数据添加一个标志,以表示应跳过checksum的计算并将checksum设置为零。
  • BPF_F_DONT_FRAGMENT:向隧道元数据添加一flag,以表示该数据包不应分段。
  • BPF_F_SEQ_NUMBER:向隧道元数据添加一个标志,以表示

猜你喜欢

转载自blog.csdn.net/huangyabin001/article/details/131158899
2.3