1 #ifndef _NET_FLOW_KEYS_H
2 #define _NET_FLOW_KEYS_H
5 * @src: source ip address in case of IPv4
6 * For IPv6 it contains 32bit hash of src address
7 * @dst: destination ip address in case of IPv4
8 * For IPv6 it contains 32bit hash of dst address
9 * @ports: port numbers of Transport header
10 * port16[0]: src port number
11 * port16[1]: dst port number
12 * @thoff: Transport header offset
13 * @n_proto: Network header protocol (eg. IPv4/IPv6)
14 * @ip_proto: Transport header protocol (eg. TCP/UDP)
15 * All the members, except thoff, are in network byte order.
18 /* (src,dst) must be grouped, in the same way than in IP header */
30 bool __skb_flow_dissect(const struct sk_buff
*skb
, struct flow_keys
*flow
,
31 void *data
, __be16 proto
, int nhoff
, int hlen
);
32 static inline bool skb_flow_dissect(const struct sk_buff
*skb
, struct flow_keys
*flow
)
34 return __skb_flow_dissect(skb
, flow
, NULL
, 0, 0, 0);
36 __be32
__skb_flow_get_ports(const struct sk_buff
*skb
, int thoff
, u8 ip_proto
,
37 void *data
, int hlen_proto
);
38 static inline __be32
skb_flow_get_ports(const struct sk_buff
*skb
, int thoff
, u8 ip_proto
)
40 return __skb_flow_get_ports(skb
, thoff
, ip_proto
, NULL
, 0);
42 u32
flow_hash_from_keys(struct flow_keys
*keys
);
43 unsigned int flow_get_hlen(const unsigned char *data
, unsigned int max_len
,