/Linux-v4.19/net/sched/ |
D | sch_atm.c | 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 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 …]
|
D | sch_fq_codel.c | 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() 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 …]
|
D | sch_hhf.c | 183 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 …]
|
D | cls_flow.c | 70 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 …]
|
D | sch_cake.c | 809 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/ |
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 …]
|
/Linux-v4.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 …]
|
D | flowring.h | 60 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/ |
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 …]
|
/Linux-v4.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() 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 …]
|
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 …]
|
/Linux-v4.19/net/openvswitch/ |
D | flow_table.c | 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 141 if (ovs_identifier_is_key(&flow->id)) in flow_free() [all …]
|
/Linux-v4.19/drivers/net/ethernet/broadcom/bnxt/ |
D | bnxt_tc.c | 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() 235 ether_addr_copy(flow->l2_mask.smac, mask->src); in bnxt_tc_parse_flow() [all …]
|
/Linux-v4.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() 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 …]
|
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 …]
|
/Linux-v4.19/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ |
D | tls.c | 39 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/ |
D | sockex2_kern.c | 62 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/ |
D | usnic_fwd.c | 203 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/ |
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 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 …]
|
D | secid.txt | 3 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/ |
D | en_tc.c | 172 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/ |
D | test_xdp_noinline.c | 128 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/ |
D | ipt_rpfilter.c | 76 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/ |
D | nf_flow_table.h | 93 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/ |
D | genericirq.rst | 52 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 …]
|