Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at cd546f7ae2fce8b695c834143b50e712d62ebed8 51 lines 1.2 kB view raw
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 */