Home
last modified time | relevance | path

Searched full:flow (Results 1 – 25 of 2973) sorted by relevance

12345678910>>...119

/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-4.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 …]
/kernel/linux/linux-4.19/net/sched/
Dsch_atm.c23 * Each class maps the flow(s) it is handling to a given VC. Multiple classes
38 * - should lock the flow while there is data in the queue (?)
57 struct atm_flow_data *excess; /* flow for excess traffic;
70 /* ------------------------- Class/flow operations ------------------------- */
75 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
91 pr_debug("atm_tc_graft(sch %p,[qdisc %p],flow %p,new %p,old %p)\n", in atm_tc_graft()
[all …]
Dsch_fq_codel.c37 * Each flow has a CoDel managed queue.
41 * For a given flow, packets are not reordered (CoDel uses a FIFO)
44 * Low memory footprint (64 bytes per flow)
52 u32 dropped; /* number of drops (or ECN marks) on this flow */
122 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()
131 /* add skb to flow queue (tail add) */
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()
[all …]
/kernel/linux/linux-5.10/net/sched/
Dsch_atm.c24 * 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/
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 …]
/kernel/linux/linux-4.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 …]
/kernel/linux/linux-5.10/drivers/net/phy/mscc/
Dmscc_macsec.c371 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-4.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 …]
/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-5.10/net/netfilter/
Dnf_flow_table_core.c21 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 …]
Dnf_flow_table_offload.c23 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 …]
Dnf_flow_table_ip.c20 static int nf_flow_state_check(struct flow_offload *flow, int proto, in nf_flow_state_check() argument
30 flow_offload_teardown(flow); in nf_flow_state_check()
88 static int nf_flow_snat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_snat_ip() argument
97 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr; in nf_flow_snat_ip()
102 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr; in nf_flow_snat_ip()
113 static int nf_flow_dnat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_dnat_ip() argument
122 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_v4.s_addr; in nf_flow_dnat_ip()
127 new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_v4.s_addr; in nf_flow_dnat_ip()
138 static int nf_flow_nat_ip(const struct flow_offload *flow, struct sk_buff *skb, in nf_flow_nat_ip() argument
143 if (test_bit(NF_FLOW_SNAT, &flow->flags) && in nf_flow_nat_ip()
[all …]
/kernel/linux/linux-4.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()
93 struct tc_cls_flower_offload *flow, in nfp_flower_compile_mac() argument
96 struct fl_flow_key *target = mask_version ? flow->mask : flow->key; in nfp_flower_compile_mac()
101 if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { in nfp_flower_compile_mac()
102 addr = skb_flow_dissector_target(flow->dissector, in nfp_flower_compile_mac()
110 if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_MPLS)) { in nfp_flower_compile_mac()
114 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 …]
/kernel/linux/linux-4.19/net/openvswitch/
Dflow_table.c19 #include "flow.h"
81 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
[all …]
/kernel/linux/linux-5.10/Documentation/networking/
Dopenvswitch.rst8 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-4.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
26 Flow key compatibility
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
[all …]
/kernel/linux/linux-4.19/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.c39 /* Return the dst fid of the func for flow forwarding
189 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()
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.c43 /* 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-4.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()
63 struct flow_offload *flow; in flow_offload_alloc() local
73 flow = &entry->flow; in flow_offload_alloc()
83 flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_ORIGINAL); in flow_offload_alloc()
84 flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_REPLY); in flow_offload_alloc()
87 flow->flags |= FLOW_OFFLOAD_SNAT; in flow_offload_alloc()
89 flow->flags |= FLOW_OFFLOAD_DNAT; in flow_offload_alloc()
91 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 …]
/kernel/linux/linux-5.10/net/openvswitch/
Dflow_table.c6 #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/
Den_tc.c129 /* 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-5.10/drivers/infiniband/hw/hfi1/
Dtid_rdma.c37 /* 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 …]

12345678910>>...119