linux/net/xfrm/espintcp.c

// SPDX-License-Identifier: GPL-2.0
#include <net/tcp.h>
#include <net/strparser.h>
#include <net/xfrm.h>
#include <net/esp.h>
#include <net/espintcp.h>
#include <linux/skmsg.h>
#include <net/inet_common.h>
#include <trace/events/sock.h>
#if IS_ENABLED(CONFIG_IPV6)
#include <net/ipv6_stubs.h>
#endif
#include <net/hotdata.h>

static void handle_nonesp(struct espintcp_ctx *ctx, struct sk_buff *skb,
			  struct sock *sk)
{}

static void handle_esp(struct sk_buff *skb, struct sock *sk)
{}

static void espintcp_rcv(struct strparser *strp, struct sk_buff *skb)
{}

static int espintcp_parse(struct strparser *strp, struct sk_buff *skb)
{}

static int espintcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
			    int flags, int *addr_len)
{}

int espintcp_queue_out(struct sock *sk, struct sk_buff *skb)
{}
EXPORT_SYMBOL_GPL();

/* espintcp length field is 2B and length includes the length field's size */
#define MAX_ESPINTCP_MSG

static int espintcp_sendskb_locked(struct sock *sk, struct espintcp_msg *emsg,
				   int flags)
{}

static int espintcp_sendskmsg_locked(struct sock *sk,
				     struct espintcp_msg *emsg, int flags)
{}

static int espintcp_push_msgs(struct sock *sk, int flags)
{}

int espintcp_push_skb(struct sock *sk, struct sk_buff *skb)
{}
EXPORT_SYMBOL_GPL();

static int espintcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
{}

static struct proto espintcp_prot __ro_after_init;
static struct proto_ops espintcp_ops __ro_after_init;
static struct proto espintcp6_prot;
static struct proto_ops espintcp6_ops;
static DEFINE_MUTEX(tcpv6_prot_mutex);

static void espintcp_data_ready(struct sock *sk)
{}

static void espintcp_tx_work(struct work_struct *work)
{}

static void espintcp_write_space(struct sock *sk)
{}

static void espintcp_destruct(struct sock *sk)
{}

bool tcp_is_ulp_esp(struct sock *sk)
{}
EXPORT_SYMBOL_GPL();

static void build_protos(struct proto *espintcp_prot,
			 struct proto_ops *espintcp_ops,
			 const struct proto *orig_prot,
			 const struct proto_ops *orig_ops);
static int espintcp_init_sk(struct sock *sk)
{}

static void espintcp_release(struct sock *sk)
{}

static void espintcp_close(struct sock *sk, long timeout)
{}

static __poll_t espintcp_poll(struct file *file, struct socket *sock,
			      poll_table *wait)
{}

static void build_protos(struct proto *espintcp_prot,
			 struct proto_ops *espintcp_ops,
			 const struct proto *orig_prot,
			 const struct proto_ops *orig_ops)
{}

static struct tcp_ulp_ops espintcp_ulp __read_mostly =;

void __init espintcp_init(void)
{}