111851cbdSAntonio Quartulli /* SPDX-License-Identifier: GPL-2.0-only */ 211851cbdSAntonio Quartulli /* OpenVPN data channel offload 311851cbdSAntonio Quartulli * 411851cbdSAntonio Quartulli * Copyright (C) 2019-2025 OpenVPN, Inc. 511851cbdSAntonio Quartulli * 611851cbdSAntonio Quartulli * Author: Antonio Quartulli <antonio@openvpn.net> 711851cbdSAntonio Quartulli */ 811851cbdSAntonio Quartulli 911851cbdSAntonio Quartulli #ifndef _NET_OVPN_TCP_H_ 1011851cbdSAntonio Quartulli #define _NET_OVPN_TCP_H_ 1111851cbdSAntonio Quartulli 1211851cbdSAntonio Quartulli #include <linux/net.h> 1311851cbdSAntonio Quartulli #include <linux/skbuff.h> 1411851cbdSAntonio Quartulli #include <linux/types.h> 1511851cbdSAntonio Quartulli 1611851cbdSAntonio Quartulli #include "peer.h" 1711851cbdSAntonio Quartulli #include "skb.h" 1811851cbdSAntonio Quartulli #include "socket.h" 1911851cbdSAntonio Quartulli 2011851cbdSAntonio Quartulli void __init ovpn_tcp_init(void); 2111851cbdSAntonio Quartulli 2211851cbdSAntonio Quartulli int ovpn_tcp_socket_attach(struct ovpn_socket *ovpn_sock, 2311851cbdSAntonio Quartulli struct ovpn_peer *peer); 2411851cbdSAntonio Quartulli void ovpn_tcp_socket_detach(struct ovpn_socket *ovpn_sock); 2511851cbdSAntonio Quartulli void ovpn_tcp_socket_wait_finish(struct ovpn_socket *sock); 2611851cbdSAntonio Quartulli 2711851cbdSAntonio Quartulli /* Prepare skb and enqueue it for sending to peer. 2811851cbdSAntonio Quartulli * 2911851cbdSAntonio Quartulli * Preparation consist in prepending the skb payload with its size. 3011851cbdSAntonio Quartulli * Required by the OpenVPN protocol in order to extract packets from 3111851cbdSAntonio Quartulli * the TCP stream on the receiver side. 3211851cbdSAntonio Quartulli */ 33*ba499a07SAntonio Quartulli void ovpn_tcp_send_skb(struct ovpn_peer *peer, struct sock *sk, 34*ba499a07SAntonio Quartulli struct sk_buff *skb); 3511851cbdSAntonio Quartulli void ovpn_tcp_tx_work(struct work_struct *work); 3611851cbdSAntonio Quartulli 3711851cbdSAntonio Quartulli #endif /* _NET_OVPN_TCP_H_ */ 38