Lines Matching defs:flow
4135 * to correlate ICMP error packets within the same flow which
4157 static u32 bond_ip_hash(u32 hash, struct flow_keys *flow, int xmit_policy)
4159 hash ^= (__force u32)flow_get_u32_dst(flow) ^
4160 (__force u32)flow_get_u32_src(flow);
4179 struct flow_keys flow;
4186 !bond_flow_dissect(bond, skb, data, l2_proto, nhoff, hlen, &flow))
4193 if (flow.icmp.id)
4194 memcpy(&hash, &flow.icmp, sizeof(hash));
4196 memcpy(&hash, &flow.ports.ports, sizeof(hash));
4199 return bond_ip_hash(hash, &flow, bond->params.xmit_policy);
5324 static void bond_sk_to_flow(struct sock *sk, struct flow_keys *flow)
5331 flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
5332 flow->addrs.v6addrs.src = inet6_sk(sk)->saddr;
5333 flow->addrs.v6addrs.dst = sk->sk_v6_daddr;
5339 flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS;
5340 flow->addrs.v4addrs.src = inet_sk(sk)->inet_rcv_saddr;
5341 flow->addrs.v4addrs.dst = inet_sk(sk)->inet_daddr;
5345 flow->ports.src = inet_sk(sk)->inet_sport;
5346 flow->ports.dst = inet_sk(sk)->inet_dport;
5359 struct flow_keys flow;
5362 bond_sk_to_flow(sk, &flow);
5365 memcpy(&hash, &flow.ports.ports, sizeof(hash));
5367 return bond_ip_hash(hash, &flow, BOND_XMIT_POLICY_LAYER34);