meson: remove dead dictionary access
[qemu/ar7.git] / qapi / ebpf.json
blobf413d00154afbb48926a8d72a31fa9bd72fd3295
1 # -*- Mode: Python -*-
2 # vim: filetype=python
4 # This work is licensed under the terms of the GNU GPL, version 2 or later.
5 # See the COPYING file in the top-level directory.
7 ##
8 # = eBPF Objects
10 # eBPF object is an ELF binary that contains the eBPF
11 # program and eBPF map description(BTF). Overall, eBPF
12 # object should contain the program and enough metadata
13 # to create/load eBPF with libbpf. As the eBPF maps/program
14 # should correspond to QEMU, the eBPF can't be used from
15 # different QEMU build.
17 # Currently, there is a possible eBPF for receive-side scaling (RSS).
22 # @EbpfObject:
24 # An eBPF ELF object.
26 # @object: the eBPF object encoded in base64
28 # Since: 9.0
30 { 'struct': 'EbpfObject',
31   'data': {'object': 'str'},
32   'if': 'CONFIG_EBPF' }
35 # @EbpfProgramID:
37 # The eBPF programs that can be gotten with request-ebpf.
39 # @rss: Receive side scaling, technology that allows steering traffic
40 #     between queues by calculation hash.  Users may set up
41 #     indirection table and hash/packet types configurations.  Used
42 #     with virtio-net.
44 # Since: 9.0
46 { 'enum': 'EbpfProgramID',
47   'if': 'CONFIG_EBPF',
48   'data': [ { 'name': 'rss' } ] }
51 # @request-ebpf:
53 # Retrieve an eBPF object that can be loaded with libbpf.  Management
54 # applications (g.e. libvirt) may load it and pass file descriptors to
55 # QEMU, so they can run running QEMU without BPF capabilities.
57 # @id: The ID of the program to return.
59 # Returns: eBPF object encoded in base64.
61 # Since: 9.0
63 { 'command': 'request-ebpf',
64   'data': { 'id': 'EbpfProgramID' },
65   'returns': 'EbpfObject',
66   'if': 'CONFIG_EBPF' }