xref: /linux/include/uapi/linux/kcm.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  * Kernel Connection Multiplexor
4  *
5  * Copyright (c) 2016 Tom Herbert <tom@herbertland.com>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2
9  * as published by the Free Software Foundation.
10  *
11  * User API to clone KCM sockets and attach transport socket to a KCM
12  * multiplexor.
13  */
14 
15 #ifndef KCM_KERNEL_H
16 #define KCM_KERNEL_H
17 
18 struct kcm_attach {
19 	int fd;
20 	int bpf_fd;
21 };
22 
23 struct kcm_unattach {
24 	int fd;
25 };
26 
27 struct kcm_clone {
28 	int fd;
29 };
30 
31 #define SIOCKCMATTACH	(SIOCPROTOPRIVATE + 0)
32 #define SIOCKCMUNATTACH	(SIOCPROTOPRIVATE + 1)
33 #define SIOCKCMCLONE	(SIOCPROTOPRIVATE + 2)
34 
35 #define KCMPROTO_CONNECTED	0
36 
37 /* Socket options */
38 #define KCM_RECV_DISABLE	1
39 
40 #endif
41 
42