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