代码之家  ›  专栏  ›  技术社区  ›  dippynark

如何计算BPF helper函数的返回代码的含义?

  •  0
  • dippynark  · 技术社区  · 6 年前

    我在写 BPF_PROG_TYPE_SOCKET_OPS 程序和我看到下面的 /sys/kernel/debug/tracing/trace_pipe

    <...>-12586 [001] ....  6972.409111: 0: update err: -95
    

    当我由于以下代码片段加载它时:

    ret = bpf_sock_map_update(ops, &sock_ops, &idx, BPF_ANY);
    if (ret < 0) {
        bpf_debug("update err: %d\n", ret);
    }
    

    我怎么知道-95是什么意思?当我往里看的时候 https://elixir.bootlin.com/linux/latest/source/arch/alpha/include/uapi/asm/errno.h 我懂了:

    #define ENOCSI      95  /* No CSI structure available */
    

    这是找到错误含义的正确方法吗?如果是的话,描述的意思是什么?

    0 回复  |  直到 6 年前
        1
  •  1
  •   dippynark    6 年前

    错误是 EOPNOTSUPP here . 这是由于试图添加套接字时套接字未“满”(即TCP连接 must be established ).