summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/kcm.h
diff options
context:
space:
mode:
authorTom Herbert <tom@herbertland.com>2016-03-07 14:11:06 -0800
committerDavid S. Miller <davem@davemloft.net>2016-03-09 16:36:14 -0500
commitab7ac4eb9832e32a09f4e8042705484d2fb0aad3 (patch)
tree386057aeaceeaa0e0365814f544989e42c484a09 /include/uapi/linux/kcm.h
parent473bd239b808a8af5241ce9996a16d283d88ddff (diff)
downloadlinux-stable-ab7ac4eb9832e32a09f4e8042705484d2fb0aad3.tar.gz
linux-stable-ab7ac4eb9832e32a09f4e8042705484d2fb0aad3.tar.bz2
linux-stable-ab7ac4eb9832e32a09f4e8042705484d2fb0aad3.zip
kcm: Kernel Connection Multiplexor module
This module implements the Kernel Connection Multiplexor. Kernel Connection Multiplexor (KCM) is a facility that provides a message based interface over TCP for generic application protocols. With KCM an application can efficiently send and receive application protocol messages over TCP using datagram sockets. For more information see the included Documentation/networking/kcm.txt Signed-off-by: Tom Herbert <tom@herbertland.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi/linux/kcm.h')
-rw-r--r--include/uapi/linux/kcm.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/uapi/linux/kcm.h b/include/uapi/linux/kcm.h
new file mode 100644
index 000000000000..a5a530940b99
--- /dev/null
+++ b/include/uapi/linux/kcm.h
@@ -0,0 +1,40 @@
+/*
+ * Kernel Connection Multiplexor
+ *
+ * Copyright (c) 2016 Tom Herbert <tom@herbertland.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * User API to clone KCM sockets and attach transport socket to a KCM
+ * multiplexor.
+ */
+
+#ifndef KCM_KERNEL_H
+#define KCM_KERNEL_H
+
+struct kcm_attach {
+ int fd;
+ int bpf_fd;
+};
+
+struct kcm_unattach {
+ int fd;
+};
+
+struct kcm_clone {
+ int fd;
+};
+
+#define SIOCKCMATTACH (SIOCPROTOPRIVATE + 0)
+#define SIOCKCMUNATTACH (SIOCPROTOPRIVATE + 1)
+#define SIOCKCMCLONE (SIOCPROTOPRIVATE + 2)
+
+#define KCMPROTO_CONNECTED 0
+
+/* Socket options */
+#define KCM_RECV_DISABLE 1
+
+#endif
+