问题标签 [bcc-bpf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
45 浏览

c - 是否有通过 bpf_trace 获取进程的功能?

上下文:我正在尝试跟踪特定端口的数据包并将其重定向但针对特定进程。现在它跟踪整个界面。

我得到的输出

是否有任何功能可以 grepnc并且如果跟踪 udp 端口​​ 7999 我可以使用 XDP_DROP 丢弃数据包。

如果 process == nc && udp->dest == ntohs(7999) XDP_DROP 是这样的

0 投票
1 回答
28 浏览

c - eBPF bcctools 从 tracepipe 获取内容

这是一个跟踪tracepipe中通信的小程序。我的问题是如何使用 bcctools 访问 tracepipe 的内容。我尝试使用手动读取文件,fopen但这不起作用,有什么我不知道的功能吗?

0 投票
1 回答
99 浏览

bpf - “程序太大”阈值大于实际指令数

我已经编写了几个生产 BPF 代理,但我的方法是非常迭代的,直到我取悦验证者并可以继续前进。我又一次达到了极限。

这是一个程序,如果我的&&条件少一个,它就可以工作——否则就会中断。令人困惑的部分是警告意味着103 insns大于at most 4096 insns。显然,我对这一切是如何串在一起的有一些误解。

我的最终目标是基于进程环境进行日志记录——因此欢迎使用替代方法。:)

错误

BPF 来源

用于复制的基本加载程序

0 投票
1 回答
40 浏览

ebpf - 在函数之间共享信息(BPF/XDP)

Objective: If process id/name = xxx then drop the packet 所以,我有点困惑。到目前为止,我知道您无法从 XDP 中提取进程信息,但 bpf trace 允许您对其进行跟踪。这是我可能的解决方案,使用 bpf 哈希映射在两个函数之间共享信息。如果进程名称 == xx 那么 XDP_DROP。(这可能是错误的,但我正在尝试)

但我对如何使用 BPF_HASHMAPS 感到困惑,我阅读了关于 bcc 的文档..

示例:通过这个 hello 函数,我可以跟踪事件

XDP 功能丢弃打包机

现在我如何获取 pid 值并在 XDP 函数中使用它,而且该解决方案是否有意义。感谢您的帮助,非常感谢。

0 投票
0 回答
29 浏览

c - 使用 bcc 和 xdp 更新目标端口

我正在容器中的端口 80 中运行应用程序。现在我想通过使用端口 90 来调用它,xdp 会将端口从 90 更改为 80。但是由于某种原因,我得到了任何响应,或者服务器也没有得到任何调用。这是我的 ebf 代码:

仅供参考,我正在使用 bcc 库并在那里创建了一个问题。任何建议将不胜感激。 https://github.com/iovisor/bcc/issues/3829

注意:我使用的是环回lo接口。

0 投票
1 回答
42 浏览

c - 我可以访问由 BCC(BPF 编译器集合)生成的中间 C 代码吗?

我正在使用 BCC 开发用于内核跟踪的 eBPF 程序。一旦我在运行我的代码时收到以下错误消息:

我知道我的代码有什么问题,而且很容易纠正。但我注意到有一个名为/virtual/main.c. 我猜 BCC 将我的原始 C 代码(传递给BPFPython 中的对象)转换为存储在名为/virtual/main.c. 然后中间的 C 代码通过Clangand编译成 BPF 字节码LLVM,BPF 代码最终被挂接到内核中。

我想知道我的猜测是否正确。如果是,有什么方法可以看到存储在其中的中间代码/virtual/main.c?我想知道密件抄送对我的原始代码做了哪些更改。

非常感谢!