flow_offload.h (08a7c7772b4db0be06e3b27239147c0a36e2a507) flow_offload.h (4b61d3e8d3daebbde7ec02d593f84248fdf8bec2)
1#ifndef _NET_FLOW_OFFLOAD_H
2#define _NET_FLOW_OFFLOAD_H
3
4#include <linux/kernel.h>
5#include <linux/list.h>
6#include <linux/netlink.h>
7#include <net/flow_dissector.h>
8#include <linux/rhashtable.h>

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

384 enum flow_dissector_key_id key)
385{
386 return dissector_uses_key(rule->match.dissector, key);
387}
388
389struct flow_stats {
390 u64 pkts;
391 u64 bytes;
1#ifndef _NET_FLOW_OFFLOAD_H
2#define _NET_FLOW_OFFLOAD_H
3
4#include <linux/kernel.h>
5#include <linux/list.h>
6#include <linux/netlink.h>
7#include <net/flow_dissector.h>
8#include <linux/rhashtable.h>

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

384 enum flow_dissector_key_id key)
385{
386 return dissector_uses_key(rule->match.dissector, key);
387}
388
389struct flow_stats {
390 u64 pkts;
391 u64 bytes;
392 u64 drops;
392 u64 lastused;
393 enum flow_action_hw_stats used_hw_stats;
394 bool used_hw_stats_valid;
395};
396
397static inline void flow_stats_update(struct flow_stats *flow_stats,
393 u64 lastused;
394 enum flow_action_hw_stats used_hw_stats;
395 bool used_hw_stats_valid;
396};
397
398static inline void flow_stats_update(struct flow_stats *flow_stats,
398 u64 bytes, u64 pkts, u64 lastused,
399 u64 bytes, u64 pkts,
400 u64 drops, u64 lastused,
399 enum flow_action_hw_stats used_hw_stats)
400{
401 flow_stats->pkts += pkts;
402 flow_stats->bytes += bytes;
401 enum flow_action_hw_stats used_hw_stats)
402{
403 flow_stats->pkts += pkts;
404 flow_stats->bytes += bytes;
405 flow_stats->drops += drops;
403 flow_stats->lastused = max_t(u64, flow_stats->lastused, lastused);
404
405 /* The driver should pass value with a maximum of one bit set.
406 * Passing FLOW_ACTION_HW_STATS_ANY is invalid.
407 */
408 WARN_ON(used_hw_stats == FLOW_ACTION_HW_STATS_ANY);
409 flow_stats->used_hw_stats |= used_hw_stats;
410 flow_stats->used_hw_stats_valid = true;

--- 135 unchanged lines hidden ---
406 flow_stats->lastused = max_t(u64, flow_stats->lastused, lastused);
407
408 /* The driver should pass value with a maximum of one bit set.
409 * Passing FLOW_ACTION_HW_STATS_ANY is invalid.
410 */
411 WARN_ON(used_hw_stats == FLOW_ACTION_HW_STATS_ANY);
412 flow_stats->used_hw_stats |= used_hw_stats;
413 flow_stats->used_hw_stats_valid = true;

--- 135 unchanged lines hidden ---