| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0 */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) 2002 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) |
|---|
| 3 | | - * Licensed under the GPL |
|---|
| 4 | 4 | */ |
|---|
| 5 | 5 | |
|---|
| 6 | 6 | #ifndef __UM_VECTOR_KERN_H |
|---|
| .. | .. |
|---|
| 29 | 29 | #define VECTOR_TX (1 << 1) |
|---|
| 30 | 30 | #define VECTOR_BPF (1 << 2) |
|---|
| 31 | 31 | #define VECTOR_QDISC_BYPASS (1 << 3) |
|---|
| 32 | +#define VECTOR_BPF_FLASH (1 << 4) |
|---|
| 32 | 33 | |
|---|
| 33 | 34 | #define ETH_MAX_PACKET 1500 |
|---|
| 34 | 35 | #define ETH_HEADER_OTHER 32 /* just in case someone decides to go mad on QnQ */ |
|---|
| 36 | + |
|---|
| 37 | +#define MAX_FILTER_PROG (2 << 16) |
|---|
| 35 | 38 | |
|---|
| 36 | 39 | struct vector_queue { |
|---|
| 37 | 40 | struct mmsghdr *mmsg_vector; |
|---|
| .. | .. |
|---|
| 116 | 119 | bool rexmit_scheduled; |
|---|
| 117 | 120 | bool opened; |
|---|
| 118 | 121 | bool in_write_poll; |
|---|
| 122 | + bool in_error; |
|---|
| 123 | + |
|---|
| 124 | + /* guest allowed to use ethtool flash to load bpf */ |
|---|
| 125 | + bool bpf_via_flash; |
|---|
| 119 | 126 | |
|---|
| 120 | 127 | /* ethtool stats */ |
|---|
| 121 | 128 | |
|---|
| 122 | 129 | struct vector_estats estats; |
|---|
| 123 | | - void *bpf; |
|---|
| 130 | + struct sock_fprog *bpf; |
|---|
| 124 | 131 | |
|---|
| 125 | | - char user[0]; |
|---|
| 132 | + char user[]; |
|---|
| 126 | 133 | }; |
|---|
| 127 | 134 | |
|---|
| 128 | 135 | extern int build_transport_data(struct vector_private *vp); |
|---|