Home
last modified time | relevance | path

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

12345678910>>...13

/Linux-v4.19/net/sched/
Dsch_atm.c75 struct atm_flow_data *flow; in lookup_flow() local
77 list_for_each_entry(flow, &p->flows, list) { in lookup_flow()
78 if (flow->common.classid == classid) in lookup_flow()
79 return flow; in lookup_flow()
89 struct atm_flow_data *flow = (struct atm_flow_data *)arg; in atm_tc_graft() local
92 sch, p, flow, new, old); in atm_tc_graft()
93 if (list_empty(&flow->list)) in atm_tc_graft()
97 *old = flow->q; in atm_tc_graft()
98 flow->q = new; in atm_tc_graft()
106 struct atm_flow_data *flow = (struct atm_flow_data *)cl; in atm_tc_leaf() local
[all …]
Dsch_fq_codel.c122 static inline struct sk_buff *dequeue_head(struct fq_codel_flow *flow) in dequeue_head() argument
124 struct sk_buff *skb = flow->head; in dequeue_head()
126 flow->head = skb->next; in dequeue_head()
132 static inline void flow_queue_add(struct fq_codel_flow *flow, in flow_queue_add() argument
135 if (flow->head == NULL) in flow_queue_add()
136 flow->head = skb; in flow_queue_add()
138 flow->tail->next = skb; in flow_queue_add()
139 flow->tail = skb; in flow_queue_add()
149 struct fq_codel_flow *flow; in fq_codel_drop() local
170 flow = &q->flows[idx]; in fq_codel_drop()
[all …]
Dsch_hhf.c183 struct hh_flow_state *flow, *next; in seek_list() local
189 list_for_each_entry_safe(flow, next, head, flowchain) { in seek_list()
190 u32 prev = flow->hit_timestamp + q->hhf_evict_timeout; in seek_list()
196 if (list_is_last(&flow->flowchain, head)) in seek_list()
198 list_del(&flow->flowchain); in seek_list()
199 kfree(flow); in seek_list()
201 } else if (flow->hash_id == hash) { in seek_list()
202 return flow; in seek_list()
214 struct hh_flow_state *flow; in alloc_new_hh() local
219 list_for_each_entry(flow, head, flowchain) { in alloc_new_hh()
[all …]
Dcls_flow.c70 static u32 flow_get_src(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_src() argument
72 __be32 src = flow_get_u32_src(flow); in flow_get_src()
80 static u32 flow_get_dst(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_dst() argument
82 __be32 dst = flow_get_u32_dst(flow); in flow_get_dst()
91 const struct flow_keys *flow) in flow_get_proto() argument
93 return flow->basic.ip_proto; in flow_get_proto()
97 const struct flow_keys *flow) in flow_get_proto_src() argument
99 if (flow->ports.ports) in flow_get_proto_src()
100 return ntohs(flow->ports.src); in flow_get_proto_src()
106 const struct flow_keys *flow) in flow_get_proto_dst() argument
[all …]
Dsch_cake.c809 static struct sk_buff *dequeue_head(struct cake_flow *flow) in dequeue_head() argument
811 struct sk_buff *skb = flow->head; in dequeue_head()
814 flow->head = skb->next; in dequeue_head()
823 static void flow_queue_add(struct cake_flow *flow, struct sk_buff *skb) in flow_queue_add() argument
825 if (!flow->head) in flow_queue_add()
826 flow->head = skb; in flow_queue_add()
828 flow->tail->next = skb; in flow_queue_add()
829 flow->tail = skb; in flow_queue_add()
1105 struct cake_flow *flow) in cake_ack_filter() argument
1122 if (flow->head == flow->tail) in cake_ack_filter()
[all …]
/Linux-v4.19/include/net/
Dfq_impl.h16 struct fq_flow *flow, in fq_adjust_removal() argument
19 struct fq_tin *tin = flow->tin; in fq_adjust_removal()
23 flow->backlog -= skb->len; in fq_adjust_removal()
28 static void fq_rejigger_backlog(struct fq *fq, struct fq_flow *flow) in fq_rejigger_backlog() argument
32 if (flow->backlog == 0) { in fq_rejigger_backlog()
33 list_del_init(&flow->backlogchain); in fq_rejigger_backlog()
35 i = flow; in fq_rejigger_backlog()
38 if (i->backlog < flow->backlog) in fq_rejigger_backlog()
41 list_move_tail(&flow->backlogchain, in fq_rejigger_backlog()
47 struct fq_flow *flow) in fq_flow_dequeue() argument
[all …]
/Linux-v4.19/drivers/net/wireless/broadcom/brcm80211/brcmfmac/
Dflowring.c53 brcmf_flowring_is_tdls_mac(struct brcmf_flowring *flow, u8 mac[ETH_ALEN]) in brcmf_flowring_is_tdls_mac() argument
57 search = flow->tdls_entry; in brcmf_flowring_is_tdls_mac()
69 u32 brcmf_flowring_lookup(struct brcmf_flowring *flow, u8 da[ETH_ALEN], in brcmf_flowring_lookup() argument
81 sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT); in brcmf_flowring_lookup()
87 if ((sta) && (flow->tdls_active) && in brcmf_flowring_lookup()
88 (brcmf_flowring_is_tdls_mac(flow, da))) { in brcmf_flowring_lookup()
95 hash = flow->hash; in brcmf_flowring_lookup()
113 u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN], in brcmf_flowring_create() argument
126 sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT); in brcmf_flowring_create()
132 if ((sta) && (flow->tdls_active) && in brcmf_flowring_create()
[all …]
Dflowring.h60 u32 brcmf_flowring_lookup(struct brcmf_flowring *flow, u8 da[ETH_ALEN],
62 u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN],
64 void brcmf_flowring_delete(struct brcmf_flowring *flow, u16 flowid);
65 void brcmf_flowring_open(struct brcmf_flowring *flow, u16 flowid);
66 u8 brcmf_flowring_tid(struct brcmf_flowring *flow, u16 flowid);
67 u32 brcmf_flowring_enqueue(struct brcmf_flowring *flow, u16 flowid,
69 struct sk_buff *brcmf_flowring_dequeue(struct brcmf_flowring *flow, u16 flowid);
70 void brcmf_flowring_reinsert(struct brcmf_flowring *flow, u16 flowid,
72 u32 brcmf_flowring_qlen(struct brcmf_flowring *flow, u16 flowid);
73 u8 brcmf_flowring_ifidx_get(struct brcmf_flowring *flow, u16 flowid);
[all …]
/Linux-v4.19/drivers/gpu/ipu-v3/
Dipu-dp.c54 u32 flow; member
72 struct ipu_flow flow[IPUV3_NUM_FLOWS]; member
90 struct ipu_flow *flow = to_flow(dp); in ipu_dp_set_global_alpha() local
91 struct ipu_dp_priv *priv = flow->priv; in ipu_dp_set_global_alpha()
96 reg = readl(flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
101 writel(reg, flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
104 reg = readl(flow->base + DP_GRAPH_WIND_CTRL) & 0x00FFFFFFL; in ipu_dp_set_global_alpha()
106 flow->base + DP_GRAPH_WIND_CTRL); in ipu_dp_set_global_alpha()
108 reg = readl(flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
109 writel(reg | DP_COM_CONF_GWAM, flow->base + DP_COM_CONF); in ipu_dp_set_global_alpha()
[all …]
/Linux-v4.19/drivers/net/ethernet/netronome/nfp/flower/
Dmatch.c42 struct tc_cls_flower_offload *flow, u8 key_type, in nfp_flower_compile_meta_tci() argument
45 struct fl_flow_key *target = mask_version ? flow->mask : flow->key; in nfp_flower_compile_meta_tci()
54 if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_VLAN)) { in nfp_flower_compile_meta_tci()
55 flow_vlan = skb_flow_dissector_target(flow->dissector, in nfp_flower_compile_meta_tci()
95 struct tc_cls_flower_offload *flow, in nfp_flower_compile_mac() argument
98 struct fl_flow_key *target = mask_version ? flow->mask : flow->key; in nfp_flower_compile_mac()
103 if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { in nfp_flower_compile_mac()
104 addr = skb_flow_dissector_target(flow->dissector, in nfp_flower_compile_mac()
112 if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_MPLS)) { in nfp_flower_compile_mac()
116 mpls = skb_flow_dissector_target(flow->dissector, in nfp_flower_compile_mac()
[all …]
Doffload.c163 struct tc_cls_flower_offload *flow, in nfp_flower_calculate_key_layers() argument
175 if (flow->dissector->used_keys & ~NFP_FLOWER_WHITELIST_DISSECTOR) in nfp_flower_calculate_key_layers()
179 if (flow->dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR && in nfp_flower_calculate_key_layers()
180 (flow->dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR_R) in nfp_flower_calculate_key_layers()
189 if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_ETH_ADDRS) || in nfp_flower_calculate_key_layers()
190 dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_MPLS)) { in nfp_flower_calculate_key_layers()
195 if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_VLAN)) { in nfp_flower_calculate_key_layers()
198 flow_vlan = skb_flow_dissector_target(flow->dissector, in nfp_flower_calculate_key_layers()
200 flow->mask); in nfp_flower_calculate_key_layers()
206 if (dissector_uses_key(flow->dissector, in nfp_flower_calculate_key_layers()
[all …]
/Linux-v4.19/net/openvswitch/
Dflow_table.c81 struct sw_flow *flow; in ovs_flow_alloc() local
84 flow = kmem_cache_zalloc(flow_cache, GFP_KERNEL); in ovs_flow_alloc()
85 if (!flow) in ovs_flow_alloc()
88 flow->stats_last_writer = -1; in ovs_flow_alloc()
99 RCU_INIT_POINTER(flow->stats[0], stats); in ovs_flow_alloc()
101 cpumask_set_cpu(0, &flow->cpu_used_mask); in ovs_flow_alloc()
103 return flow; in ovs_flow_alloc()
105 kmem_cache_free(flow_cache, flow); in ovs_flow_alloc()
137 static void flow_free(struct sw_flow *flow) in flow_free() argument
141 if (ovs_identifier_is_key(&flow->id)) in flow_free()
[all …]
/Linux-v4.19/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.c189 struct bnxt_tc_flow *flow) in bnxt_tc_parse_flow() argument
215 flow->l2_key.ether_type = key->n_proto; in bnxt_tc_parse_flow()
216 flow->l2_mask.ether_type = mask->n_proto; in bnxt_tc_parse_flow()
220 flow->l4_key.ip_proto = key->ip_proto; in bnxt_tc_parse_flow()
221 flow->l4_mask.ip_proto = mask->ip_proto; in bnxt_tc_parse_flow()
231 flow->flags |= BNXT_TC_FLOW_FLAGS_ETH_ADDRS; in bnxt_tc_parse_flow()
232 ether_addr_copy(flow->l2_key.dmac, key->dst); in bnxt_tc_parse_flow()
233 ether_addr_copy(flow->l2_mask.dmac, mask->dst); in bnxt_tc_parse_flow()
234 ether_addr_copy(flow->l2_key.smac, key->src); in bnxt_tc_parse_flow()
235 ether_addr_copy(flow->l2_mask.smac, mask->src); in bnxt_tc_parse_flow()
[all …]
/Linux-v4.19/net/netfilter/
Dnf_flow_table_core.c16 struct flow_offload flow; member
25 flow_offload_fill_dir(struct flow_offload *flow, struct nf_conn *ct, in flow_offload_fill_dir() argument
29 struct flow_offload_tuple *ft = &flow->tuplehash[dir].tuple; in flow_offload_fill_dir()
62 struct flow_offload *flow; in flow_offload_alloc() local
72 flow = &entry->flow; in flow_offload_alloc()
82 flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_ORIGINAL); in flow_offload_alloc()
83 flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_REPLY); in flow_offload_alloc()
86 flow->flags |= FLOW_OFFLOAD_SNAT; in flow_offload_alloc()
88 flow->flags |= FLOW_OFFLOAD_DNAT; in flow_offload_alloc()
90 return flow; in flow_offload_alloc()
[all …]
Dnf_flow_table_ip.c18 static int nf_flow_state_check(struct flow_offload *flow, int proto, in nf_flow_state_check() argument
31 flow_offload_teardown(flow); in nf_flow_state_check()
91 static int nf_flow_snat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_snat_ip() argument
100 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr; in nf_flow_snat_ip()
105 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr; in nf_flow_snat_ip()
116 static int nf_flow_dnat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_dnat_ip() argument
125 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_v4.s_addr; in nf_flow_dnat_ip()
130 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_v4.s_addr; in nf_flow_dnat_ip()
141 static int nf_flow_nat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_nat_ip() argument
146 if (flow->flags & FLOW_OFFLOAD_SNAT && in nf_flow_nat_ip()
[all …]
/Linux-v4.19/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-v4.19/samples/bpf/
Dsockex2_kern.c62 struct bpf_flow_keys *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 bpf_flow_keys *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()
99 static inline bool flow_dissector(struct __sk_buff *skb, struct bpf_flow_keys *flow) in flow_dissector() argument
119 nhoff = parse_ip(skb, nhoff, &ip_proto, flow); in flow_dissector()
121 nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow); in flow_dissector()
157 nhoff = parse_ip(skb, nhoff, &ip_proto, flow); in flow_dissector()
[all …]
/Linux-v4.19/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-v4.19/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 …]
Dsecid.txt3 The secid member in the flow structure is used in LSMs (e.g. SELinux) to indicate
4 the label of the flow. This label of the flow is currently used in selecting
7 If this is an outbound flow, the label is derived from the socket, if any, or
8 the incoming packet this flow is being generated as a response to (e.g. tcp
13 If this is an inbound flow, the label is derived from the IPSec security
/Linux-v4.19/drivers/net/ethernet/mellanox/mlx5/core/
Den_tc.c172 struct mlx5e_tc_flow *flow, in mlx5e_attach_mod_hdr() argument
190 if (flow->flags & MLX5E_TC_FLOW_ESWITCH) { in mlx5e_attach_mod_hdr()
229 if (flow->flags & MLX5E_TC_FLOW_ESWITCH) in mlx5e_attach_mod_hdr()
235 list_add(&flow->mod_hdr, &mh->flows); in mlx5e_attach_mod_hdr()
236 if (flow->flags & MLX5E_TC_FLOW_ESWITCH) in mlx5e_attach_mod_hdr()
237 flow->esw_attr->mod_hdr_id = mh->mod_hdr_id; in mlx5e_attach_mod_hdr()
239 flow->nic_attr->mod_hdr_id = mh->mod_hdr_id; in mlx5e_attach_mod_hdr()
249 struct mlx5e_tc_flow *flow) in mlx5e_detach_mod_hdr() argument
251 struct list_head *next = flow->mod_hdr.next; in mlx5e_detach_mod_hdr()
253 list_del(&flow->mod_hdr); in mlx5e_detach_mod_hdr()
[all …]
/Linux-v4.19/tools/testing/selftests/bpf/
Dtest_xdp_noinline.c128 struct flow_key flow; member
255 pckt->flow.port16[0] = udp->source; in parse_udp()
256 pckt->flow.port16[1] = udp->dest; in parse_udp()
258 pckt->flow.port16[0] = udp->dest; in parse_udp()
259 pckt->flow.port16[1] = udp->source; in parse_udp()
279 pckt->flow.port16[0] = tcp->source; in parse_tcp()
280 pckt->flow.port16[1] = tcp->dest; in parse_tcp()
282 pckt->flow.port16[0] = tcp->dest; in parse_tcp()
283 pckt->flow.port16[1] = tcp->source; in parse_tcp()
318 ip_suffix = pckt->flow.srcv6[3] ^ pckt->flow.port16[0]; in encap_v6()
[all …]
/Linux-v4.19/net/ipv4/netfilter/
Dipt_rpfilter.c76 struct flowi4 flow; in rpfilter_mt() local
92 memset(&flow, 0, sizeof(flow)); in rpfilter_mt()
93 flow.flowi4_iif = LOOPBACK_IFINDEX; in rpfilter_mt()
94 flow.daddr = iph->saddr; in rpfilter_mt()
95 flow.saddr = rpfilter_get_saddr(iph->daddr); in rpfilter_mt()
96 flow.flowi4_mark = info->flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0; in rpfilter_mt()
97 flow.flowi4_tos = RT_TOS(iph->tos); in rpfilter_mt()
98 flow.flowi4_scope = RT_SCOPE_UNIVERSE; in rpfilter_mt()
100 return rpfilter_lookup_reverse(xt_net(par), &flow, xt_in(par), info->flags) ^ invert; in rpfilter_mt()
/Linux-v4.19/include/net/netfilter/
Dnf_flow_table.h93 void flow_offload_free(struct flow_offload *flow);
95 int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow);
99 void (*iter)(struct flow_offload *flow, void *data),
107 void flow_offload_teardown(struct flow_offload *flow);
108 static inline void flow_offload_dead(struct flow_offload *flow) in flow_offload_dead() argument
110 flow->flags |= FLOW_OFFLOAD_DYING; in flow_offload_dead()
113 int nf_flow_snat_port(const struct flow_offload *flow,
116 int nf_flow_dnat_port(const struct flow_offload *flow,
/Linux-v4.19/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 …]

12345678910>>...13