File Index
Files and directories
Sign in
FILE

secure_seq.h

File preview with syntax highlighting.

linux-6.19.14/include/net/secure_seq.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef _NET_SECURE_SEQ
 3#define _NET_SECURE_SEQ
 4
 5#include <linux/types.h>
 6
 7struct net;
 8extern struct net init_net;
 9
10union tcp_seq_and_ts_off {
11	struct {
12		u32 seq;
13		u32 ts_off;
14	};
15	u64 hash64;
16};
17
18u64 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport);
19u64 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
20			       __be16 dport);
21union tcp_seq_and_ts_off
22secure_tcp_seq_and_ts_off(const struct net *net, __be32 saddr, __be32 daddr,
23			  __be16 sport, __be16 dport);
24
25static inline u32 secure_tcp_seq(__be32 saddr, __be32 daddr,
26				 __be16 sport, __be16 dport)
27{
28	union tcp_seq_and_ts_off ts;
29
30	ts = secure_tcp_seq_and_ts_off(&init_net, saddr, daddr,
31				       sport, dport);
32
33	return ts.seq;
34}
35
36union tcp_seq_and_ts_off
37secure_tcpv6_seq_and_ts_off(const struct net *net, const __be32 *saddr,
38			    const __be32 *daddr,
39			    __be16 sport, __be16 dport);
40
41static inline u32 secure_tcpv6_seq(const __be32 *saddr, const __be32 *daddr,
42				   __be16 sport, __be16 dport)
43{
44	union tcp_seq_and_ts_off ts;
45
46	ts = secure_tcpv6_seq_and_ts_off(&init_net, saddr, daddr,
47					 sport, dport);
48
49	return ts.seq;
50}
51#endif /* _NET_SECURE_SEQ */
~/ Read-only file preview.