linux/net/ipv4/tcp_ulp.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Pluggable TCP upper layer protocol support.
 *
 * Copyright (c) 2016-2017, Mellanox Technologies. All rights reserved.
 * Copyright (c) 2016-2017, Dave Watson <[email protected]>. All rights reserved.
 *
 */

#include <linux/module.h>
#include <linux/mm.h>
#include <linux/types.h>
#include <linux/list.h>
#include <linux/gfp.h>
#include <net/tcp.h>

static DEFINE_SPINLOCK(tcp_ulp_list_lock);
static LIST_HEAD(tcp_ulp_list);

/* Simple linear search, don't expect many entries! */
static struct tcp_ulp_ops *tcp_ulp_find(const char *name)
{}

static const struct tcp_ulp_ops *__tcp_ulp_find_autoload(const char *name)
{}

/* Attach new upper layer protocol to the list
 * of available protocols.
 */
int tcp_register_ulp(struct tcp_ulp_ops *ulp)
{}
EXPORT_SYMBOL_GPL();

void tcp_unregister_ulp(struct tcp_ulp_ops *ulp)
{}
EXPORT_SYMBOL_GPL();

/* Build string with list of available upper layer protocl values */
void tcp_get_available_ulp(char *buf, size_t maxlen)
{}

void tcp_update_ulp(struct sock *sk, struct proto *proto,
		    void (*write_space)(struct sock *sk))
{}

void tcp_cleanup_ulp(struct sock *sk)
{}

static int __tcp_set_ulp(struct sock *sk, const struct tcp_ulp_ops *ulp_ops)
{}

int tcp_set_ulp(struct sock *sk, const char *name)
{}