qemu/ebpf/ebpf_rss.h
<<
>>
Prefs
   1/*
   2 * eBPF RSS header
   3 *
   4 * Developed by Daynix Computing LTD (http://www.daynix.com)
   5 *
   6 * Authors:
   7 *  Andrew Melnychenko <andrew@daynix.com>
   8 *  Yuri Benditovich <yuri.benditovich@daynix.com>
   9 *
  10 * This work is licensed under the terms of the GNU GPL, version 2.  See
  11 * the COPYING file in the top-level directory.
  12 */
  13
  14#ifndef QEMU_EBPF_RSS_H
  15#define QEMU_EBPF_RSS_H
  16
  17struct EBPFRSSContext {
  18    void *obj;
  19    int program_fd;
  20    int map_configuration;
  21    int map_toeplitz_key;
  22    int map_indirections_table;
  23};
  24
  25struct EBPFRSSConfig {
  26    uint8_t redirect;
  27    uint8_t populate_hash;
  28    uint32_t hash_types;
  29    uint16_t indirections_len;
  30    uint16_t default_queue;
  31} __attribute__((packed));
  32
  33void ebpf_rss_init(struct EBPFRSSContext *ctx);
  34
  35bool ebpf_rss_is_loaded(struct EBPFRSSContext *ctx);
  36
  37bool ebpf_rss_load(struct EBPFRSSContext *ctx);
  38
  39bool ebpf_rss_set_all(struct EBPFRSSContext *ctx, struct EBPFRSSConfig *config,
  40                      uint16_t *indirections_table, uint8_t *toeplitz_key);
  41
  42void ebpf_rss_unload(struct EBPFRSSContext *ctx);
  43
  44#endif /* QEMU_EBPF_RSS_H */
  45