Lines Matching refs:flow
516 static inline const u32 *flow_keys_hash_start(const struct flow_keys *flow) in flow_keys_hash_start() argument
518 const void *p = flow; in flow_keys_hash_start()
524 static inline size_t flow_keys_hash_length(const struct flow_keys *flow) in flow_keys_hash_length() argument
526 size_t diff = FLOW_KEYS_HASH_OFFSET + sizeof(flow->addrs); in flow_keys_hash_length()
527 BUILD_BUG_ON((sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32)); in flow_keys_hash_length()
528 BUILD_BUG_ON(offsetof(typeof(*flow), addrs) != in flow_keys_hash_length()
529 sizeof(*flow) - sizeof(flow->addrs)); in flow_keys_hash_length()
531 switch (flow->control.addr_type) { in flow_keys_hash_length()
533 diff -= sizeof(flow->addrs.v4addrs); in flow_keys_hash_length()
536 diff -= sizeof(flow->addrs.v6addrs); in flow_keys_hash_length()
539 diff -= sizeof(flow->addrs.tipcaddrs); in flow_keys_hash_length()
542 return (sizeof(*flow) - diff) / sizeof(u32); in flow_keys_hash_length()
545 __be32 flow_get_u32_src(const struct flow_keys *flow) in flow_get_u32_src() argument
547 switch (flow->control.addr_type) { in flow_get_u32_src()
549 return flow->addrs.v4addrs.src; in flow_get_u32_src()
552 &flow->addrs.v6addrs.src); in flow_get_u32_src()
554 return flow->addrs.tipcaddrs.srcnode; in flow_get_u32_src()
561 __be32 flow_get_u32_dst(const struct flow_keys *flow) in flow_get_u32_dst() argument
563 switch (flow->control.addr_type) { in flow_get_u32_dst()
565 return flow->addrs.v4addrs.dst; in flow_get_u32_dst()
568 &flow->addrs.v6addrs.dst); in flow_get_u32_dst()
648 const struct flow_keys *flow) in make_flow_keys_digest() argument
657 data->n_proto = flow->basic.n_proto; in make_flow_keys_digest()
658 data->ip_proto = flow->basic.ip_proto; in make_flow_keys_digest()
659 data->ports = flow->ports.ports; in make_flow_keys_digest()
660 data->src = flow->addrs.v4addrs.src; in make_flow_keys_digest()
661 data->dst = flow->addrs.v4addrs.dst; in make_flow_keys_digest()