问题标签 [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.
c - 是否有通过 bpf_trace 获取进程的功能?
上下文:我正在尝试跟踪特定端口的数据包并将其重定向但针对特定进程。现在它跟踪整个界面。
我得到的输出
是否有任何功能可以 grepnc
并且如果跟踪 udp 端口 7999 我可以使用 XDP_DROP 丢弃数据包。
如果 process == nc && udp->dest == ntohs(7999) XDP_DROP 是这样的
c - eBPF bcctools 从 tracepipe 获取内容
这是一个跟踪tracepipe中通信的小程序。我的问题是如何使用 bcctools 访问 tracepipe 的内容。我尝试使用手动读取文件,fopen
但这不起作用,有什么我不知道的功能吗?
bpf - “程序太大”阈值大于实际指令数
我已经编写了几个生产 BPF 代理,但我的方法是非常迭代的,直到我取悦验证者并可以继续前进。我又一次达到了极限。
这是一个程序,如果我的&&
条件少一个,它就可以工作——否则就会中断。令人困惑的部分是警告意味着103 insns
大于at most 4096 insns
。显然,我对这一切是如何串在一起的有一些误解。
我的最终目标是基于进程环境进行日志记录——因此欢迎使用替代方法。:)
错误:
BPF 来源:
用于复制的基本加载程序:
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 函数中使用它,而且该解决方案是否有意义。感谢您的帮助,非常感谢。
c - 使用 bcc 和 xdp 更新目标端口
我正在容器中的端口 80 中运行应用程序。现在我想通过使用端口 90 来调用它,xdp 会将端口从 90 更改为 80。但是由于某种原因,我得到了任何响应,或者服务器也没有得到任何调用。这是我的 ebf 代码:
仅供参考,我正在使用 bcc 库并在那里创建了一个问题。任何建议将不胜感激。 https://github.com/iovisor/bcc/issues/3829
注意:我使用的是环回lo
接口。
c - 我可以访问由 BCC(BPF 编译器集合)生成的中间 C 代码吗?
我正在使用 BCC 开发用于内核跟踪的 eBPF 程序。一旦我在运行我的代码时收到以下错误消息:
我知道我的代码有什么问题,而且很容易纠正。但我注意到有一个名为/virtual/main.c
. 我猜 BCC 将我的原始 C 代码(传递给BPF
Python 中的对象)转换为存储在名为/virtual/main.c
. 然后中间的 C 代码通过Clang
and编译成 BPF 字节码LLVM
,BPF 代码最终被挂接到内核中。
我想知道我的猜测是否正确。如果是,有什么方法可以看到存储在其中的中间代码/virtual/main.c
?我想知道密件抄送对我的原始代码做了哪些更改。
非常感谢!