| /kernel/linux/linux-5.10/include/net/ |
| D | fq_impl.h | 15 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/ |
| 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 …]
|
| /kernel/linux/linux-5.10/net/sched/ |
| D | sch_atm.c | 24 * 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/ |
| D | flowring.c | 43 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/ |
| D | flowring.c | 43 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/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/net/phy/mscc/ |
| 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 …]
|
| /kernel/linux/linux-6.6/include/net/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/ipu-v3/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/ipu-v3/ |
| D | ipu-dp.c | 45 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/ |
| D | nf_flow_table_core.c | 21 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 …]
|
| D | nf_flow_table_offload.c | 23 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/ |
| D | nf_flow_table_core.c | 21 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 …]
|
| D | nf_flow_table_offload.c | 24 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/ |
| 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 …]
|
| /kernel/linux/linux-6.6/Documentation/networking/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| D | tc_priv.h | 92 /* 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 …]
|
| D | tc_tun_encap.c | 83 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/ |
| 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 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/ |
| D | bnxt_tc.c | 43 /* 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/ |
| 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 …]
|
| /kernel/linux/linux-5.10/net/openvswitch/ |
| 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() 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/ |
| D | en_tc.c | 129 /* 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/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/infiniband/hw/hfi1/ |
| D | tid_rdma.c | 37 /* 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 …]
|