Home
last modified time | relevance | path

Searched refs:flow (Results 1 – 25 of 350) sorted by relevance

12345678910>>...14

/Linux-v5.4/net/sched/
Dsch_atm.c76 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
93 sch, p, flow, new, old); in atm_tc_graft()
94 if (list_empty(&flow->list)) in atm_tc_graft()
98 *old = flow->q; in atm_tc_graft()
99 flow->q = new; in atm_tc_graft()
107 struct atm_flow_data *flow = (struct atm_flow_data *)cl; in atm_tc_leaf() local
[all …]
Dsch_fq_codel.c117 static inline struct sk_buff *dequeue_head(struct fq_codel_flow *flow) in dequeue_head() argument
119 struct sk_buff *skb = flow->head; in dequeue_head()
121 flow->head = skb->next; in dequeue_head()
127 static inline void flow_queue_add(struct fq_codel_flow *flow, in flow_queue_add() argument
130 if (flow->head == NULL) in flow_queue_add()
131 flow->head = skb; in flow_queue_add()
133 flow->tail->next = skb; in flow_queue_add()
134 flow->tail = skb; in flow_queue_add()
144 struct fq_codel_flow *flow; in fq_codel_drop() local
165 flow = &q->flows[idx]; in fq_codel_drop()
[all …]
Dsch_hhf.c184 struct hh_flow_state *flow, *next; in seek_list() local
190 list_for_each_entry_safe(flow, next, head, flowchain) { in seek_list()
191 u32 prev = flow->hit_timestamp + q->hhf_evict_timeout; in seek_list()
197 if (list_is_last(&flow->flowchain, head)) in seek_list()
199 list_del(&flow->flowchain); in seek_list()
200 kfree(flow); in seek_list()
202 } else if (flow->hash_id == hash) { in seek_list()
203 return flow; in seek_list()
215 struct hh_flow_state *flow; in alloc_new_hh() local
220 list_for_each_entry(flow, head, flowchain) { in alloc_new_hh()
[all …]
Dcls_flow.c66 static u32 flow_get_src(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_src() argument
68 __be32 src = flow_get_u32_src(flow); in flow_get_src()
76 static u32 flow_get_dst(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_dst() argument
78 __be32 dst = flow_get_u32_dst(flow); in flow_get_dst()
87 const struct flow_keys *flow) in flow_get_proto() argument
89 return flow->basic.ip_proto; in flow_get_proto()
93 const struct flow_keys *flow) in flow_get_proto_src() argument
95 if (flow->ports.ports) in flow_get_proto_src()
96 return ntohs(flow->ports.src); in flow_get_proto_src()
102 const struct flow_keys *flow) in flow_get_proto_dst() argument
[all …]
/Linux-v5.4/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 …]
/Linux-v5.4/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 …]
Dflowring.h50 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-v5.4/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 …]
/Linux-v5.4/net/openvswitch/
Dflow_table.c68 struct sw_flow *flow; in ovs_flow_alloc() local
71 flow = kmem_cache_zalloc(flow_cache, GFP_KERNEL); in ovs_flow_alloc()
72 if (!flow) in ovs_flow_alloc()
75 flow->stats_last_writer = -1; in ovs_flow_alloc()
86 RCU_INIT_POINTER(flow->stats[0], stats); in ovs_flow_alloc()
88 cpumask_set_cpu(0, &flow->cpu_used_mask); in ovs_flow_alloc()
90 return flow; in ovs_flow_alloc()
92 kmem_cache_free(flow_cache, flow); in ovs_flow_alloc()
101 static void flow_free(struct sw_flow *flow) in flow_free() argument
105 if (ovs_identifier_is_key(&flow->id)) in flow_free()
[all …]
/Linux-v5.4/net/netfilter/
Dnf_flow_table_core.c18 struct flow_offload flow; member
27 flow_offload_fill_dir(struct flow_offload *flow, struct nf_conn *ct, in flow_offload_fill_dir() argument
31 struct flow_offload_tuple *ft = &flow->tuplehash[dir].tuple; in flow_offload_fill_dir()
64 struct flow_offload *flow; in flow_offload_alloc() local
74 flow = &entry->flow; in flow_offload_alloc()
84 flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_ORIGINAL); in flow_offload_alloc()
85 flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_REPLY); in flow_offload_alloc()
88 flow->flags |= FLOW_OFFLOAD_SNAT; in flow_offload_alloc()
90 flow->flags |= FLOW_OFFLOAD_DNAT; in flow_offload_alloc()
92 return flow; in flow_offload_alloc()
[all …]
Dnf_flow_table_ip.c19 static int nf_flow_state_check(struct flow_offload *flow, int proto, in nf_flow_state_check() argument
32 flow_offload_teardown(flow); in nf_flow_state_check()
92 static int nf_flow_snat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_snat_ip() argument
101 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr; in nf_flow_snat_ip()
106 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr; in nf_flow_snat_ip()
117 static int nf_flow_dnat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_dnat_ip() argument
126 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_v4.s_addr; in nf_flow_dnat_ip()
131 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_v4.s_addr; in nf_flow_dnat_ip()
142 static int nf_flow_nat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_nat_ip() argument
147 if (flow->flags & FLOW_OFFLOAD_SNAT && in nf_flow_nat_ip()
[all …]
Dnf_tables_offload.c12 struct nft_flow_rule *flow; in nft_flow_rule_alloc() local
14 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-v5.4/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.c174 struct bnxt_tc_flow *flow) in bnxt_tc_parse_flow() argument
191 flow->l2_key.ether_type = match.key->n_proto; in bnxt_tc_parse_flow()
192 flow->l2_mask.ether_type = match.mask->n_proto; in bnxt_tc_parse_flow()
196 flow->l4_key.ip_proto = match.key->ip_proto; in bnxt_tc_parse_flow()
197 flow->l4_mask.ip_proto = match.mask->ip_proto; in bnxt_tc_parse_flow()
205 flow->flags |= BNXT_TC_FLOW_FLAGS_ETH_ADDRS; in bnxt_tc_parse_flow()
206 ether_addr_copy(flow->l2_key.dmac, match.key->dst); in bnxt_tc_parse_flow()
207 ether_addr_copy(flow->l2_mask.dmac, match.mask->dst); in bnxt_tc_parse_flow()
208 ether_addr_copy(flow->l2_key.smac, match.key->src); in bnxt_tc_parse_flow()
209 ether_addr_copy(flow->l2_mask.smac, match.mask->src); in bnxt_tc_parse_flow()
[all …]
/Linux-v5.4/drivers/infiniband/hw/hfi1/
Dtid_rdma.c134 struct tid_rdma_flow *flow,
875 static u32 tid_rdma_find_phys_blocks_4k(struct tid_rdma_flow *flow, in tid_rdma_find_phys_blocks_4k() argument
892 trace_hfi1_tid_flow_page(flow->req->qp, flow, 0, 0, 0, vaddr); in tid_rdma_find_phys_blocks_4k()
895 trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 0, 0, in tid_rdma_find_phys_blocks_4k()
929 trace_hfi1_tid_pageset(flow->req->qp, setcount, in tid_rdma_find_phys_blocks_4k()
1013 static u32 tid_rdma_find_phys_blocks_8k(struct tid_rdma_flow *flow, in tid_rdma_find_phys_blocks_8k() argument
1027 trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 1, 0, v0); in tid_rdma_find_phys_blocks_8k()
1030 trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 1, 1, v1); in tid_rdma_find_phys_blocks_8k()
1080 static u32 kern_find_pages(struct tid_rdma_flow *flow, in kern_find_pages() argument
1084 struct tid_rdma_request *req = flow->req; in kern_find_pages()
[all …]
/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/
Den_tc.c214 struct mlx5e_tc_flow *flow);
216 static struct mlx5e_tc_flow *mlx5e_flow_get(struct mlx5e_tc_flow *flow) in mlx5e_flow_get() argument
218 if (!flow || !refcount_inc_not_zero(&flow->refcnt)) in mlx5e_flow_get()
220 return flow; in mlx5e_flow_get()
224 struct mlx5e_tc_flow *flow) in mlx5e_flow_put() argument
226 if (refcount_dec_and_test(&flow->refcnt)) { in mlx5e_flow_put()
227 mlx5e_tc_del_flow(priv, flow); in mlx5e_flow_put()
228 kfree_rcu(flow, rcu_head); in mlx5e_flow_put()
232 static void __flow_flag_set(struct mlx5e_tc_flow *flow, unsigned long flag) in __flow_flag_set() argument
236 set_bit(flag, &flow->flags); in __flow_flag_set()
[all …]
/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/en_accel/
Dtls.c39 static void mlx5e_tls_set_ipv4_flow(void *flow, struct sock *sk) in mlx5e_tls_set_ipv4_flow() argument
43 MLX5_SET(tls_flow, flow, ipv6, 0); in mlx5e_tls_set_ipv4_flow()
44 memcpy(MLX5_ADDR_OF(tls_flow, flow, dst_ipv4_dst_ipv6.ipv4_layout.ipv4), in mlx5e_tls_set_ipv4_flow()
46 memcpy(MLX5_ADDR_OF(tls_flow, flow, src_ipv4_src_ipv6.ipv4_layout.ipv4), in mlx5e_tls_set_ipv4_flow()
51 static void mlx5e_tls_set_ipv6_flow(void *flow, struct sock *sk) in mlx5e_tls_set_ipv6_flow() argument
55 MLX5_SET(tls_flow, flow, ipv6, 1); in mlx5e_tls_set_ipv6_flow()
56 memcpy(MLX5_ADDR_OF(tls_flow, flow, dst_ipv4_dst_ipv6.ipv6_layout.ipv6), in mlx5e_tls_set_ipv6_flow()
58 memcpy(MLX5_ADDR_OF(tls_flow, flow, src_ipv4_src_ipv6.ipv6_layout.ipv6), in mlx5e_tls_set_ipv6_flow()
63 static void mlx5e_tls_set_flow_tcp_ports(void *flow, struct sock *sk) in mlx5e_tls_set_flow_tcp_ports() argument
67 memcpy(MLX5_ADDR_OF(tls_flow, flow, src_port), &inet->inet_sport, in mlx5e_tls_set_flow_tcp_ports()
[all …]
/Linux-v5.4/samples/bpf/
Dsockex2_kern.c62 struct flow_key_record *flow) in parse_ip() argument
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() argument
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() argument
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()
[all …]
/Linux-v5.4/drivers/net/ethernet/netronome/nfp/flower/
Dmatch.c13 struct flow_cls_offload *flow, u8 key_type) in nfp_flower_compile_meta_tci() argument
15 struct flow_rule *rule = flow_cls_offload_flow_rule(flow); in nfp_flower_compile_meta_tci()
81 struct flow_cls_offload *flow) in nfp_flower_compile_mac() argument
83 struct flow_rule *rule = flow_cls_offload_flow_rule(flow); in nfp_flower_compile_mac()
133 struct flow_cls_offload *flow) in nfp_flower_compile_tport() argument
135 struct flow_rule *rule = flow_cls_offload_flow_rule(flow); in nfp_flower_compile_tport()
154 struct flow_cls_offload *flow) in nfp_flower_compile_ip_ext() argument
156 struct flow_rule *rule = flow_cls_offload_flow_rule(flow); in nfp_flower_compile_ip_ext()
228 struct flow_cls_offload *flow) in nfp_flower_compile_ipv4() argument
230 struct flow_rule *rule = flow_cls_offload_flow_rule(flow); in nfp_flower_compile_ipv4()
[all …]
/Linux-v5.4/drivers/infiniband/hw/usnic/
Dusnic_fwd.c203 struct usnic_fwd_flow *flow; in usnic_fwd_alloc_flow() local
213 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-v5.4/Documentation/networking/
Dopenvswitch.txt5 flow-level packet processing on selected network devices. It can be
7 VLAN processing, network access control, flow-based network control,
12 within a bridge). Each datapath also has associated with it a "flow
19 extracting its flow key and looking it up in the flow table. If there
20 is a matching flow, it executes the associated actions. If there is
22 its processing, userspace will likely set up a flow to handle further
32 versions to parse additional protocols as part of the flow key. It
36 applications to work with any version of the flow key, past or future.
40 flow key that it parsed from the packet. Userspace then extracts its
41 own notion of a flow key from the packet and compares it against the
[all …]
/Linux-v5.4/net/ipv4/netfilter/
Dipt_rpfilter.c58 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 = RT_TOS(iph->tos); 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-v5.4/Documentation/bpf/
Dprog_flow_dissector.rst11 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 …]
/Linux-v5.4/tools/testing/selftests/bpf/progs/
Dtest_xdp_noinline.c122 struct flow_key flow; member
244 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-v5.4/Documentation/core-api/
Dgenericirq.rst52 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-v5.4/drivers/net/ethernet/mellanox/mlx5/core/fpga/
Dtls.c187 static void mlx5_fpga_tls_flow_to_cmd(void *flow, void *cmd) in mlx5_fpga_tls_flow_to_cmd() argument
189 memcpy(MLX5_ADDR_OF(tls_cmd, cmd, src_port), flow, in mlx5_fpga_tls_flow_to_cmd()
192 MLX5_SET(tls_cmd, cmd, ipv6, MLX5_GET(tls_flow, flow, ipv6)); in mlx5_fpga_tls_flow_to_cmd()
194 MLX5_GET(tls_flow, flow, direction_sx)); in mlx5_fpga_tls_flow_to_cmd()
202 void *flow; in mlx5_fpga_tls_resync_rx() local
213 flow = idr_find(&mdev->fpga->tls->rx_idr, ntohl(handle)); in mlx5_fpga_tls_resync_rx()
214 if (unlikely(!flow)) { in mlx5_fpga_tls_resync_rx()
220 mlx5_fpga_tls_flow_to_cmd(flow, cmd); in mlx5_fpga_tls_resync_rx()
240 void *flow, u32 swid, gfp_t flags) in mlx5_fpga_tls_send_teardown_cmd() argument
255 mlx5_fpga_tls_flow_to_cmd(flow, cmd); in mlx5_fpga_tls_send_teardown_cmd()
[all …]

12345678910>>...14