xref: /openbmc/linux/include/net/mctp.h (revision 2c8e2e9aec7927b387540a88351b8405ee82b34a)
1*2c8e2e9aSJeremy Kerr /* SPDX-License-Identifier: GPL-2.0 */
2*2c8e2e9aSJeremy Kerr /*
3*2c8e2e9aSJeremy Kerr  * Management Component Transport Protocol (MCTP)
4*2c8e2e9aSJeremy Kerr  *
5*2c8e2e9aSJeremy Kerr  * Copyright (c) 2021 Code Construct
6*2c8e2e9aSJeremy Kerr  * Copyright (c) 2021 Google
7*2c8e2e9aSJeremy Kerr  */
8*2c8e2e9aSJeremy Kerr 
9*2c8e2e9aSJeremy Kerr #ifndef __NET_MCTP_H
10*2c8e2e9aSJeremy Kerr #define __NET_MCTP_H
11*2c8e2e9aSJeremy Kerr 
12*2c8e2e9aSJeremy Kerr #include <linux/bits.h>
13*2c8e2e9aSJeremy Kerr 
14*2c8e2e9aSJeremy Kerr /* MCTP packet definitions */
15*2c8e2e9aSJeremy Kerr struct mctp_hdr {
16*2c8e2e9aSJeremy Kerr 	u8	ver;
17*2c8e2e9aSJeremy Kerr 	u8	dest;
18*2c8e2e9aSJeremy Kerr 	u8	src;
19*2c8e2e9aSJeremy Kerr 	u8	flags_seq_tag;
20*2c8e2e9aSJeremy Kerr };
21*2c8e2e9aSJeremy Kerr 
22*2c8e2e9aSJeremy Kerr #define MCTP_VER_MIN	1
23*2c8e2e9aSJeremy Kerr #define MCTP_VER_MAX	1
24*2c8e2e9aSJeremy Kerr 
25*2c8e2e9aSJeremy Kerr /* Definitions for flags_seq_tag field */
26*2c8e2e9aSJeremy Kerr #define MCTP_HDR_FLAG_SOM	BIT(7)
27*2c8e2e9aSJeremy Kerr #define MCTP_HDR_FLAG_EOM	BIT(6)
28*2c8e2e9aSJeremy Kerr #define MCTP_HDR_FLAG_TO	BIT(3)
29*2c8e2e9aSJeremy Kerr #define MCTP_HDR_FLAGS		GENMASK(5, 3)
30*2c8e2e9aSJeremy Kerr #define MCTP_HDR_SEQ_SHIFT	4
31*2c8e2e9aSJeremy Kerr #define MCTP_HDR_SEQ_MASK	GENMASK(1, 0)
32*2c8e2e9aSJeremy Kerr #define MCTP_HDR_TAG_SHIFT	0
33*2c8e2e9aSJeremy Kerr #define MCTP_HDR_TAG_MASK	GENMASK(2, 0)
34*2c8e2e9aSJeremy Kerr 
35*2c8e2e9aSJeremy Kerr #endif /* __NET_MCTP_H */
36