Home
last modified time | relevance | path

Searched full:flow (Results 1 – 25 of 3566) sorted by relevance

12345678910>>...143

/kernel/linux/linux-5.10/include/net/
Dfq_impl.h15 struct fq_flow *flow, in fq_adjust_removal() argument
18 struct fq_tin *tin = flow->tin; in fq_adjust_removal()
22 flow->backlog -= skb->len; in fq_adjust_removal()
27 static void fq_rejigger_backlog(struct fq *fq, struct fq_flow *flow) in fq_rejigger_backlog() argument
31 if (flow->backlog == 0) { in fq_rejigger_backlog()
32 list_del_init(&flow->backlogchain); in fq_rejigger_backlog()
34 i = flow; in fq_rejigger_backlog()
37 if (i->backlog < flow->backlog) in fq_rejigger_backlog()
40 list_move_tail(&flow->backlogchain, in fq_rejigger_backlog()
46 struct fq_flow *flow) in fq_flow_dequeue() argument
[all …]
/kernel/linux/linux-6.6/tools/testing/selftests/tc-testing/tc-tests/filters/
Dflow.json4 "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 …]
/kernel/linux/linux-5.10/net/sched/
Dsch_atm.c24 * Each class maps the flow(s) it is handling to a given VC. Multiple classes
39 * - should lock the flow while there is data in the queue (?)
58 struct atm_flow_data *excess; /* flow for excess traffic;
71 /* ------------------------- Class/flow operations ------------------------- */
76 struct atm_flow_data *flow; in lookup_flow() local
78 list_for_each_entry(flow, &p->flows, list) { in lookup_flow()
79 if (flow->common.classid == classid) in lookup_flow()
80 return flow; in lookup_flow()
90 struct atm_flow_data *flow = (struct atm_flow_data *)arg; in atm_tc_graft() local
92 pr_debug("atm_tc_graft(sch %p,[qdisc %p],flow %p,new %p,old %p)\n", in atm_tc_graft()
[all …]
/kernel/linux/linux-5.10/drivers/net/wireless/broadcom/brcm80211/brcmfmac/
Dflowring.c43 brcmf_flowring_is_tdls_mac(struct brcmf_flowring *flow, u8 mac[ETH_ALEN]) in brcmf_flowring_is_tdls_mac() argument
47 search = flow->tdls_entry; in brcmf_flowring_is_tdls_mac()
59 u32 brcmf_flowring_lookup(struct brcmf_flowring *flow, u8 da[ETH_ALEN], in brcmf_flowring_lookup() argument
71 sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT); in brcmf_flowring_lookup()
77 if ((sta) && (flow->tdls_active) && in brcmf_flowring_lookup()
78 (brcmf_flowring_is_tdls_mac(flow, da))) { in brcmf_flowring_lookup()
85 hash = flow->hash; in brcmf_flowring_lookup()
103 u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN], in brcmf_flowring_create() argument
116 sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT); in brcmf_flowring_create()
122 if ((sta) && (flow->tdls_active) && in brcmf_flowring_create()
[all …]
/kernel/linux/linux-6.6/drivers/net/wireless/broadcom/brcm80211/brcmfmac/
Dflowring.c43 brcmf_flowring_is_tdls_mac(struct brcmf_flowring *flow, u8 mac[ETH_ALEN]) in brcmf_flowring_is_tdls_mac() argument
47 search = flow->tdls_entry; in brcmf_flowring_is_tdls_mac()
59 u32 brcmf_flowring_lookup(struct brcmf_flowring *flow, u8 da[ETH_ALEN], in brcmf_flowring_lookup() argument
71 sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT); in brcmf_flowring_lookup()
77 if ((sta) && (flow->tdls_active) && in brcmf_flowring_lookup()
78 (brcmf_flowring_is_tdls_mac(flow, da))) { in brcmf_flowring_lookup()
85 hash = flow->hash; in brcmf_flowring_lookup()
103 u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN], in brcmf_flowring_create() argument
116 sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT); in brcmf_flowring_create()
122 if ((sta) && (flow->tdls_active) && in brcmf_flowring_create()
[all …]
/kernel/linux/linux-6.6/drivers/net/phy/mscc/
Dmscc_macsec.c371 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 …]
/kernel/linux/linux-5.10/drivers/net/phy/mscc/
Dmscc_macsec.c371 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 …]
/kernel/linux/linux-6.6/include/net/
Dfq_impl.h16 __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 …]
/kernel/linux/linux-6.6/drivers/gpu/ipu-v3/
Dipu-dp.c46 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 …]
/kernel/linux/linux-5.10/drivers/gpu/ipu-v3/
Dipu-dp.c45 u32 flow; member
63 struct ipu_flow flow[IPUV3_NUM_FLOWS]; member
81 struct ipu_flow *flow = to_flow(dp); in ipu_dp_set_global_alpha() local
82 struct ipu_dp_priv *priv = flow->priv; in ipu_dp_set_global_alpha()
87 reg = readl(flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
92 writel(reg, flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
95 reg = readl(flow->base + DP_GRAPH_WIND_CTRL) & 0x00FFFFFFL; in ipu_dp_set_global_alpha()
97 flow->base + DP_GRAPH_WIND_CTRL); in ipu_dp_set_global_alpha()
99 reg = readl(flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
100 writel(reg | DP_COM_CONF_GWAM, flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
[all …]
/kernel/linux/linux-5.10/net/netfilter/
Dnf_flow_table_core.c21 flow_offload_fill_dir(struct flow_offload *flow, in flow_offload_fill_dir() argument
24 struct flow_offload_tuple *ft = &flow->tuplehash[dir].tuple; in flow_offload_fill_dir()
25 struct nf_conntrack_tuple *ctt = &flow->ct->tuplehash[dir].tuple; in flow_offload_fill_dir()
48 struct flow_offload *flow; in flow_offload_alloc() local
54 flow = kzalloc(sizeof(*flow), GFP_ATOMIC); in flow_offload_alloc()
55 if (!flow) in flow_offload_alloc()
58 flow->ct = ct; in flow_offload_alloc()
60 flow_offload_fill_dir(flow, FLOW_OFFLOAD_DIR_ORIGINAL); in flow_offload_alloc()
61 flow_offload_fill_dir(flow, FLOW_OFFLOAD_DIR_REPLY); in flow_offload_alloc()
64 __set_bit(NF_FLOW_SNAT, &flow->flags); in flow_offload_alloc()
[all …]
Dnf_flow_table_offload.c23 struct flow_offload *flow; member
174 const struct flow_offload *flow, in flow_offload_eth_src() argument
178 const struct flow_offload_tuple *tuple = &flow->tuplehash[!dir].tuple; in flow_offload_eth_src()
205 const struct flow_offload *flow, in flow_offload_eth_dst() argument
211 const void *daddr = &flow->tuplehash[!dir].tuple.src_v4; in flow_offload_eth_dst()
219 dst_cache = flow->tuplehash[dir].tuple.dst_cache; in flow_offload_eth_dst()
250 const struct flow_offload *flow, in flow_offload_ipv4_snat() argument
261 addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr; in flow_offload_ipv4_snat()
265 addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr; in flow_offload_ipv4_snat()
277 const struct flow_offload *flow, in flow_offload_ipv4_dnat() argument
[all …]
/kernel/linux/linux-6.6/net/netfilter/
Dnf_flow_table_core.c21 flow_offload_fill_dir(struct flow_offload *flow, in flow_offload_fill_dir() argument
24 struct flow_offload_tuple *ft = &flow->tuplehash[dir].tuple; in flow_offload_fill_dir()
25 struct nf_conntrack_tuple *ctt = &flow->ct->tuplehash[dir].tuple; in flow_offload_fill_dir()
54 struct flow_offload *flow; in flow_offload_alloc() local
59 flow = kzalloc(sizeof(*flow), GFP_ATOMIC); in flow_offload_alloc()
60 if (!flow) in flow_offload_alloc()
64 flow->ct = ct; in flow_offload_alloc()
66 flow_offload_fill_dir(flow, FLOW_OFFLOAD_DIR_ORIGINAL); in flow_offload_alloc()
67 flow_offload_fill_dir(flow, FLOW_OFFLOAD_DIR_REPLY); in flow_offload_alloc()
70 __set_bit(NF_FLOW_SNAT, &flow->flags); in flow_offload_alloc()
[all …]
Dnf_flow_table_offload.c24 struct flow_offload *flow; member
224 const struct flow_offload *flow, in flow_offload_eth_src() argument
236 this_tuple = &flow->tuplehash[dir].tuple; in flow_offload_eth_src()
243 other_tuple = &flow->tuplehash[!dir].tuple; in flow_offload_eth_src()
271 const struct flow_offload *flow, in flow_offload_eth_dst() argument
286 this_tuple = &flow->tuplehash[dir].tuple; in flow_offload_eth_dst()
293 other_tuple = &flow->tuplehash[!dir].tuple; in flow_offload_eth_dst()
328 const struct flow_offload *flow, in flow_offload_ipv4_snat() argument
339 addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr; in flow_offload_ipv4_snat()
343 addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr; in flow_offload_ipv4_snat()
[all …]
/kernel/linux/linux-5.10/Documentation/networking/
Dopenvswitch.rst8 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 …]
/kernel/linux/linux-6.6/Documentation/networking/
Dopenvswitch.rst8 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 …]
/kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlx5/core/en/
Dtc_priv.h92 /* Flow can be associated with multiple encap IDs.
99 struct list_head peer[MLX5_MAX_PORTS]; /* flows with peer flow */
104 struct net_device *orig_dev; /* netdev adding flow first */
106 struct list_head tmp_list; /* temporary flow list used by neigh update */
130 struct mlx5e_tc_flow *flow,
135 mlx5e_tc_get_encap_attr(struct mlx5e_tc_flow *flow);
137 void mlx5e_tc_unoffload_flow_post_acts(struct mlx5e_tc_flow *flow);
138 int mlx5e_tc_offload_flow_post_acts(struct mlx5e_tc_flow *flow);
140 bool mlx5e_is_eswitch_flow(struct mlx5e_tc_flow *flow);
141 bool mlx5e_is_ft_flow(struct mlx5e_tc_flow *flow);
[all …]
Dtc_tun_encap.c83 int mlx5e_tc_set_attr_rx_tun(struct mlx5e_tc_flow *flow, in mlx5e_tc_set_attr_rx_tun() argument
86 struct mlx5_esw_flow_attr *esw_attr = flow->attr->esw_attr; in mlx5e_tc_set_attr_rx_tun()
126 flow_flag_set(flow, TUN_RX); in mlx5e_tc_set_attr_rx_tun()
127 flow->attr->tun_ip_version = ip_version; in mlx5e_tc_set_attr_rx_tun()
136 /* Flow can be associated with multiple encap entries. in mlx5e_tc_flow_all_encaps_valid()
137 * Before offloading the flow verify that all of them have in mlx5e_tc_flow_all_encaps_valid()
162 struct mlx5e_tc_flow *flow; in mlx5e_tc_encap_flows_add() local
183 list_for_each_entry(flow, flow_list, tmp_list) { in mlx5e_tc_encap_flows_add()
184 if (!mlx5e_is_offloaded_flow(flow) || !flow_flag_test(flow, SLOW)) in mlx5e_tc_encap_flows_add()
187 spec = &flow->attr->parse_attr->spec; in mlx5e_tc_encap_flows_add()
[all …]
/kernel/linux/linux-6.6/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.c44 /* Return the dst fid of the func for flow forwarding
370 struct bnxt_tc_flow *flow) in bnxt_tc_parse_flow() argument
387 flow->l2_key.ether_type = match.key->n_proto; in bnxt_tc_parse_flow()
388 flow->l2_mask.ether_type = match.mask->n_proto; in bnxt_tc_parse_flow()
392 flow->l4_key.ip_proto = match.key->ip_proto; in bnxt_tc_parse_flow()
393 flow->l4_mask.ip_proto = match.mask->ip_proto; in bnxt_tc_parse_flow()
401 flow->flags |= BNXT_TC_FLOW_FLAGS_ETH_ADDRS; in bnxt_tc_parse_flow()
402 ether_addr_copy(flow->l2_key.dmac, match.key->dst); in bnxt_tc_parse_flow()
403 ether_addr_copy(flow->l2_mask.dmac, match.mask->dst); in bnxt_tc_parse_flow()
404 ether_addr_copy(flow->l2_key.smac, match.key->src); in bnxt_tc_parse_flow()
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.c43 /* Return the dst fid of the func for flow forwarding
369 struct bnxt_tc_flow *flow) in bnxt_tc_parse_flow() argument
386 flow->l2_key.ether_type = match.key->n_proto; in bnxt_tc_parse_flow()
387 flow->l2_mask.ether_type = match.mask->n_proto; in bnxt_tc_parse_flow()
391 flow->l4_key.ip_proto = match.key->ip_proto; in bnxt_tc_parse_flow()
392 flow->l4_mask.ip_proto = match.mask->ip_proto; in bnxt_tc_parse_flow()
400 flow->flags |= BNXT_TC_FLOW_FLAGS_ETH_ADDRS; in bnxt_tc_parse_flow()
401 ether_addr_copy(flow->l2_key.dmac, match.key->dst); in bnxt_tc_parse_flow()
402 ether_addr_copy(flow->l2_mask.dmac, match.mask->dst); in bnxt_tc_parse_flow()
403 ether_addr_copy(flow->l2_key.smac, match.key->src); in bnxt_tc_parse_flow()
[all …]
/kernel/linux/linux-6.6/net/openvswitch/
Dflow_table.c6 #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 …]
/kernel/linux/linux-5.10/net/openvswitch/
Dflow_table.c6 #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()
92 RCU_INIT_POINTER(flow->stats[0], stats); in ovs_flow_alloc()
94 cpumask_set_cpu(0, &flow->cpu_used_mask); in ovs_flow_alloc()
96 return flow; in ovs_flow_alloc()
98 kmem_cache_free(flow_cache, flow); in ovs_flow_alloc()
107 static void flow_free(struct sw_flow *flow) in flow_free() argument
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlx5/core/
Den_tc.c129 /* Flow can be associated with multiple encap IDs.
138 struct list_head peer; /* flows with peer flow */
140 struct net_device *orig_dev; /* netdev adding flow first */
142 struct list_head tmp_list; /* temporary flow list used by neigh update */
146 int tunnel_id; /* the mapped tunnel id of this flow */
193 static void mlx5e_put_flow_tunnel_id(struct mlx5e_tc_flow *flow);
358 struct mlx5e_tc_flow *flow);
360 static struct mlx5e_tc_flow *mlx5e_flow_get(struct mlx5e_tc_flow *flow) in mlx5e_flow_get() argument
362 if (!flow || !refcount_inc_not_zero(&flow->refcnt)) in mlx5e_flow_get()
364 return flow; in mlx5e_flow_get()
[all …]
/kernel/linux/linux-6.6/drivers/infiniband/hw/hfi1/
Dtid_rdma.c37 /* 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 …]
/kernel/linux/linux-5.10/drivers/infiniband/hw/hfi1/
Dtid_rdma.c37 /* Maximum number of packets within a flow generation. */
134 struct tid_rdma_flow *flow,
438 /* Flow and tid waiter functions */
525 * This should be done after the hardware flow and
693 /* Flow functions */
695 * kern_reserve_flow - allocate a hardware flow
697 * @last - the index of the preferred flow. Use RXE_NUM_TID_FLOWS to
701 * flow for use in receiving KDETH data packets. If a preferred flow is
702 * specified the function will attempt to reserve that flow again, if
716 /* Attempt to reserve the preferred flow index */ in kern_reserve_flow()
[all …]

12345678910>>...143