| /Linux-v6.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()  argument47 	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 …]
 
 | 
| 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,
 59 struct sk_buff *brcmf_flowring_dequeue(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);
 [all …]
 
 | 
| /Linux-v6.6/drivers/gpu/ipu-v3/ | 
| D | ipu-dp.c | 46 	u32 flow;  member64 	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-v6.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()  argument19 	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-v6.6/drivers/net/phy/mscc/ | 
| D | mscc_macsec.c | 371 				struct macsec_flow *flow)  in vsc8584_macsec_flow()  argument374 	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-v6.6/net/netfilter/ | 
| D | nf_flow_table_core.c | 21 flow_offload_fill_dir(struct flow_offload *flow,  in flow_offload_fill_dir()  argument24 	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;  member224 				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 …]
 
 | 
| D | nf_flow_table_ip.c | 22 static int nf_flow_state_check(struct flow_offload *flow, int proto,  in nf_flow_state_check()  argument32 		flow_offload_teardown(flow);  in nf_flow_state_check()
 76 static void nf_flow_snat_ip(const struct flow_offload *flow,  in nf_flow_snat_ip()  argument
 85 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr;  in nf_flow_snat_ip()
 90 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr;  in nf_flow_snat_ip()
 99 static void nf_flow_dnat_ip(const struct flow_offload *flow,  in nf_flow_dnat_ip()  argument
 108 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_v4.s_addr;  in nf_flow_dnat_ip()
 113 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_v4.s_addr;  in nf_flow_dnat_ip()
 122 static void nf_flow_nat_ip(const struct flow_offload *flow, struct sk_buff *skb,  in nf_flow_nat_ip()  argument
 126 	if (test_bit(NF_FLOW_SNAT, &flow->flags)) {  in nf_flow_nat_ip()
 [all …]
 
 | 
| D | nf_tables_offload.c | 12 	struct nft_flow_rule *flow;  in nft_flow_rule_alloc()  local14 	flow = kzalloc(sizeof(struct nft_flow_rule), GFP_KERNEL);  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 …]
 
 | 
| /Linux-v6.6/drivers/net/ethernet/mellanox/mlx5/core/en/ | 
| D | tc_priv.h | 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);
 142 bool mlx5e_is_offloaded_flow(struct mlx5e_tc_flow *flow);
 143 int mlx5e_get_flow_namespace(struct mlx5e_tc_flow *flow);
 146 static inline void __flow_flag_set(struct mlx5e_tc_flow *flow, unsigned long flag)  in __flow_flag_set()  argument
 150 	set_bit(flag, &flow->flags);  in __flow_flag_set()
 [all …]
 
 | 
| D | tc_tun_encap.c | 74 int mlx5e_tc_set_attr_rx_tun(struct mlx5e_tc_flow *flow,  in mlx5e_tc_set_attr_rx_tun()  argument77 	struct mlx5_esw_flow_attr *esw_attr = flow->attr->esw_attr;  in mlx5e_tc_set_attr_rx_tun()
 117 	flow_flag_set(flow, TUN_RX);  in mlx5e_tc_set_attr_rx_tun()
 118 	flow->attr->tun_ip_version = ip_version;  in mlx5e_tc_set_attr_rx_tun()
 153 	struct mlx5e_tc_flow *flow;  in mlx5e_tc_encap_flows_add()  local
 174 	list_for_each_entry(flow, flow_list, tmp_list) {  in mlx5e_tc_encap_flows_add()
 175 		if (!mlx5e_is_offloaded_flow(flow) || !flow_flag_test(flow, SLOW))  in mlx5e_tc_encap_flows_add()
 178 		spec = &flow->attr->parse_attr->spec;  in mlx5e_tc_encap_flows_add()
 180 		attr = mlx5e_tc_get_encap_attr(flow);  in mlx5e_tc_encap_flows_add()
 182 		esw_attr->dests[flow->tmp_entry_index].pkt_reformat = e->pkt_reformat;  in mlx5e_tc_encap_flows_add()
 [all …]
 
 | 
| D | tc_tun_encap.h | 10 			struct mlx5e_tc_flow *flow,15 		       struct mlx5e_tc_flow *flow,
 23 		       struct mlx5e_tc_flow *flow,
 26 			struct mlx5e_tc_flow *flow);
 29 			     struct mlx5e_tc_flow *flow);
 31 			      struct mlx5e_tc_flow *flow);
 34 				 struct mlx5e_tc_flow *flow,
 39 				    struct mlx5e_tc_flow *flow,
 44 int mlx5e_tc_set_attr_rx_tun(struct mlx5e_tc_flow *flow,
 
 | 
| /Linux-v6.6/net/openvswitch/ | 
| D | flow_table.c | 74 	struct sw_flow *flow;  in ovs_flow_alloc()  local77 	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()
 108 static void flow_free(struct sw_flow *flow)  in flow_free()  argument
 [all …]
 
 | 
| /Linux-v6.6/drivers/net/ethernet/broadcom/bnxt/ | 
| D | bnxt_tc.c | 370 			      struct bnxt_tc_flow *flow)  in bnxt_tc_parse_flow()  argument387 		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()
 405 		ether_addr_copy(flow->l2_mask.smac, match.mask->src);  in bnxt_tc_parse_flow()
 [all …]
 
 | 
| /Linux-v6.6/drivers/net/ethernet/mellanox/mlx5/core/ | 
| D | en_tc.c | 178 static void mlx5e_put_flow_tunnel_id(struct mlx5e_tc_flow *flow);179 static void free_flow_post_acts(struct mlx5e_tc_flow *flow);
 180 static void mlx5_free_flow_attr_actions(struct mlx5e_tc_flow *flow,
 600 			      struct mlx5e_tc_flow *flow);
 602 struct mlx5e_tc_flow *mlx5e_flow_get(struct mlx5e_tc_flow *flow)  in mlx5e_flow_get()  argument
 604 	if (!flow || !refcount_inc_not_zero(&flow->refcnt))  in mlx5e_flow_get()
 606 	return flow;  in mlx5e_flow_get()
 609 void mlx5e_flow_put(struct mlx5e_priv *priv, struct mlx5e_tc_flow *flow)  in mlx5e_flow_put()  argument
 611 	if (refcount_dec_and_test(&flow->refcnt)) {  in mlx5e_flow_put()
 612 		mlx5e_tc_del_flow(priv, flow);  in mlx5e_flow_put()
 [all …]
 
 | 
| /Linux-v6.6/drivers/infiniband/hw/hfi1/ | 
| D | tid_rdma.c | 134 				   struct tid_rdma_flow *flow,881 static u32 tid_rdma_find_phys_blocks_4k(struct tid_rdma_flow *flow,  in tid_rdma_find_phys_blocks_4k()  argument
 898 	trace_hfi1_tid_flow_page(flow->req->qp, flow, 0, 0, 0, vaddr);  in tid_rdma_find_phys_blocks_4k()
 901 		trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 0, 0,  in tid_rdma_find_phys_blocks_4k()
 935 				trace_hfi1_tid_pageset(flow->req->qp, setcount,  in tid_rdma_find_phys_blocks_4k()
 1020 static u32 tid_rdma_find_phys_blocks_8k(struct tid_rdma_flow *flow,  in tid_rdma_find_phys_blocks_8k()  argument
 1034 		trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 1, 0, v0);  in tid_rdma_find_phys_blocks_8k()
 1037 		trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 1, 1, v1);  in tid_rdma_find_phys_blocks_8k()
 1087 static u32 kern_find_pages(struct tid_rdma_flow *flow,  in kern_find_pages()  argument
 1091 	struct tid_rdma_request *req = flow->req;  in kern_find_pages()
 [all …]
 
 | 
| /Linux-v6.6/net/sched/ | 
| D | sch_fq_codel.c | 116 static inline struct sk_buff *dequeue_head(struct fq_codel_flow *flow)  in dequeue_head()  argument118 	struct sk_buff *skb = flow->head;  in dequeue_head()
 120 	flow->head = skb->next;  in dequeue_head()
 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 		flow->head = skb;  in flow_queue_add()
 132 		flow->tail->next = skb;  in flow_queue_add()
 133 	flow->tail = skb;  in flow_queue_add()
 143 	struct fq_codel_flow *flow;  in fq_codel_drop()  local
 164 	flow = &q->flows[idx];  in fq_codel_drop()
 [all …]
 
 | 
| D | sch_fq_pie.c | 118 static inline void flow_queue_add(struct fq_pie_flow *flow,  in flow_queue_add()  argument121 	if (!flow->head)  in flow_queue_add()
 122 		flow->head = skb;  in flow_queue_add()
 124 		flow->tail->next = skb;  in flow_queue_add()
 125 	flow->tail = skb;  in flow_queue_add()
 226 static inline struct sk_buff *dequeue_head(struct fq_pie_flow *flow)  in dequeue_head()  argument
 228 	struct sk_buff *skb = flow->head;  in dequeue_head()
 230 	flow->head = skb->next;  in dequeue_head()
 239 	struct fq_pie_flow *flow;  in fq_pie_qdisc_dequeue()  local
 251 	flow = list_first_entry(head, struct fq_pie_flow, flowchain);  in fq_pie_qdisc_dequeue()
 [all …]
 
 | 
| /Linux-v6.6/samples/bpf/ | 
| D | sockex2_kern.c | 63 			     struct flow_key_record *flow)  in parse_ip()  argument73 		flow->src = load_word(skb, nhoff + offsetof(struct iphdr, saddr));  in parse_ip()
 74 		flow->dst = load_word(skb, nhoff + offsetof(struct iphdr, daddr));  in parse_ip()
 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
 121 		nhoff = parse_ip(skb, nhoff, &ip_proto, flow);  in flow_dissector()
 123 		nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow);  in flow_dissector()
 159 			nhoff = parse_ip(skb, nhoff, &ip_proto, flow);  in flow_dissector()
 [all …]
 
 | 
| /Linux-v6.6/drivers/infiniband/hw/usnic/ | 
| D | usnic_fwd.c | 203 	struct usnic_fwd_flow *flow;  in usnic_fwd_alloc_flow()  local213 	flow = kzalloc(sizeof(*flow), GFP_ATOMIC);  in usnic_fwd_alloc_flow()
 214 	if (!flow)  in usnic_fwd_alloc_flow()
 255 	flow->flow_id = (uint32_t) a0;  in usnic_fwd_alloc_flow()
 256 	flow->vnic_idx = uaction->vnic_idx;  in usnic_fwd_alloc_flow()
 257 	flow->ufdev = ufdev;  in usnic_fwd_alloc_flow()
 263 		return flow;  in usnic_fwd_alloc_flow()
 265 	kfree(flow);  in usnic_fwd_alloc_flow()
 269 int usnic_fwd_dealloc_flow(struct usnic_fwd_flow *flow)  in usnic_fwd_dealloc_flow()  argument
 274 	a0 = flow->flow_id;  in usnic_fwd_dealloc_flow()
 [all …]
 
 | 
| /Linux-v6.6/Documentation/networking/ | 
| D | openvswitch.rst | 8 flow-level packet processing on selected network devices.  It can be10 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
 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
 44 own notion of a flow key from the packet and compares it against the
 [all …]
 
 | 
| /Linux-v6.6/net/ipv4/netfilter/ | 
| D | ipt_rpfilter.c | 57 	struct flowi4 flow;  in rpfilter_mt()  local73 	memset(&flow, 0, sizeof(flow));  in rpfilter_mt()
 74 	flow.flowi4_iif = LOOPBACK_IFINDEX;  in rpfilter_mt()
 75 	flow.daddr = iph->saddr;  in rpfilter_mt()
 76 	flow.saddr = rpfilter_get_saddr(iph->daddr);  in rpfilter_mt()
 77 	flow.flowi4_mark = info->flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0;  in rpfilter_mt()
 78 	flow.flowi4_tos = iph->tos & IPTOS_RT_MASK;  in rpfilter_mt()
 79 	flow.flowi4_scope = RT_SCOPE_UNIVERSE;  in rpfilter_mt()
 80 	flow.flowi4_l3mdev = l3mdev_master_ifindex_rcu(xt_in(par));  in rpfilter_mt()
 81 	flow.flowi4_uid = sock_net_uid(xt_net(par), NULL);  in rpfilter_mt()
 [all …]
 
 | 
| /Linux-v6.6/tools/testing/selftests/bpf/progs/ | 
| D | test_xdp_noinline.c | 122 	struct flow_key flow;  member244 		pckt->flow.port16[0] = udp->source;  in parse_udp()
 245 		pckt->flow.port16[1] = udp->dest;  in parse_udp()
 247 		pckt->flow.port16[0] = udp->dest;  in parse_udp()
 248 		pckt->flow.port16[1] = udp->source;  in parse_udp()
 268 		pckt->flow.port16[0] = tcp->source;  in parse_tcp()
 269 		pckt->flow.port16[1] = tcp->dest;  in parse_tcp()
 271 		pckt->flow.port16[0] = tcp->dest;  in parse_tcp()
 272 		pckt->flow.port16[1] = tcp->source;  in parse_tcp()
 307 	ip_suffix = pckt->flow.srcv6[3] ^ pckt->flow.port16[0];  in encap_v6()
 [all …]
 
 | 
| /Linux-v6.6/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/ | 
| D | goto.c | 10 		    struct mlx5e_tc_flow *flow,  in validate_goto_chain()  argument16 	bool is_esw = mlx5e_is_eswitch_flow(flow);  in validate_goto_chain()
 17 	bool ft_flow = mlx5e_is_ft_flow(flow);  in validate_goto_chain()
 66 	struct mlx5e_tc_flow *flow = parse_state->flow;  in tc_act_can_offload_goto()  local
 68 	if (validate_goto_chain(flow->priv, flow, attr, act, extack))  in tc_act_can_offload_goto()
 93 	struct mlx5e_tc_flow *flow = parse_state->flow;  in tc_act_post_parse_goto()  local
 112 	if (!mlx5e_is_eswitch_flow(flow) && parse_attr->mirred_ifindex[0]) {  in tc_act_post_parse_goto()
 
 | 
| /Linux-v6.6/Documentation/bpf/ | 
| 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
 58 In case of VLAN, flow dissector can be called with the two different states.
 67                         +-- flow dissector starts here
 86                                           +-- flow dissector starts here
 94 In this case VLAN information has been processed before the flow dissector
 [all …]
 
 |