Thread (42 messages) flat view 42 messages, 4 authors, 2014-09-17

Re: [PATCH v11 net-next 00/12] eBPF syscall, verifier, testsuite

From: Alexei Starovoitov <hidden>
Date: 2014-09-10 17:32:44
Also in: lkml, netdev

On Wed, Sep 10, 2014 at 2:03 AM, Daniel Borkmann [off-list ref] wrote:
quoted
            struct { /* anonymous struct used by BPF_PROG_LOAD command */
                enum bpf_prog_type    prog_type;
                __u32                 insn_cnt;
                const struct bpf_insn *insns;
                const char            *license;
                __u32                 log_level; /* verbosity level of
eBPF verifier */
                __u32                 log_size;  /* size of user buffer */
                void                  *log_buf;  /* user supplied buffer
*/

What is log buffer? Would that mean the verifier will return an error
string if the program will not pass it, or if not, what other data?
I think the man page is missing how to examine the returned verifier
log buffer data.
yes. it's an error log (as text string for humans) from verifier.
It is briefly explained in the man page:
       EACCES For BPF_PROG_LOAD, though program has valid instructions, it was
              rejected, since it was deemed unsafe (may access disallowed mem-
              ory region or  uninitialized  stack/register  or  function  con-
              straints don't match actual types or misaligned access). In such
              case it is recommended to call bpf() again with  log_level  =  1
              and examine log_buf for specific reason provided by verifier.
and there is a whole section about it in
Documentation/networking/filter.txt
called "Understanding eBPF verifier messages".
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help