|
15 | 15 |
|
16 | 16 | #include "mctp.h"
|
17 | 17 |
|
| 18 | +// Code Construct allocation |
| 19 | +static const uint8_t VENDOR_TYPE_BENCH[3] = { 0xcc, 0xde, 0xf1 }; |
| 20 | +static const uint8_t MCTP_TYPE_VENDOR_PCIE = 0x7e; |
| 21 | + |
18 | 22 | struct mctp_bench_send_args {
|
19 | 23 | mctp_eid_t eid;
|
20 | 24 | size_t len;
|
21 | 25 | int net;
|
22 | 26 | };
|
23 | 27 |
|
24 | 28 | struct msg_header {
|
| 29 | + uint8_t vendor_prefix[sizeof(VENDOR_TYPE_BENCH)]; |
25 | 30 | uint16_t magic;
|
26 | 31 | uint32_t seq_no;
|
27 |
| -}; |
| 32 | +} __attribute__((packed)); |
28 | 33 |
|
29 | 34 | struct mctp_stats {
|
30 | 35 | size_t total_received_len, curr_packet_len;
|
@@ -116,6 +121,12 @@ static int handle_incoming_msg(struct recv_ctx *recv_ctx)
|
116 | 121 | }
|
117 | 122 |
|
118 | 123 | hdr = (struct msg_header *)recv_ctx->buf;
|
| 124 | + if (memcmp(hdr->vendor_prefix, VENDOR_TYPE_BENCH, sizeof(VENDOR_TYPE_BENCH)) != 0) { |
| 125 | + warnx("recv: unexpected vendor prefix %02x %02x %02x", |
| 126 | + hdr->vendor_prefix[0], hdr->vendor_prefix[1], hdr->vendor_prefix[2] |
| 127 | + ); |
| 128 | + return -1; |
| 129 | + } |
119 | 130 | if (hdr->magic != MAGIC_VAL) {
|
120 | 131 | warnx("recv: expected magic:\"%x\", got:\"%x\"\n", MAGIC_VAL,
|
121 | 132 | hdr->magic);
|
@@ -158,7 +169,7 @@ static int mctp_bench_recv()
|
158 | 169 | addr.smctp_family = AF_MCTP;
|
159 | 170 | addr.smctp_network = MCTP_NET_ANY;
|
160 | 171 | addr.smctp_addr.s_addr = MCTP_ADDR_ANY;
|
161 |
| - addr.smctp_type = 1; |
| 172 | + addr.smctp_type = MCTP_TYPE_VENDOR_PCIE; |
162 | 173 | addr.smctp_tag = MCTP_TAG_OWNER;
|
163 | 174 |
|
164 | 175 | recv_ctx.buf = malloc(MAX_LEN);
|
@@ -283,7 +294,7 @@ static int mctp_bench_send(struct mctp_bench_send_args send_args)
|
283 | 294 | addr.smctp_family = AF_MCTP;
|
284 | 295 | addr.smctp_network = send_args.net;
|
285 | 296 | addr.smctp_addr.s_addr = send_args.eid;
|
286 |
| - addr.smctp_type = 1; |
| 297 | + addr.smctp_type = MCTP_TYPE_VENDOR_PCIE; |
287 | 298 | printf("send: eid = %d, net = %d, type = %d, msg_len = %zu bytes\n",
|
288 | 299 | send_args.eid, send_args.net, addr.smctp_type, send_args.len);
|
289 | 300 |
|
|
0 commit comments