flow_offload.h (32f8c4093ac353a5f1b36cfed0ce0138faf8e15f) flow_offload.h (d63db30c8537ba45208c156d71125db73d0fe522)
1#ifndef _NET_FLOW_OFFLOAD_H
2#define _NET_FLOW_OFFLOAD_H
3
4#include <linux/kernel.h>
5#include <net/flow_dissector.h>
6#include <net/sch_generic.h>
7
8struct flow_match {

--- 246 unchanged lines hidden (view full) ---

255struct flow_block_offload {
256 enum flow_block_command command;
257 enum flow_block_binder_type binder_type;
258 struct tcf_block *block;
259 struct list_head *driver_block_list;
260 struct netlink_ext_ack *extack;
261};
262
1#ifndef _NET_FLOW_OFFLOAD_H
2#define _NET_FLOW_OFFLOAD_H
3
4#include <linux/kernel.h>
5#include <net/flow_dissector.h>
6#include <net/sch_generic.h>
7
8struct flow_match {

--- 246 unchanged lines hidden (view full) ---

255struct flow_block_offload {
256 enum flow_block_command command;
257 enum flow_block_binder_type binder_type;
258 struct tcf_block *block;
259 struct list_head *driver_block_list;
260 struct netlink_ext_ack *extack;
261};
262
263struct flow_block_cb {
264 struct list_head list;
265 tc_setup_cb_t *cb;
266 void *cb_ident;
267 void *cb_priv;
268 void (*release)(void *cb_priv);
269 unsigned int refcnt;
270};
271
272struct flow_block_cb *flow_block_cb_alloc(struct net *net, tc_setup_cb_t *cb,
273 void *cb_ident, void *cb_priv,
274 void (*release)(void *cb_priv));
275void flow_block_cb_free(struct flow_block_cb *block_cb);
276
263int flow_block_cb_setup_simple(struct flow_block_offload *f,
264 struct list_head *driver_list, tc_setup_cb_t *cb,
265 void *cb_ident, void *cb_priv, bool ingress_only);
266
267#endif /* _NET_FLOW_OFFLOAD_H */
277int flow_block_cb_setup_simple(struct flow_block_offload *f,
278 struct list_head *driver_list, tc_setup_cb_t *cb,
279 void *cb_ident, void *cb_priv, bool ingress_only);
280
281#endif /* _NET_FLOW_OFFLOAD_H */