mctp: Add MCTP base
Add basic Kconfig, an initial (empty) af_mctp source object, and {AF,PF}_MCTP definitions, and the required definitions for a new protocol type. Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
658e6b1612
Коммит
bc49d8169a
|
@ -11032,6 +11032,13 @@ F: drivers/mailbox/arm_mhuv2.c
|
|||
F: include/linux/mailbox/arm_mhuv2_message.h
|
||||
F: Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml
|
||||
|
||||
MANAGEMENT COMPONENT TRANSPORT PROTOCOL (MCTP)
|
||||
M: Jeremy Kerr <jk@codeconstruct.com.au>
|
||||
M: Matt Johnston <matt@codeconstruct.com.au>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: net/mctp/
|
||||
|
||||
MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
|
||||
M: Michael Kerrisk <mtk.manpages@gmail.com>
|
||||
L: linux-man@vger.kernel.org
|
||||
|
|
|
@ -223,8 +223,11 @@ struct ucred {
|
|||
* reuses AF_INET address family
|
||||
*/
|
||||
#define AF_XDP 44 /* XDP sockets */
|
||||
#define AF_MCTP 45 /* Management component
|
||||
* transport protocol
|
||||
*/
|
||||
|
||||
#define AF_MAX 45 /* For now.. */
|
||||
#define AF_MAX 46 /* For now.. */
|
||||
|
||||
/* Protocol families, same as address families. */
|
||||
#define PF_UNSPEC AF_UNSPEC
|
||||
|
@ -274,6 +277,7 @@ struct ucred {
|
|||
#define PF_QIPCRTR AF_QIPCRTR
|
||||
#define PF_SMC AF_SMC
|
||||
#define PF_XDP AF_XDP
|
||||
#define PF_MCTP AF_MCTP
|
||||
#define PF_MAX AF_MAX
|
||||
|
||||
/* Maximum queue length specifiable by listen. */
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* Management Component Transport Protocol (MCTP)
|
||||
*
|
||||
* Copyright (c) 2021 Code Construct
|
||||
* Copyright (c) 2021 Google
|
||||
*/
|
||||
|
||||
#ifndef __UAPI_MCTP_H
|
||||
#define __UAPI_MCTP_H
|
||||
|
||||
struct sockaddr_mctp {
|
||||
};
|
||||
|
||||
#endif /* __UAPI_MCTP_H */
|
|
@ -363,6 +363,7 @@ source "net/bluetooth/Kconfig"
|
|||
source "net/rxrpc/Kconfig"
|
||||
source "net/kcm/Kconfig"
|
||||
source "net/strparser/Kconfig"
|
||||
source "net/mctp/Kconfig"
|
||||
|
||||
config FIB_RULES
|
||||
bool
|
||||
|
|
|
@ -78,3 +78,4 @@ obj-$(CONFIG_QRTR) += qrtr/
|
|||
obj-$(CONFIG_NET_NCSI) += ncsi/
|
||||
obj-$(CONFIG_XDP_SOCKETS) += xdp/
|
||||
obj-$(CONFIG_MPTCP) += mptcp/
|
||||
obj-$(CONFIG_MCTP) += mctp/
|
||||
|
|
|
@ -226,6 +226,7 @@ static struct lock_class_key af_family_kern_slock_keys[AF_MAX];
|
|||
x "AF_IEEE802154", x "AF_CAIF" , x "AF_ALG" , \
|
||||
x "AF_NFC" , x "AF_VSOCK" , x "AF_KCM" , \
|
||||
x "AF_QIPCRTR", x "AF_SMC" , x "AF_XDP" , \
|
||||
x "AF_MCTP" , \
|
||||
x "AF_MAX"
|
||||
|
||||
static const char *const af_family_key_strings[AF_MAX+1] = {
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
menuconfig MCTP
|
||||
depends on NET
|
||||
tristate "MCTP core protocol support"
|
||||
help
|
||||
Management Component Transport Protocol (MCTP) is an in-system
|
||||
protocol for communicating between management controllers and
|
||||
their managed devices (peripherals, host processors, etc.). The
|
||||
protocol is defined by DMTF specification DSP0236.
|
||||
|
||||
This option enables core MCTP support. For communicating with other
|
||||
devices, you'll want to enable a driver for a specific hardware
|
||||
channel.
|
|
@ -0,0 +1,3 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-$(CONFIG_MCTP) += mctp.o
|
||||
mctp-objs := af_mctp.o
|
|
@ -0,0 +1,13 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Management Component Transport Protocol (MCTP)
|
||||
*
|
||||
* Copyright (c) 2021 Code Construct
|
||||
* Copyright (c) 2021 Google
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
||||
MODULE_DESCRIPTION("MCTP core");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_AUTHOR("Jeremy Kerr <jk@codeconstruct.com.au>");
|
|
@ -212,6 +212,7 @@ static const char * const pf_family_names[] = {
|
|||
[PF_QIPCRTR] = "PF_QIPCRTR",
|
||||
[PF_SMC] = "PF_SMC",
|
||||
[PF_XDP] = "PF_XDP",
|
||||
[PF_MCTP] = "PF_MCTP",
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -1330,7 +1330,9 @@ static inline u16 socket_type_to_security_class(int family, int type, int protoc
|
|||
return SECCLASS_SMC_SOCKET;
|
||||
case PF_XDP:
|
||||
return SECCLASS_XDP_SOCKET;
|
||||
#if PF_MAX > 45
|
||||
case PF_MCTP:
|
||||
return SECCLASS_MCTP_SOCKET;
|
||||
#if PF_MAX > 46
|
||||
#error New address family defined, please update this function.
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -246,6 +246,8 @@ struct security_class_mapping secclass_map[] = {
|
|||
NULL } },
|
||||
{ "xdp_socket",
|
||||
{ COMMON_SOCK_PERMS, NULL } },
|
||||
{ "mctp_socket",
|
||||
{ COMMON_SOCK_PERMS, NULL } },
|
||||
{ "perf_event",
|
||||
{ "open", "cpu", "kernel", "tracepoint", "read", "write", NULL } },
|
||||
{ "lockdown",
|
||||
|
@ -255,6 +257,6 @@ struct security_class_mapping secclass_map[] = {
|
|||
{ NULL }
|
||||
};
|
||||
|
||||
#if PF_MAX > 45
|
||||
#if PF_MAX > 46
|
||||
#error New address family defined, please update secclass_map.
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче