/linux/net/sched/ |
A D | sch_atm.c | 110 return flow ? flow->q : NULL; in atm_tc_leaf() 132 if (flow) in atm_tc_bind_filter() 159 flow->vcc->pop = flow->old_pop; in atm_tc_put() 222 if (flow) in atm_tc_change() 302 flow->vcc->user_back = flow; in atm_tc_change() 304 flow->old_pop = flow->vcc->pop; in atm_tc_change() 373 return flow ? flow->block : p->link.block; in atm_tc_tcf_block() 428 flow = flow->excess; in atm_tc_enqueue() 485 while ((skb = flow->q->ops->peek(flow->q))) { in sch_atm_dequeue() 510 memcpy(skb_push(skb, flow->hdr_len), flow->hdr, in sch_atm_dequeue() [all …]
|
A D | sch_fq_codel.c | 120 flow->head = skb->next; in dequeue_head() 129 if (flow->head == NULL) in flow_queue_add() 130 flow->head = skb; in flow_queue_add() 133 flow->tail = skb; in flow_queue_add() 164 flow = &q->flows[idx]; in fq_codel_drop() 204 flow = &q->flows[idx]; in fq_codel_enqueue() 263 if (flow->head) { in dequeue_func() 331 rtnl_kfree_skbs(flow->head, flow->tail); in fq_codel_flow_purge() 332 flow->head = NULL; in fq_codel_flow_purge() 662 if (flow->head) { in fq_codel_dump_class_stats() [all …]
|
A D | sch_fq_pie.c | 120 if (!flow->head) in flow_queue_add() 121 flow->head = skb; in flow_queue_add() 123 flow->tail->next = skb; in flow_queue_add() 124 flow->tail = skb; in flow_queue_add() 223 flow->head = skb->next; in dequeue_head() 232 struct fq_pie_flow *flow; in fq_pie_qdisc_dequeue() local 252 if (flow->head) { in fq_pie_qdisc_dequeue() 269 flow->qlen--; in fq_pie_qdisc_dequeue() 273 pie_process_dequeue(skb, &q->p_params, &flow->vars, flow->backlog); in fq_pie_qdisc_dequeue() 518 rtnl_kfree_skbs(flow->head, flow->tail); in fq_pie_reset() [all …]
|
/linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/ |
A D | flowring.c | 85 hash = flow->hash; in brcmf_flowring_lookup() 130 hash = flow->hash; in brcmf_flowring_create() 363 flow = kzalloc(sizeof(*flow), GFP_KERNEL); in brcmf_flowring_attach() 364 if (flow) { in brcmf_flowring_attach() 365 flow->dev = dev; in brcmf_flowring_attach() 372 flow->rings = kcalloc(nrofrings, sizeof(*flow->rings), in brcmf_flowring_attach() 375 kfree(flow); in brcmf_flowring_attach() 376 flow = NULL; in brcmf_flowring_attach() 380 return flow; in brcmf_flowring_attach() 404 kfree(flow); in brcmf_flowring_detach() [all …]
|
A D | flowring.h | 50 u32 brcmf_flowring_lookup(struct brcmf_flowring *flow, u8 da[ETH_ALEN], 52 u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN], 54 void brcmf_flowring_delete(struct brcmf_flowring *flow, u16 flowid); 55 void brcmf_flowring_open(struct brcmf_flowring *flow, u16 flowid); 56 u8 brcmf_flowring_tid(struct brcmf_flowring *flow, u16 flowid); 57 u32 brcmf_flowring_enqueue(struct brcmf_flowring *flow, u16 flowid, 60 void brcmf_flowring_reinsert(struct brcmf_flowring *flow, u16 flowid, 62 u32 brcmf_flowring_qlen(struct brcmf_flowring *flow, u16 flowid); 63 u8 brcmf_flowring_ifidx_get(struct brcmf_flowring *flow, u16 flowid); 65 void brcmf_flowring_detach(struct brcmf_flowring *flow); [all …]
|
/linux/drivers/gpu/ipu-v3/ |
A D | ipu-dp.c | 46 u32 flow; member 151 flow->base + DP_CSC_0); in ipu_dp_csc_init() 153 flow->base + DP_CSC_1); in ipu_dp_csc_init() 161 flow->base + DP_CSC_0); in ipu_dp_csc_init() 195 flow->out_cs = out; in ipu_dp_setup_channel() 197 if (flow->foreground.in_cs == flow->background.in_cs) { in ipu_dp_setup_channel() 203 flow->foreground.in_cs, flow->out_cs, in ipu_dp_setup_channel() 207 flow->foreground.in_cs == flow->out_cs) in ipu_dp_setup_channel() 324 if (flow & 1) in ipu_dp_get() 325 dp = &priv->flow[flow >> 1].foreground; in ipu_dp_get() [all …]
|
/linux/include/net/ |
A D | fq_impl.h | 24 flow->backlog -= bytes; in __fq_adjust_removal() 28 if (flow->backlog) in __fq_adjust_removal() 125 flow->tin = NULL; in fq_tin_dequeue() 153 if (flow->tin && flow->tin != tin) { in fq_flow_classify() 159 if (!flow->tin) in fq_flow_classify() 162 return flow; in fq_flow_classify() 180 flow = cur; in fq_find_fattest_flow() 194 return flow; in fq_find_fattest_flow() 216 flow->tin = tin; in fq_tin_enqueue() 233 if (!flow) in fq_tin_enqueue() [all …]
|
/linux/drivers/net/phy/mscc/ |
A D | mscc_macsec.c | 467 if ((flow->bank == MACSEC_INGR && flow->rx_sa && !flow->rx_sa->active) || in vsc8584_macsec_flow_enable() 468 (flow->bank == MACSEC_EGR && flow->tx_sa && !flow->tx_sa->active)) in vsc8584_macsec_flow_enable() 577 flow->rx_sa->next_pn : flow->tx_sa->next_pn); in vsc8584_macsec_transformation() 613 flow = kzalloc(sizeof(*flow), GFP_KERNEL); in vsc8584_macsec_alloc_flow() 614 if (!flow) in vsc8584_macsec_alloc_flow() 624 return flow; in vsc8584_macsec_alloc_flow() 635 kfree(flow); in vsc8584_macsec_free_flow() 709 if (!flow) { in __vsc8584_macsec_add_rxsa() 736 if (!flow) { in __vsc8584_macsec_add_txsa() 855 if (flow->bank == MACSEC_INGR && flow->rx_sa && in vsc8584_macsec_del_rxsc() [all …]
|
/linux/net/netfilter/ |
A D | nf_flow_table_core.c | 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() 68 return flow; in flow_offload_alloc() 228 switch (flow->type) { in flow_offload_free() 235 nf_ct_put(flow->ct); in flow_offload_free() 236 kfree_rcu(flow, rcu_head); in flow_offload_free() 297 flow->timeout = nf_flowtable_time_stamp + flow_offload_get_timeout(flow); in flow_offload_add() 364 flow_offload_free(flow); in flow_offload_del() [all …]
|
A D | nf_flow_table_offload.c | 25 struct flow_offload *flow; member 213 const struct flow_offload *flow, in flow_offload_eth_src() argument 260 const struct flow_offload *flow, in flow_offload_eth_dst() argument 727 const struct flow_offload *flow = offload->flow; in nf_flow_offload_rule_alloc() local 825 struct flow_offload *flow, in nf_flow_offload_tuple() argument 938 offload->flow->timeout = max_t(u64, offload->flow->timeout, in flow_offload_work_stats() 943 nf_ct_acct_add(offload->flow->ct, in flow_offload_work_stats() 1002 offload->flow = flow; in nf_flow_offload_work_alloc() 1012 struct flow_offload *flow) in nf_flow_offload_add() argument 1024 struct flow_offload *flow) in nf_flow_offload_del() argument [all …]
|
A D | nf_flow_table_ip.c | 33 flow_offload_teardown(flow); in nf_flow_state_check() 127 if (test_bit(NF_FLOW_SNAT, &flow->flags)) { in nf_flow_nat_ip() 129 nf_flow_snat_ip(flow, skb, iph, thoff, dir); in nf_flow_nat_ip() 131 if (test_bit(NF_FLOW_DNAT, &flow->flags)) { in nf_flow_nat_ip() 335 struct flow_offload *flow; in nf_flow_offload_ip_hook() local 370 flow_offload_refresh(flow_table, flow); in nf_flow_offload_ip_hook() 405 flow_offload_teardown(flow); in nf_flow_offload_ip_hook() 572 struct flow_offload *flow; in nf_flow_offload_ipv6_hook() local 606 flow_offload_refresh(flow_table, flow); in nf_flow_offload_ipv6_hook() 611 nf_flow_nat_ipv6(flow, skb, dir, ip6h); in nf_flow_offload_ipv6_hook() [all …]
|
A D | nf_tables_offload.c | 15 if (!flow) 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() 107 if (!flow) in nft_flow_rule_create() 136 return flow; in nft_flow_rule_create() 160 kfree(flow); in nft_flow_rule_destroy() 230 if (flow) in nft_flow_cls_offload_setup() [all …]
|
/linux/net/openvswitch/ |
A D | flow_table.c | 78 if (!flow) in ovs_flow_alloc() 96 return flow; in ovs_flow_alloc() 136 if (!flow) in ovs_flow_free() 493 flow); in table_instance_flow_flush() 828 if (!flow) in ovs_flow_tbl_lookup_stats() 842 if (flow) in ovs_flow_tbl_lookup_stats() 846 return flow; in ovs_flow_tbl_lookup_stats() 866 return flow; in ovs_flow_tbl_lookup() 887 if (flow && ovs_identifier_is_key(&flow->id) && in ovs_flow_tbl_lookup_exact() 1042 flow->flow_table.hash = flow_hash(&flow->key, &flow->mask->range); in flow_key_insert() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
A D | tc_priv.h | 114 struct mlx5e_tc_flow *flow, 124 set_bit(flag, &flow->flags); in __flow_flag_set() 127 #define flow_flag_set(flow, flag) __flow_flag_set(flow, MLX5E_TC_FLOW_FLAG_##flag) argument 137 __flow_flag_test_and_set(flow, \ 144 clear_bit(flag, &flow->flags); in __flow_flag_clear() 147 #define flow_flag_clear(flow, flag) __flow_flag_clear(flow, \ argument 152 bool ret = test_bit(flag, &flow->flags); in __flow_flag_test() 159 #define flow_flag_test(flow, flag) __flow_flag_test(flow, \ argument 163 struct mlx5e_tc_flow *flow); 166 struct mlx5e_tc_flow *flow, [all …]
|
A D | tc_tun_encap.c | 152 struct mlx5e_tc_flow *flow; in mlx5e_tc_encap_flows_add() local 174 if (!mlx5e_is_offloaded_flow(flow) || !flow_flag_test(flow, SLOW)) in mlx5e_tc_encap_flows_add() 176 attr = flow->attr; in mlx5e_tc_encap_flows_add() 196 flow->rule[0] = rule; in mlx5e_tc_encap_flows_add() 215 if (!mlx5e_is_offloaded_flow(flow) || flow_flag_test(flow, SLOW)) in mlx5e_tc_encap_flows_del() 217 attr = flow->attr; in mlx5e_tc_encap_flows_del() 234 flow->rule[0] = rule; in mlx5e_tc_encap_flows_del() 1189 flow->decap_route = r; in mlx5e_attach_decap_route() 1325 mlx5e_tc_unoffload_fdb_rules(esw, flow, flow->attr); in mlx5e_invalidate_encap() 1462 mlx5e_tc_unoffload_fdb_rules(esw, flow, flow->attr); in mlx5e_unoffload_flow_list() [all …]
|
/linux/drivers/net/ethernet/broadcom/bnxt/ |
A D | bnxt_tc.c | 701 is_wildcard(&flow->l4_mask, sizeof(flow->l4_mask))) { in bnxt_hwrm_cfa_flow_alloc() 1053 if (bits_set(&flow->l2_key.smac, sizeof(flow->l2_key.smac)) && in bnxt_tc_can_offload() 1054 !is_exactmatch(flow->l2_mask.smac, sizeof(flow->l2_mask.smac))) { in bnxt_tc_can_offload() 1058 if (bits_set(&flow->l2_key.dmac, sizeof(flow->l2_key.dmac)) && in bnxt_tc_can_offload() 1059 !is_exactmatch(&flow->l2_mask.dmac, sizeof(flow->l2_mask.dmac))) { in bnxt_tc_can_offload() 1279 &flow.daddr); in bnxt_tc_resolve_tunnel_hdrs() 1540 flow = &new_node->flow; in bnxt_tc_add_flow() 1547 bnxt_tc_set_flow_dir(bp, flow, flow->src_fid); in bnxt_tc_add_flow() 1638 flow = &flow_node->flow; in bnxt_tc_get_flow_stats() 1769 struct bnxt_tc_flow *flow = &flow_node->flow; in bnxt_tc_flow_stats_batch_update() local [all …]
|
/linux/drivers/infiniband/hw/hfi1/ |
A D | tid_rdma.c | 1117 flow->length = flow->req->seg_len - length; in kern_find_pages() 1342 flow->tid_entry[flow->tidcnt++] = in kern_program_rcv_group() 1347 flow->req->qp, flow->tidcnt - 1, in kern_program_rcv_group() 1348 flow->tid_entry[flow->tidcnt - 1]); in kern_program_rcv_group() 1416 trace_hfi1_tid_flow_alloc(flow->req->qp, flow->req->setup_head, flow); in kern_program_rcvarray() 1523 flow->flow_state.lpsn = flow->flow_state.spsn + flow->npkts - 1; in hfi1_kern_exp_rcv_setup() 1722 req_addr = &flow->tid_entry[flow->tid_idx]; in hfi1_build_tid_rdma_read_packet() 1724 (flow->tidcnt - flow->tid_idx); in hfi1_build_tid_rdma_read_packet() 1952 flow->flow_state.ib_lpsn = flow->flow_state.ib_spsn + flow->npkts - 1; in tid_rdma_rcv_read_request() 2363 last_pkt = (flow->sent >= flow->length); in hfi1_build_tid_rdma_read_resp() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/ |
A D | en_tc.c | 388 if (!flow || !refcount_inc_not_zero(&flow->refcnt)) in mlx5e_flow_get() 390 return flow; in mlx5e_flow_get() 447 flow->mh = mh; in mlx5e_attach_mod_hdr() 456 if (!flow->mh) in mlx5e_detach_mod_hdr() 3027 if (flow && flow_flag_test(flow, L3_TO_L2_DECAP)) in parse_tc_pedit_action() 4453 flow = kzalloc(sizeof(*flow), GFP_KERNEL); in mlx5e_alloc_flow() 4482 kfree(flow); in mlx5e_alloc_flow() 4776 if (flow) { in mlx5e_configure_flower() 4793 if (flow) in mlx5e_configure_flower() 4840 if (!flow || !same_flow_direction(flow, flags)) { in mlx5e_delete_flower() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ |
A D | tls.c | 43 MLX5_SET(tls_flow, flow, ipv6, 0); in mlx5e_tls_set_ipv4_flow() 55 MLX5_SET(tls_flow, flow, ipv6, 1); in mlx5e_tls_set_ipv6_flow() 77 mlx5e_tls_set_ipv4_flow(flow, sk); in mlx5e_tls_set_flow() 83 mlx5e_tls_set_ipv4_flow(flow, sk); in mlx5e_tls_set_flow() 89 mlx5e_tls_set_ipv6_flow(flow, sk); in mlx5e_tls_set_flow() 96 mlx5e_tls_set_flow_tcp_ports(flow, sk); in mlx5e_tls_set_flow() 112 void *flow; in mlx5e_tls_add() local 116 if (!flow) in mlx5e_tls_add() 119 ret = mlx5e_tls_set_flow(flow, sk, caps); in mlx5e_tls_add() 123 ret = mlx5_accel_tls_add_flow(mdev, flow, crypto_info, in mlx5e_tls_add() [all …]
|
/linux/Documentation/networking/ |
A D | openvswitch.rst | 22 extracting its flow key and looking it up in the flow table. If there 97 Wildcarded flow key format 102 optional corresponding flow mask. 107 of a incoming packet. Using wildcarded flow can improve the flow set up rate 116 nor supply flow mask attributes. 137 Unique flow identifiers 141 flow identification is a unique flow identifier, or "UFID". UFIDs are optional 145 setup in addition to the flow, then refer to the flow using the UFID for all 147 flow key if a UFID is specified. 162 flow key attributes. [all …]
|
/linux/samples/bpf/ |
A D | sockex2_kern.c | 63 struct flow_key_record *flow) in parse_ip() argument 87 struct flow_key_record *flow) in parse_ipv6() argument 91 flow->src = ipv6_addr_hash(skb, in parse_ipv6() 93 flow->dst = ipv6_addr_hash(skb, in parse_ipv6() 101 struct flow_key_record *flow) in flow_dissector() argument 176 flow->ip_proto = ip_proto; in flow_dissector() 180 flow->ports = load_word(skb, nhoff); in flow_dissector() 183 flow->thoff = (__u16) nhoff; in flow_dissector() 203 struct flow_key_record flow = {}; in bpf_prog2() local 207 if (!flow_dissector(skb, &flow)) in bpf_prog2() [all …]
|
/linux/drivers/infiniband/hw/usnic/ |
A D | usnic_fwd.c | 213 flow = kzalloc(sizeof(*flow), GFP_ATOMIC); in usnic_fwd_alloc_flow() 214 if (!flow) in usnic_fwd_alloc_flow() 263 return flow; in usnic_fwd_alloc_flow() 265 kfree(flow); in usnic_fwd_alloc_flow() 274 a0 = flow->flow_id; in usnic_fwd_dealloc_flow() 276 status = usnic_fwd_devcmd(flow->ufdev, flow->vnic_idx, in usnic_fwd_dealloc_flow() 281 flow->flow_id, flow->vnic_idx, in usnic_fwd_dealloc_flow() 285 flow->ufdev->name, flow->vnic_idx, in usnic_fwd_dealloc_flow() 296 flow->ufdev->name, flow->vnic_idx, in usnic_fwd_dealloc_flow() 297 flow->flow_id); in usnic_fwd_dealloc_flow() [all …]
|
/linux/tools/testing/selftests/bpf/progs/ |
A D | test_xdp_noinline.c | 122 struct flow_key flow; member 307 ip_suffix = pckt->flow.srcv6[3] ^ pckt->flow.port16[0]; in encap_v6() 336 ip_suffix ^= pckt->flow.src; in encap_v4() 530 pckt->flow.src = iph->daddr; in parse_icmp() 531 pckt->flow.dst = iph->saddr; in parse_icmp() 543 return jhash_2words(pckt->flow.src, pckt->flow.ports, in get_packet_hash() 561 pckt->flow.port16[0] = pckt->flow.port16[1]; in get_packet_dst() 720 protocol = pckt.flow.proto; in process_packet() 734 vip.vip = pckt.flow.dst; in process_packet() 744 pckt.flow.port16[1] = 0; in process_packet() [all …]
|
/linux/net/ipv4/netfilter/ |
A D | ipt_rpfilter.c | 58 struct flowi4 flow; in rpfilter_mt() local 74 memset(&flow, 0, sizeof(flow)); in rpfilter_mt() 75 flow.flowi4_iif = LOOPBACK_IFINDEX; in rpfilter_mt() 76 flow.daddr = iph->saddr; in rpfilter_mt() 77 flow.saddr = rpfilter_get_saddr(iph->daddr); in rpfilter_mt() 78 flow.flowi4_mark = info->flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0; in rpfilter_mt() 79 flow.flowi4_tos = iph->tos & IPTOS_RT_MASK; in rpfilter_mt() 80 flow.flowi4_scope = RT_SCOPE_UNIVERSE; in rpfilter_mt() 81 flow.flowi4_oif = l3mdev_master_ifindex_rcu(xt_in(par)); in rpfilter_mt() 83 return rpfilter_lookup_reverse(xt_net(par), &flow, xt_in(par), info->flags) ^ invert; in rpfilter_mt()
|
/linux/Documentation/bpf/ |
A D | prog_flow_dissector.rst | 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 41 In the VLAN-less case, this is what the initial state of the BPF flow 49 +-- flow dissector starts here 67 +-- flow dissector starts here 86 +-- flow dissector starts here 95 and BPF flow dissector is not required to handle it. 110 * ``BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG`` - tells BPF flow dissector to [all …]
|