mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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:
		
							parent
							
								
									658e6b1612
								
							
						
					
					
						commit
						bc49d8169a
					
				
					 12 changed files with 66 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -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.  */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								include/uapi/linux/mctp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								include/uapi/linux/mctp.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								net/mctp/Kconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								net/mctp/Kconfig
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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.
 | 
			
		||||
							
								
								
									
										3
									
								
								net/mctp/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								net/mctp/Makefile
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
# SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
obj-$(CONFIG_MCTP) += mctp.o
 | 
			
		||||
mctp-objs := af_mctp.o
 | 
			
		||||
							
								
								
									
										13
									
								
								net/mctp/af_mctp.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								net/mctp/af_mctp.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue