| /linux/tools/testing/selftests/tc-testing/tc-tests/filters/ |
| H A D | flow.json | 4 "name": "Add flow filter with map key and ops", 7 "flow" 15 …"cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 protocol ip flow map key ds… 17 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 protocol ip prio 1 flow", 18 …"matchPattern": "filter parent ffff: protocol ip pref 1 flow chain [0-9]+ handle 0x1 map keys dst … 26 "name": "Add flow filter with map key or ops", 29 "flow" 37 …"cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 protocol ip flow map key ds… 39 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 protocol ip prio 1 flow", 40 …"matchPattern": "filter parent ffff: protocol ip pref 1 flow chain [0-9]+ handle 0x1 map keys dst.… [all …]
|
| /linux/drivers/net/phy/mscc/ |
| H A D | mscc_macsec.c | 371 struct macsec_flow *flow) in vsc8584_macsec_flow() argument 374 enum macsec_bank bank = flow->bank; in vsc8584_macsec_flow() 375 u32 val, match = 0, mask = 0, action = 0, idx = flow->index; in vsc8584_macsec_flow() 377 if (flow->match.tagged) in vsc8584_macsec_flow() 379 if (flow->match.untagged) in vsc8584_macsec_flow() 382 if (bank == MACSEC_INGR && flow->assoc_num >= 0) { in vsc8584_macsec_flow() 383 match |= MSCC_MS_SAM_MISC_MATCH_AN(flow->assoc_num); in vsc8584_macsec_flow() 387 if (bank == MACSEC_INGR && flow->match.sci && flow->rx_sa->sc->sci) { in vsc8584_macsec_flow() 388 u64 sci = (__force u64)flow->rx_sa->sc->sci; in vsc8584_macsec_flow() 400 if (flow->match.etype) { in vsc8584_macsec_flow() [all …]
|
| /linux/include/net/ |
| H A D | fq_impl.h | 16 __fq_adjust_removal(struct fq *fq, struct fq_flow *flow, unsigned int packets, in __fq_adjust_removal() argument 19 struct fq_tin *tin = flow->tin; in __fq_adjust_removal() 24 flow->backlog -= bytes; in __fq_adjust_removal() 28 if (flow->backlog) in __fq_adjust_removal() 31 if (flow == &tin->default_flow) { in __fq_adjust_removal() 36 idx = flow - fq->flows; in __fq_adjust_removal() 41 struct fq_flow *flow, in fq_adjust_removal() argument 44 __fq_adjust_removal(fq, flow, 1, skb->len, skb->truesize); in fq_adjust_removal() 48 struct fq_flow *flow) in fq_flow_dequeue() argument 54 skb = __skb_dequeue(&flow->queue); in fq_flow_dequeue() [all …]
|
| /linux/drivers/gpu/ipu-v3/ |
| H A D | ipu-dp.c | 46 u32 flow; member 64 struct ipu_flow flow[IPUV3_NUM_FLOWS]; member 82 struct ipu_flow *flow = to_flow(dp); in ipu_dp_set_global_alpha() local 83 struct ipu_dp_priv *priv = flow->priv; in ipu_dp_set_global_alpha() 88 reg = readl(flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha() 93 writel(reg, flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha() 96 reg = readl(flow->base + DP_GRAPH_WIND_CTRL) & 0x00FFFFFFL; in ipu_dp_set_global_alpha() 98 flow->base + DP_GRAPH_WIND_CTRL); in ipu_dp_set_global_alpha() 100 reg = readl(flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha() 101 writel(reg | DP_COM_CONF_GWAM, flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha() [all …]
|
| /linux/net/netfilter/ |
| H A D | nf_flow_table_core.c | 22 flow_offload_fill_dir(struct flow_offload *flow, in flow_offload_fill_dir() argument 25 struct flow_offload_tuple *ft = &flow->tuplehash[dir].tuple; in flow_offload_fill_dir() 26 struct nf_conntrack_tuple *ctt = &flow->ct->tuplehash[dir].tuple; in flow_offload_fill_dir() 55 struct flow_offload *flow; in flow_offload_alloc() local 60 flow = kmem_cache_zalloc(flow_offload_cachep, GFP_ATOMIC); in flow_offload_alloc() 61 if (!flow) in flow_offload_alloc() 65 flow->ct = ct; in flow_offload_alloc() 67 flow_offload_fill_dir(flow, FLOW_OFFLOAD_DIR_ORIGINAL); in flow_offload_alloc() 68 flow_offload_fill_dir(flow, FLOW_OFFLOAD_DIR_REPLY); in flow_offload_alloc() 71 __set_bit(NF_FLOW_SNAT, &flow in flow_offload_alloc() 97 flow_offload_fill_route(struct flow_offload * flow,struct nf_flow_route * route,enum flow_offload_tuple_dir dir) flow_offload_fill_route() argument 158 nft_flow_dst_release(struct flow_offload * flow,enum flow_offload_tuple_dir dir) nft_flow_dst_release() argument 164 flow_offload_route_init(struct flow_offload * flow,struct nf_flow_route * route) flow_offload_route_init() argument 173 nf_flow_has_expired(const struct flow_offload * flow) nf_flow_has_expired() argument 201 flow_offload_fixup_ct(struct flow_offload * flow) flow_offload_fixup_ct() argument 255 flow_offload_route_release(struct flow_offload * flow) flow_offload_route_release() argument 263 struct flow_offload *flow = container_of(rcu_head, struct flow_offload, rcu_head); flow_offload_free_rcu() local 269 flow_offload_free(struct flow_offload * flow) flow_offload_free() argument 316 flow_offload_get_timeout(struct flow_offload * flow) flow_offload_get_timeout() argument 335 flow_offload_add(struct nf_flowtable * flow_table,struct flow_offload * flow) flow_offload_add() argument 368 flow_offload_refresh(struct nf_flowtable * flow_table,struct flow_offload * flow,bool force) flow_offload_refresh() argument 388 flow_offload_del(struct nf_flowtable * flow_table,struct flow_offload * flow) flow_offload_del() argument 399 flow_offload_teardown(struct flow_offload * flow) flow_offload_teardown() argument 412 struct flow_offload *flow; flow_offload_lookup() local 435 nf_flow_table_iterate(struct nf_flowtable * flow_table,void (* iter)(struct nf_flowtable * flowtable,struct flow_offload * flow,void * data),void * data) nf_flow_table_iterate() argument 440 struct flow_offload *flow; nf_flow_table_iterate() local 468 nf_flow_custom_gc(struct nf_flowtable * flow_table,const struct flow_offload * flow) nf_flow_custom_gc() argument 576 nf_flow_offload_gc_step(struct nf_flowtable * flow_table,struct flow_offload * flow,void * data) nf_flow_offload_gc_step() argument 659 nf_flow_snat_port(const struct flow_offload * flow,struct sk_buff * skb,unsigned int thoff,u8 protocol,enum flow_offload_tuple_dir dir) nf_flow_snat_port() argument 685 nf_flow_dnat_port(const struct flow_offload * flow,struct sk_buff * skb,unsigned int thoff,u8 protocol,enum flow_offload_tuple_dir dir) nf_flow_dnat_port() argument 736 nf_flow_table_do_cleanup(struct nf_flowtable * flow_table,struct flow_offload * flow,void * data) nf_flow_table_do_cleanup() argument [all...] |
| H A D | nf_flow_table_offload.c | 28 struct flow_offload *flow; member 233 const struct flow_offload *flow, in flow_offload_eth_src() argument 248 this_tuple = &flow->tuplehash[dir].tuple; in flow_offload_eth_src() 255 other_tuple = &flow->tuplehash[!dir].tuple; in flow_offload_eth_src() 283 const struct flow_offload *flow, in flow_offload_eth_dst() argument 301 this_tuple = &flow->tuplehash[dir].tuple; in flow_offload_eth_dst() 308 other_tuple = &flow->tuplehash[!dir].tuple; in flow_offload_eth_dst() 343 const struct flow_offload *flow, in flow_offload_ipv4_snat() argument 357 addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr; in flow_offload_ipv4_snat() 361 addr = flow in flow_offload_ipv4_snat() 374 flow_offload_ipv4_dnat(struct net * net,const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_ipv4_dnat() argument 424 flow_offload_ipv6_snat(struct net * net,const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_ipv6_snat() argument 449 flow_offload_ipv6_dnat(struct net * net,const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_ipv6_dnat() argument 473 flow_offload_l4proto(const struct flow_offload * flow) flow_offload_l4proto() argument 493 flow_offload_port_snat(struct net * net,const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_port_snat() argument 527 flow_offload_port_dnat(struct net * net,const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_port_dnat() argument 561 flow_offload_ipv4_checksum(struct net * net,const struct flow_offload * flow,struct nf_flow_rule * flow_rule) flow_offload_ipv4_checksum() argument 586 flow_offload_redirect(struct net * net,const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_redirect() argument 625 flow_offload_encap_tunnel(const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_encap_tunnel() argument 654 flow_offload_decap_tunnel(const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) flow_offload_decap_tunnel() argument 683 nf_flow_rule_route_common(struct net * net,const struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) nf_flow_rule_route_common() argument 743 nf_flow_rule_route_ipv4(struct net * net,struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) nf_flow_rule_route_ipv4() argument 772 nf_flow_rule_route_ipv6(struct net * net,struct flow_offload * flow,enum flow_offload_tuple_dir dir,struct nf_flow_rule * flow_rule) nf_flow_rule_route_ipv6() argument 804 struct flow_offload *flow = offload->flow; nf_flow_offload_rule_alloc() local 902 nf_flow_offload_tuple(struct nf_flowtable * flowtable,struct flow_offload * flow,struct nf_flow_rule * flow_rule,enum flow_offload_tuple_dir dir,int priority,int cmd,struct flow_stats * stats,struct list_head * block_cb_list) nf_flow_offload_tuple() argument 1088 nf_flow_offload_work_alloc(struct nf_flowtable * flowtable,struct flow_offload * flow,unsigned int cmd) nf_flow_offload_work_alloc() argument 1109 nf_flow_offload_unsupported(struct flow_offload * flow) nf_flow_offload_unsupported() argument 1119 nf_flow_offload_refresh(struct nf_flowtable * flowtable,struct flow_offload * flow) nf_flow_offload_refresh() argument 1131 nf_flow_offload_add(struct nf_flowtable * flowtable,struct flow_offload * flow) nf_flow_offload_add() argument 1141 nf_flow_offload_del(struct nf_flowtable * flowtable,struct flow_offload * flow) nf_flow_offload_del() argument 1154 nf_flow_offload_stats(struct nf_flowtable * flowtable,struct flow_offload * flow) nf_flow_offload_stats() argument [all...] |
| H A D | nf_tables_offload.c | 12 struct nft_flow_rule *flow; in nft_flow_rule_alloc() local 14 flow = kzalloc_obj(struct nft_flow_rule); in nft_flow_rule_alloc() 15 if (!flow) in nft_flow_rule_alloc() 18 flow->rule = flow_rule_alloc(num_actions); in nft_flow_rule_alloc() 19 if (!flow->rule) { in nft_flow_rule_alloc() 20 kfree(flow); in nft_flow_rule_alloc() 24 flow->rule->match.dissector = &flow->match.dissector; in nft_flow_rule_alloc() 25 flow->rule->match.mask = &flow->match.mask; in nft_flow_rule_alloc() 26 flow->rule->match.key = &flow->match.key; in nft_flow_rule_alloc() 28 return flow; in nft_flow_rule_alloc() [all …]
|
| H A D | nf_flow_table_ip.c | 25 static int nf_flow_state_check(struct flow_offload *flow, int proto, in nf_flow_state_check() argument 34 if (tcph->syn && test_bit(NF_FLOW_CLOSING, &flow->flags)) { in nf_flow_state_check() 35 flow_offload_teardown(flow); in nf_flow_state_check() 40 !test_bit(NF_FLOW_CLOSING, &flow->flags)) in nf_flow_state_check() 41 set_bit(NF_FLOW_CLOSING, &flow->flags); in nf_flow_state_check() 83 static void nf_flow_snat_ip(const struct flow_offload *flow, in nf_flow_snat_ip() argument 92 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr; in nf_flow_snat_ip() 97 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr; in nf_flow_snat_ip() 106 static void nf_flow_dnat_ip(const struct flow_offload *flow, in nf_flow_dnat_ip() argument 115 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_v4.s_addr; in nf_flow_dnat_ip() [all …]
|
| /linux/Documentation/networking/ |
| H A D | openvswitch.rst | 8 flow-level packet processing on selected network devices. It can be 10 VLAN processing, network access control, flow-based network control, 15 within a bridge). Each datapath also has associated with it a "flow 22 extracting its flow key and looking it up in the flow table. If there 23 is a matching flow, it executes the associated actions. If there is 25 its processing, userspace will likely set up a flow to handle further 29 Flow key compatibility 35 versions to parse additional protocols as part of the flow key. It 39 applications to work with any version of the flow key, past or future. 43 flow key that it parsed from the packet. Userspace then extracts its [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | tc_priv.h | 93 /* Flow can be associated with multiple encap IDs. 100 struct list_head peer[MLX5_MAX_PORTS]; /* flows with peer flow */ 108 int peer_index; /* peer-flow index pinned at add time, used at del 112 struct net_device *orig_dev; /* netdev adding flow first */ 114 struct list_head tmp_list; /* temporary flow list used by neigh update */ 139 struct mlx5e_tc_flow *flow, 144 mlx5e_tc_get_encap_attr(struct mlx5e_tc_flow *flow); 146 void mlx5e_tc_unoffload_flow_post_acts(struct mlx5e_tc_flow *flow); 147 int mlx5e_tc_offload_flow_post_acts(struct mlx5e_tc_flow *flow); 149 bool mlx5e_is_eswitch_flow(struct mlx5e_tc_flow *flow); [all …]
|
| /linux/drivers/net/ethernet/broadcom/bnxt/ |
| H A D | bnxt_tc.c | 44 /* Return the dst fid of the func for flow forwarding 370 struct bnxt_tc_flow *flow) in bnxt_tc_parse_flow() argument 391 flow->l2_key.ether_type = match.key->n_proto; in bnxt_tc_parse_flow() 392 flow->l2_mask.ether_type = match.mask->n_proto; in bnxt_tc_parse_flow() 396 flow->l4_key.ip_proto = match.key->ip_proto; in bnxt_tc_parse_flow() 397 flow->l4_mask.ip_proto = match.mask->ip_proto; in bnxt_tc_parse_flow() 405 flow->flags |= BNXT_TC_FLOW_FLAGS_ETH_ADDRS; in bnxt_tc_parse_flow() 406 ether_addr_copy(flow->l2_key.dmac, match.key->dst); in bnxt_tc_parse_flow() 407 ether_addr_copy(flow->l2_mask.dmac, match.mask->dst); in bnxt_tc_parse_flow() 408 ether_addr_copy(flow->l2_key.smac, match.key->src); in bnxt_tc_parse_flow() [all …]
|
| /linux/net/openvswitch/ |
| H A D | flow_table.c | 6 #include "flow.h" 74 struct sw_flow *flow; in ovs_flow_alloc() local 77 flow = kmem_cache_zalloc(flow_cache, GFP_KERNEL); in ovs_flow_alloc() 78 if (!flow) in ovs_flow_alloc() 81 flow->stats_last_writer = -1; in ovs_flow_alloc() 82 flow->cpu_used_mask = (struct cpumask *)&flow->stats[nr_cpu_ids]; in ovs_flow_alloc() 93 RCU_INIT_POINTER(flow->stats[0], stats); in ovs_flow_alloc() 95 cpumask_set_cpu(0, flow->cpu_used_mask); in ovs_flow_alloc() 97 return flow; in ovs_flow_alloc() 99 kmem_cache_free(flow_cache, flow); in ovs_flow_alloc() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | en_tc.c | 173 * last flow from a group and then deleting a group, we get into del_sw_flow_group() 180 static void mlx5e_put_flow_tunnel_id(struct mlx5e_tc_flow *flow); 181 static void free_flow_post_acts(struct mlx5e_tc_flow *flow); 182 static void mlx5_free_flow_attr_actions(struct mlx5e_tc_flow *flow, 454 mlx5_core_err(priv->mdev, "Failed to get flow meter\n"); in mlx5e_tc_add_flow_meter() 605 struct mlx5e_tc_flow *flow); 607 struct mlx5e_tc_flow *mlx5e_flow_get(struct mlx5e_tc_flow *flow) in mlx5e_flow_get() argument 609 if (!flow || !refcount_inc_not_zero(&flow->refcnt)) in mlx5e_flow_get() 611 return flow; in mlx5e_flow_get() 614 void mlx5e_flow_put(struct mlx5e_priv *priv, struct mlx5e_tc_flow *flow) in mlx5e_flow_put() argument [all …]
|
| /linux/drivers/infiniband/hw/hfi1/ |
| H A D | tid_rdma.c | 37 /* Maximum number of packets within a flow generation. */ 134 struct tid_rdma_flow *flow, 439 /* Flow and tid waiter functions */ 529 * This should be done after the hardware flow and 698 /* Flow functions */ 700 * kern_reserve_flow - allocate a hardware flow 702 * @last: the index of the preferred flow. Use RXE_NUM_TID_FLOWS to 706 * flow for use in receiving KDETH data packets. If a preferred flow is 707 * specified the function will attempt to reserve that flow again, if 721 /* Attempt to reserve the preferred flow index */ in kern_reserve_flow() [all …]
|
| /linux/net/sched/ |
| H A D | sch_fq_codel.c | 32 * Each flow has a CoDel managed queue. 36 * For a given flow, packets are not reordered (CoDel uses a FIFO) 39 * Low memory footprint (64 bytes per flow) 116 static inline struct sk_buff *dequeue_head(struct fq_codel_flow *flow) in dequeue_head() argument 118 struct sk_buff *skb = flow->head; in dequeue_head() 120 WRITE_ONCE(flow->head, skb->next); in dequeue_head() 125 /* add skb to flow queue (tail add) */ 126 static inline void flow_queue_add(struct fq_codel_flow *flow, in flow_queue_add() argument 129 if (flow->head == NULL) in flow_queue_add() 130 WRITE_ONCE(flow in flow_queue_add() 143 struct fq_codel_flow *flow; fq_codel_drop() local 190 struct fq_codel_flow *flow; fq_codel_enqueue() local 261 struct fq_codel_flow *flow; dequeue_func() local 288 struct fq_codel_flow *flow; __fq_codel_dequeue() local 367 fq_codel_flow_purge(struct fq_codel_flow * flow) fq_codel_flow_purge() argument 381 struct fq_codel_flow *flow = q->flows + i; fq_codel_reset() local 551 struct fq_codel_flow *flow = q->flows + i; fq_codel_init() local 695 const struct fq_codel_flow *flow = &q->flows[idx]; fq_codel_dump_class_stats() local [all...] |
| H A D | sch_fq_pie.c | 2 /* Flow Queue PIE discipline 19 /* Flow Queue PIE 25 * - Each flow has a PIE managed queue. 28 * - For a given flow, packets are not reordered. 36 * struct fq_pie_flow - contains data for each flow 37 * @vars: pie vars associated with the flow 39 * @backlog: size of data in the flow 40 * @qlen: number of packets in the flow 41 * @flowchain: flowchain for the flow 42 * @head: first packet in the flow [all …]
|
| H A D | sch_hhf.c | 20 * buckets. Initially, a new flow starts as non-heavy-hitter. Once classified 37 * - For a heavy-hitter flow: *all* of its k array counters must be large. 38 * - For a non-heavy-hitter flow: some of its k array counters can be large 59 * Once a flow is classified as heavy-hitter, we also save its per-flow state 60 * in an exact-matching flow table so that its subsequent packets can be 66 * - If the flow-id of p (e.g., TCP 5-tuple) is already in the exact-matching 67 * heavy-hitter flow table, denoted table T, then send p to the heavy-hitter 70 * + If F decides that p belongs to a non-heavy-hitter flow, then send p 72 * + Otherwise, if F decides that p belongs to a new heavy-hitter flow, 73 * then set up a new flow entry for the flow-id of p in the table T and [all …]
|
| /linux/drivers/net/ethernet/netronome/nfp/flower/ |
| H A D | conntrack.h | 38 * struct nfp_fl_ct_zone_entry - Zone entry containing conntrack flow information 109 /* NFP flow entry flags. */ 114 * struct nfp_fl_ct_flow_entry - Flow entry containing conntrack flow information 115 * @cookie: Flow cookie, same as original TC flow, used as key 117 * @chain_index: Chain index of the original flow 118 * @goto_chain_index: goto chain index of the flow 121 * @children: List of tc_merge flows this flow forms part of 122 * @rule: Reference to the original TC flow rule 127 * @flags: Used to indicate flow flag like NAT which used by merge. 149 * @cookie: Flow cookie, combination of pre and post ct cookies [all …]
|
| H A D | offload.c | 589 nfp_flower_update_merge_with_actions(struct nfp_fl_payload *flow, in nfp_flower_update_merge_with_actions() argument 608 while (act_off < flow->meta.act_len) { in nfp_flower_update_merge_with_actions() 609 a = (struct nfp_fl_act_head *)&flow->action_data[act_off]; in nfp_flower_update_merge_with_actions() 705 nfp_flower_populate_merge_match(struct nfp_fl_payload *flow, in nfp_flower_populate_merge_match() argument 710 u8 *mask = flow->mask_data; in nfp_flower_populate_merge_match() 908 /* Copy any pre-actions to the start of merge flow action list. */ in nfp_flower_merge_action() 957 /* Flow link code should only be accessed under RTNL. */ 971 if (link->sub_flow.flow == sub_flow) { in nfp_flower_unlink_flows() 986 link->merge_flow.flow = merge_flow; in nfp_flower_link_flows() 988 link->sub_flow.flow = sub_flow; in nfp_flower_link_flows() [all …]
|
| /linux/Documentation/bpf/ |
| H A D | prog_flow_dissector.rst | 10 Flow dissector is a routine that parses metadata out of the packets. It's 11 used in the various places in the networking subsystem (RFS, flow hash, etc). 13 BPF flow dissector is an attempt to reimplement C-based flow dissector logic 20 BPF flow dissector programs operate on an ``__sk_buff``. However, only the 22 ``flow_keys`` is ``struct bpf_flow_keys`` and contains flow dissector input 31 Flow dissector BPF program should fill out the rest of the ``struct 41 In the VLAN-less case, this is what the initial state of the BPF flow 49 +-- flow dissector starts here 58 In case of VLAN, flow dissector can be called with the two different states. 67 +-- flow dissector starts here [all …]
|
| /linux/Documentation/core-api/ |
| H A D | genericirq.rst | 52 optimize the flow of the interrupt handling for each specific interrupt 58 the flow control in the super-handler. This leads to a mix of flow logic 62 have different flow handling. 64 A more natural abstraction is the clean separation of the 'irq flow' and 68 reveals that most of them can use a generic set of 'irq flow' methods 71 IRQ flow itself but not in the chip details - and thus provides a more 74 Each interrupt descriptor is assigned its own high-level flow handler, 76 flow handler implementation also makes it simple to provide 82 IRQ-flow implementation for 'level type' interrupts and add a 104 2. High-level IRQ flow handlers [all …]
|
| /linux/Documentation/hwmon/ |
| H A D | aquacomputer_d5next.rst | 14 * Aquacomputer High Flow Next sensor 19 * Aquacomputer High Flow USB flow meter 20 * Aquacomputer MPS Flow devices 31 virtual temperature sensors, as well as two flow sensors. The fans expose their 48 The Octo exposes four physical and sixteen virtual temperature sensors, a flow sensor 50 and current. Flow sensor pulses are also available. 52 The Quadro exposes four physical and sixteen virtual temperature sensors, a flow 54 voltage and current. Flow sensor pulses are also available. 59 The High Flow Next exposes +5V voltages, water quality, conductivity and flow readings. 65 filled with coolant. Pump RPM and flow can be set to enhance on-device calculations, [all …]
|
| /linux/samples/bpf/ |
| H A D | sockex2_kern.c | 62 struct flow_key_record *flow) in parse_ip() 72 flow->src = load_word(skb, nhoff + offsetof(struct iphdr, saddr)); in parse_ip() 73 flow->dst = load_word(skb, nhoff + offsetof(struct iphdr, daddr)); in parse_ip() 86 struct flow_key_record *flow) in parse_ipv6() 90 flow->src = ipv6_addr_hash(skb, in parse_ipv6() 92 flow->dst = ipv6_addr_hash(skb, in parse_ipv6() 100 struct flow_key_record *flow) in flow_dissector() 120 nhoff = parse_ip(skb, nhoff, &ip_proto, flow); in flow_dissector() 122 nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow); in flow_dissector() 158 nhoff = parse_ip(skb, nhoff, &ip_proto, flow); in flow_dissector() 63 parse_ip(struct __sk_buff * skb,__u64 nhoff,__u64 * ip_proto,struct flow_key_record * flow) parse_ip() argument 87 parse_ipv6(struct __sk_buff * skb,__u64 nhoff,__u64 * ip_proto,struct flow_key_record * flow) parse_ipv6() argument 101 flow_dissector(struct __sk_buff * skb,struct flow_key_record * flow) flow_dissector() argument 203 struct flow_key_record flow = {}; bpf_prog2() local [all...] |
| /linux/drivers/net/ethernet/intel/igc/ |
| H A D | igc_mac.c | 75 * igc_set_fc_watermarks - Set flow control high/low watermarks 78 * Sets the flow control high/low threshold (watermark) registers. If 79 * flow control XON frame transmission is enabled, then set XON frame 86 /* Set the flow control receive threshold registers. Normally, in igc_set_fc_watermarks() 110 * igc_setup_link - Setup flow control and link settings 113 * Determines which flow control settings to use, then configures flow 129 /* If requested flow control is set to default, set flow control in igc_setup_link() 135 /* We want to save off the original Flow Control configuration just in igc_setup_link() 137 * hub or switch with different Flow Control capabilities. in igc_setup_link() 148 /* Initialize the flow control address, type, and PAUSE timer in igc_setup_link() [all …]
|
| /linux/drivers/dma/ti/ |
| H A D | k3-udma-glue.c | 696 /* Default flow + extra ones */ in k3_udma_glue_cfg_rx_chn() 716 struct k3_udma_glue_rx_flow *flow = &rx_chn->flows[flow_num]; in k3_udma_glue_release_rx_flow() local 718 if (IS_ERR_OR_NULL(flow->udma_rflow)) in k3_udma_glue_release_rx_flow() 721 if (flow->ringrxfdq) in k3_udma_glue_release_rx_flow() 722 k3_ringacc_ring_free(flow->ringrxfdq); in k3_udma_glue_release_rx_flow() 724 if (flow->ringrx) in k3_udma_glue_release_rx_flow() 725 k3_ringacc_ring_free(flow->ringrx); in k3_udma_glue_release_rx_flow() 727 xudma_rflow_put(rx_chn->common.udmax, flow->udma_rflow); in k3_udma_glue_release_rx_flow() 728 flow->udma_rflow = NULL; in k3_udma_glue_release_rx_flow() 736 struct k3_udma_glue_rx_flow *flow = &rx_chn->flows[flow_idx]; in k3_udma_glue_cfg_rx_flow() local [all …]
|