flow_offload.h (da3eeb904ff432ec22cf7b4db17a47647428873a) flow_offload.h (67bd0d5ea7974d9dc9c502c7b4096e16a80a553d)
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 {

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

276struct flow_block_cb *flow_block_cb_alloc(struct net *net, tc_setup_cb_t *cb,
277 void *cb_ident, void *cb_priv,
278 void (*release)(void *cb_priv));
279void flow_block_cb_free(struct flow_block_cb *block_cb);
280
281struct flow_block_cb *flow_block_cb_lookup(struct flow_block_offload *offload,
282 tc_setup_cb_t *cb, void *cb_ident);
283
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 {

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

276struct flow_block_cb *flow_block_cb_alloc(struct net *net, tc_setup_cb_t *cb,
277 void *cb_ident, void *cb_priv,
278 void (*release)(void *cb_priv));
279void flow_block_cb_free(struct flow_block_cb *block_cb);
280
281struct flow_block_cb *flow_block_cb_lookup(struct flow_block_offload *offload,
282 tc_setup_cb_t *cb, void *cb_ident);
283
284void *flow_block_cb_priv(struct flow_block_cb *block_cb);
285void flow_block_cb_incref(struct flow_block_cb *block_cb);
286unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb);
287
284static inline void flow_block_cb_add(struct flow_block_cb *block_cb,
285 struct flow_block_offload *offload)
286{
287 list_add_tail(&block_cb->list, &offload->cb_list);
288}
289
290static inline void flow_block_cb_remove(struct flow_block_cb *block_cb,
291 struct flow_block_offload *offload)
292{
293 list_move(&block_cb->list, &offload->cb_list);
294}
295
296int flow_block_cb_setup_simple(struct flow_block_offload *f,
297 struct list_head *driver_list, tc_setup_cb_t *cb,
298 void *cb_ident, void *cb_priv, bool ingress_only);
299
300#endif /* _NET_FLOW_OFFLOAD_H */
288static inline void flow_block_cb_add(struct flow_block_cb *block_cb,
289 struct flow_block_offload *offload)
290{
291 list_add_tail(&block_cb->list, &offload->cb_list);
292}
293
294static inline void flow_block_cb_remove(struct flow_block_cb *block_cb,
295 struct flow_block_offload *offload)
296{
297 list_move(&block_cb->list, &offload->cb_list);
298}
299
300int flow_block_cb_setup_simple(struct flow_block_offload *f,
301 struct list_head *driver_list, tc_setup_cb_t *cb,
302 void *cb_ident, void *cb_priv, bool ingress_only);
303
304#endif /* _NET_FLOW_OFFLOAD_H */