| /kernel/linux/linux-5.10/include/net/ |
| D | fq_impl.h | 15 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/ |
| D | fq_impl.h | 16 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/ |
| D | sch_atm.c | 23 * 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 …]
|
| D | sch_fq_codel.c | 37 * 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/ |
| D | sch_atm.c | 24 * 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/ |
| D | flowring.c | 43 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/ |
| D | flowring.c | 53 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/ |
| D | mscc_macsec.c | 371 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/ |
| D | ipu-dp.c | 54 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/ |
| D | ipu-dp.c | 45 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/ |
| D | nf_flow_table_core.c | 21 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 …]
|
| D | nf_flow_table_offload.c | 23 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 …]
|
| D | nf_flow_table_ip.c | 20 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/ |
| D | match.c | 42 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 …]
|
| D | offload.c | 163 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/ |
| D | flow_table.c | 19 #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/ |
| D | openvswitch.rst | 8 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/ |
| D | openvswitch.txt | 5 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/ |
| D | bnxt_tc.c | 39 /* 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/ |
| D | bnxt_tc.c | 43 /* 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/ |
| D | nf_flow_table_core.c | 16 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 …]
|
| D | nf_flow_table_ip.c | 18 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/ |
| D | flow_table.c | 6 #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/ |
| D | en_tc.c | 129 /* 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/ |
| D | tid_rdma.c | 37 /* 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 …]
|