mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
This specific structure is used in the ovpn kernel module to wrap and carry around a standard kernel socket. ovpn takes ownership of passed sockets and therefore an ovpn specific objects is attached to them for status tracking purposes. Initially only UDP support is introduced. TCP will come in a later patch. Cc: willemdebruijn.kernel@gmail.com Signed-off-by: Antonio Quartulli <antonio@openvpn.net> Link: https://patch.msgid.link/20250415-b4-ovpn-v26-6-577f6097b964@openvpn.net Reviewed-by: Sabrina Dubroca <sd@queasysnail.net> Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
39 lines
957 B
C
39 lines
957 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/* OpenVPN data channel offload
|
|
*
|
|
* Copyright (C) 2020-2025 OpenVPN, Inc.
|
|
*
|
|
* Author: James Yonan <james@openvpn.net>
|
|
* Antonio Quartulli <antonio@openvpn.net>
|
|
*/
|
|
|
|
#ifndef _NET_OVPN_SOCK_H_
|
|
#define _NET_OVPN_SOCK_H_
|
|
|
|
#include <linux/net.h>
|
|
#include <linux/kref.h>
|
|
#include <net/sock.h>
|
|
|
|
struct ovpn_priv;
|
|
struct ovpn_peer;
|
|
|
|
/**
|
|
* struct ovpn_socket - a kernel socket referenced in the ovpn code
|
|
* @ovpn: ovpn instance owning this socket (UDP only)
|
|
* @sock: the low level sock object
|
|
* @refcount: amount of contexts currently referencing this object
|
|
* @rcu: member used to schedule RCU destructor callback
|
|
*/
|
|
struct ovpn_socket {
|
|
struct ovpn_priv *ovpn;
|
|
struct socket *sock;
|
|
struct kref refcount;
|
|
struct rcu_head rcu;
|
|
};
|
|
|
|
struct ovpn_socket *ovpn_socket_new(struct socket *sock,
|
|
struct ovpn_peer *peer);
|
|
void ovpn_socket_release(struct ovpn_peer *peer);
|
|
|
|
#endif /* _NET_OVPN_SOCK_H_ */
|