【问题标题】:XDP alternate to bpf_get_current_pidXDP 替代 bpf_get_current_pid
【发布时间】:2022-01-06 02:06:59
【问题描述】:

如何在 xdp 中获取当前进程 ID

我的程序:

#include <linux/bpf.h>
#include <linux/if_ether.h>
#include <linux/ip.h>
#include <linux/in.h>
#include <linux/udp.h>
#include <linux/sched.h>
#include <linux/if_packet.h>
#include <linux/if_vlan.h>
#include <uapi/linux/bpf.h>
#include <net/sock.h>
#include <bcc/proto.h>


int udpfilter(struct xdp_md *ctx) {

  bpf_trace_printk("got a packet\n");
  u32 cpu = bpf_get_smp_processor_id();
  //bpf_trace_printk("%s looking\n",cpu);
  u32 pid = bpf_get_current_pid_tgid();

  return XDP_DROP;
}

是否有任何替代函数可以在 xdp 中获取当前 pid,我参考了这个 https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md#program-types

【问题讨论】:

  • 阅读您的其他问题,我猜您正在尝试检索数据包的目标进程的 PID?

标签: c linux ebpf bpf xdp-bpf


【解决方案1】:

阅读您的其他问题,我猜您正在尝试检索数据包的目标进程的 PID。这在 XDP 钩子上是不可能的,因为内核还没有计算出这些信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多