Lines Matching defs:flow

83 		/* BPF flow dissector in the root namespace overrides
97 /* Make sure root flow dissector is not attached
761 * @key_control: flow dissectors control key
771 * allows the flow dissector to continue processing the packet.
1016 * @skb: sk_buff to extract the flow from, can be NULL if the rest are specified
1020 * @proto: protocol for which to get the flow, if @data is NULL use skb->protocol
1065 /* Only DSA header taggers break flow dissection */
1682 static const void *flow_keys_hash_start(const struct flow_keys *flow)
1685 return &flow->FLOW_KEYS_HASH_START_FIELD;
1688 static inline size_t flow_keys_hash_length(const struct flow_keys *flow)
1690 size_t diff = FLOW_KEYS_HASH_OFFSET + sizeof(flow->addrs);
1692 BUILD_BUG_ON((sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32));
1694 switch (flow->control.addr_type) {
1696 diff -= sizeof(flow->addrs.v4addrs);
1699 diff -= sizeof(flow->addrs.v6addrs);
1702 diff -= sizeof(flow->addrs.tipckey);
1705 return sizeof(*flow) - diff;
1708 __be32 flow_get_u32_src(const struct flow_keys *flow)
1710 switch (flow->control.addr_type) {
1712 return flow->addrs.v4addrs.src;
1715 &flow->addrs.v6addrs.src);
1717 return flow->addrs.tipckey.key;
1724 __be32 flow_get_u32_dst(const struct flow_keys *flow)
1726 switch (flow->control.addr_type) {
1728 return flow->addrs.v4addrs.dst;
1731 &flow->addrs.v6addrs.dst);
1815 const struct flow_keys *flow)
1824 data->n_proto = flow->basic.n_proto;
1825 data->ip_proto = flow->basic.ip_proto;
1826 data->ports = flow->ports.ports;
1827 data->src = flow->addrs.v4addrs.src;
1828 data->dst = flow->addrs.v4addrs.dst;
1849 * __skb_get_hash: calculate a flow hash
1850 * @skb: sk_buff to calculate flow hash from
1852 * This function calculates a flow hash based on src/dst addresses