cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

espintcp.h (966B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _NET_ESPINTCP_H
      3#define _NET_ESPINTCP_H
      4
      5#include <net/strparser.h>
      6#include <linux/skmsg.h>
      7
      8void __init espintcp_init(void);
      9
     10int espintcp_push_skb(struct sock *sk, struct sk_buff *skb);
     11int espintcp_queue_out(struct sock *sk, struct sk_buff *skb);
     12bool tcp_is_ulp_esp(struct sock *sk);
     13
     14struct espintcp_msg {
     15	struct sk_buff *skb;
     16	struct sk_msg skmsg;
     17	int offset;
     18	int len;
     19};
     20
     21struct espintcp_ctx {
     22	struct strparser strp;
     23	struct sk_buff_head ike_queue;
     24	struct sk_buff_head out_queue;
     25	struct espintcp_msg partial;
     26	void (*saved_data_ready)(struct sock *sk);
     27	void (*saved_write_space)(struct sock *sk);
     28	void (*saved_destruct)(struct sock *sk);
     29	struct work_struct work;
     30	bool tx_running;
     31};
     32
     33static inline struct espintcp_ctx *espintcp_getctx(const struct sock *sk)
     34{
     35	struct inet_connection_sock *icsk = inet_csk(sk);
     36
     37	/* RCU is only needed for diag */
     38	return (__force void *)icsk->icsk_ulp_data;
     39}
     40#endif