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