Lines Matching +full:key +full:- +full:release
12 void *key; member
16 struct flow_dissector_key_meta *key, *mask; member
20 struct flow_dissector_key_basic *key, *mask; member
24 struct flow_dissector_key_control *key, *mask; member
28 struct flow_dissector_key_eth_addrs *key, *mask; member
32 struct flow_dissector_key_vlan *key, *mask; member
36 struct flow_dissector_key_ipv4_addrs *key, *mask; member
40 struct flow_dissector_key_ipv6_addrs *key, *mask; member
44 struct flow_dissector_key_ip *key, *mask; member
48 struct flow_dissector_key_ports *key, *mask; member
52 struct flow_dissector_key_ports_range *key, *mask; member
56 struct flow_dissector_key_icmp *key, *mask; member
60 struct flow_dissector_key_tcp *key, *mask; member
64 struct flow_dissector_key_mpls *key, *mask; member
68 struct flow_dissector_key_keyid *key, *mask; member
72 struct flow_dissector_key_enc_opts *key, *mask; member
76 struct flow_dissector_key_ct *key, *mask; member
80 struct flow_dissector_key_pppoe *key, *mask; member
84 struct flow_dissector_key_l2tpv3 *key, *mask; member
206 FLOW_ACTION_HW_STATS_DONT_CARE = BIT(FLOW_ACTION_HW_STATS_NUM_BITS) - 1,
325 return action->num_entries; in flow_action_has_entries()
329 * flow_offload_has_one_action() - check if exactly one action is present
336 return action->num_entries == 1; in flow_offload_has_one_action()
342 return entry == &action->entries[action->num_entries - 1]; in flow_action_is_last_entry()
346 for (__i = 0, __act = &(__actions)->entries[0]; \
347 __i < (__actions)->num_entries; \
348 __act = &(__actions)->entries[++__i])
362 if (i && action_entry->hw_stats != last_hw_stats) { in flow_action_mixed_hw_stats_check()
366 last_hw_stats = action_entry->hw_stats; in flow_action_mixed_hw_stats_check()
375 return &action->entries[0]; in flow_action_first_entry_get()
394 WARN_ON_ONCE(!action_entry->hw_stats); in __flow_action_hw_stats_check()
397 ~action_entry->hw_stats & FLOW_ACTION_HW_STATS_ANY) { in __flow_action_hw_stats_check()
401 !(action_entry->hw_stats & BIT(allow_bit))) { in __flow_action_hw_stats_check()
431 enum flow_dissector_key_id key) in flow_rule_match_key() argument
433 return dissector_uses_key(rule->match.dissector, key); in flow_rule_match_key()
450 flow_stats->pkts += pkts; in flow_stats_update()
451 flow_stats->bytes += bytes; in flow_stats_update()
452 flow_stats->drops += drops; in flow_stats_update()
453 flow_stats->lastused = max_t(u64, flow_stats->lastused, lastused); in flow_stats_update()
459 flow_stats->used_hw_stats |= used_hw_stats; in flow_stats_update()
460 flow_stats->used_hw_stats_valid = true; in flow_stats_update()
518 void (*release)(void *cb_priv); member
525 void (*release)(void *cb_priv));
528 void (*release)(void *cb_priv),
546 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add()
552 list_move(&block_cb->list, &offload->cb_list); in flow_block_cb_remove()
558 list_del(&block_cb->indr.list); in flow_indr_block_cb_remove()
559 list_move(&block_cb->list, &offload->cb_list); in flow_indr_block_cb_remove()
614 return flow_cmd->rule; in flow_cls_offload_flow_rule()
619 INIT_LIST_HEAD(&flow_block->cb_list); in flow_block_init()
629 void (*release)(void *cb_priv));