Skip to content

Commit 1775787

Browse files
Li-Aaronjyao1
authored andcommitted
1.4 increase chunk_seq_no from 2 bytes to 4 bytes
Signed-off-by: Aaron Li <aaron.li@intel.com>
1 parent 552957b commit 1775787

File tree

1 file changed

+89
-25
lines changed

1 file changed

+89
-25
lines changed

spdm_dump/spdm/spdm_dump_spdm.c

Lines changed: 89 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3905,6 +3905,7 @@ void dump_spdm_endpoint_info(const void *buffer, size_t buffer_size)
39053905
void dump_spdm_chunk_send(const void *buffer, size_t buffer_size)
39063906
{
39073907
const spdm_chunk_send_request_t *spdm_request;
3908+
const spdm_chunk_send_request_14_t *spdm_request_14;
39083909
uint32_t *large_message_size_ptr;
39093910
/*current chunk data*/
39103911
uint8_t *ptr;
@@ -3914,6 +3915,8 @@ void dump_spdm_chunk_send(const void *buffer, size_t buffer_size)
39143915
static uint32_t chunk_send_large_message_current_size;
39153916
/*store the total message_size*/
39163917
static uint32_t chunk_send_large_message_buf_size;
3918+
/*store chunk_seq_no*/
3919+
static uint32_t chunk_seq_no;
39173920

39183921
printf("SPDM_CHUNK_SEND ");
39193922

@@ -3928,7 +3931,15 @@ void dump_spdm_chunk_send(const void *buffer, size_t buffer_size)
39283931
printf("\n");
39293932
return;
39303933
}
3931-
if (spdm_request->chunk_seq_no == 0) {
3934+
3935+
if (spdm_request->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
3936+
chunk_seq_no = spdm_request->chunk_seq_no;
3937+
} else {
3938+
spdm_request_14 = buffer;
3939+
chunk_seq_no = spdm_request_14->chunk_seq_no;
3940+
}
3941+
3942+
if (chunk_seq_no == 0) {
39323943
if (buffer_size - sizeof(spdm_chunk_send_request_t) - spdm_request->chunk_size <
39333944
sizeof(uint32_t)) {
39343945
printf("\n");
@@ -3942,13 +3953,21 @@ void dump_spdm_chunk_send(const void *buffer, size_t buffer_size)
39423953
m_spdm_chunk_send_attribute_string_table,
39433954
LIBSPDM_ARRAY_SIZE(m_spdm_chunk_send_attribute_string_table),
39443955
spdm_request->header.param1);
3945-
printf("), Handle=0x%02x, ChunkSeqNo=0x%04x, ChunkSize=0x%08x",
3946-
spdm_request->header.param2,
3947-
spdm_request->chunk_seq_no,
3948-
spdm_request->chunk_size);
3956+
if (spdm_request->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
3957+
printf("), Handle=0x%02x, ChunkSeqNo=0x%04x, ChunkSize=0x%04x",
3958+
spdm_request->header.param2,
3959+
spdm_request->chunk_seq_no,
3960+
spdm_request->chunk_size);
3961+
} else {
3962+
printf("), Handle=0x%02x, ChunkSeqNo=0x%08x, ChunkSize=0x%08x",
3963+
spdm_request_14->header.param2,
3964+
spdm_request_14->chunk_seq_no,
3965+
spdm_request_14->chunk_size);
3966+
}
3967+
39493968
}
39503969

3951-
if (spdm_request->chunk_seq_no == 0) {
3970+
if (chunk_seq_no == 0) {
39523971
/*first chunk*/
39533972
large_message_size_ptr = (void *)(spdm_request + 1);
39543973
if (!m_param_quite_mode) {
@@ -4022,28 +4041,40 @@ void dump_spdm_chunk_send(const void *buffer, size_t buffer_size)
40224041
void dump_spdm_chunk_send_ack(const void *buffer, size_t buffer_size)
40234042
{
40244043
const spdm_chunk_send_ack_response_t *spdm_response;
4044+
const spdm_chunk_send_ack_response_14_t *spdm_response_14;
40254045
size_t header_size;
40264046

4027-
header_size = sizeof(spdm_chunk_send_ack_response_t);
4047+
spdm_response = buffer;
4048+
4049+
if (spdm_response->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
4050+
header_size = sizeof(spdm_chunk_send_ack_response_t);
4051+
} else {
4052+
spdm_response_14 = buffer;
4053+
header_size = sizeof(spdm_chunk_send_ack_response_14_t);
4054+
}
40284055

40294056
printf("SPDM_CHUNK_SEND_ACK ");
40304057

4031-
if (buffer_size < sizeof(spdm_chunk_send_ack_response_t)) {
4058+
if (buffer_size < header_size) {
40324059
printf("\n");
40334060
return;
40344061
}
40354062

4036-
spdm_response = buffer;
4037-
40384063
if (!m_param_quite_mode) {
40394064
printf("(Attr=0x%02x(", spdm_response->header.param1);
40404065
dump_entry_flags(
40414066
m_spdm_chunk_send_ack_attribute_string_table,
40424067
LIBSPDM_ARRAY_SIZE(m_spdm_chunk_send_ack_attribute_string_table),
40434068
spdm_response->header.param1);
4044-
printf("), Handle=0x%02x, ChunkSeqNo=0x%04x) ",
4045-
spdm_response->header.param2,
4046-
spdm_response->chunk_seq_no);
4069+
if (spdm_response->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
4070+
printf("), Handle=0x%02x, ChunkSeqNo=0x%04x) ",
4071+
spdm_response->header.param2,
4072+
spdm_response->chunk_seq_no);
4073+
} else {
4074+
printf("), Handle=0x%02x, ChunkSeqNo=0x%08x) ",
4075+
spdm_response_14->header.param2,
4076+
spdm_response_14->chunk_seq_no);
4077+
}
40474078
}
40484079

40494080
if (m_chunk_send_lask_chunk_flag) {
@@ -4063,20 +4094,35 @@ void dump_spdm_chunk_send_ack(const void *buffer, size_t buffer_size)
40634094
void dump_spdm_chunk_get(const void *buffer, size_t buffer_size)
40644095
{
40654096
const spdm_chunk_get_request_t *spdm_request;
4097+
const spdm_chunk_get_request_14_t *spdm_request_14;
4098+
size_t header_size;
4099+
4100+
spdm_request = buffer;
4101+
4102+
if (spdm_request->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
4103+
header_size = sizeof(spdm_chunk_get_request_t);
4104+
} else {
4105+
spdm_request_14 = buffer;
4106+
header_size = sizeof(spdm_chunk_get_request_14_t);
4107+
}
40664108

40674109
printf("SPDM_CHUNK_GET ");
40684110

4069-
if (buffer_size < sizeof(spdm_chunk_get_request_t)) {
4111+
if (buffer_size < header_size) {
40704112
printf("\n");
40714113
return;
40724114
}
40734115

4074-
spdm_request = buffer;
4075-
40764116
if (!m_param_quite_mode) {
4077-
printf("(Handle=0x%02x, ChunkSeqNo=0x%04x) ",
4078-
spdm_request->header.param2,
4079-
spdm_request->chunk_seq_no);
4117+
if (spdm_request->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
4118+
printf("(Handle=0x%02x, ChunkSeqNo=0x%04x) ",
4119+
spdm_request->header.param2,
4120+
spdm_request->chunk_seq_no);
4121+
} else {
4122+
printf("(Handle=0x%02x, ChunkSeqNo=0x%08x) ",
4123+
spdm_request_14->header.param2,
4124+
spdm_request_14->chunk_seq_no);
4125+
}
40804126
}
40814127

40824128
printf("\n");
@@ -4085,6 +4131,7 @@ void dump_spdm_chunk_get(const void *buffer, size_t buffer_size)
40854131
void dump_spdm_chunk_response(const void *buffer, size_t buffer_size)
40864132
{
40874133
const spdm_chunk_response_response_t *spdm_response;
4134+
const spdm_chunk_response_response_14_t *spdm_response_14;
40884135
uint32_t *large_message_size_ptr;
40894136
/*current chunk data*/
40904137
uint8_t *ptr;
@@ -4094,6 +4141,8 @@ void dump_spdm_chunk_response(const void *buffer, size_t buffer_size)
40944141
static uint32_t chunk_response_large_message_current_size;
40954142
/*store the total message_size*/
40964143
static uint32_t chunk_response_large_message_buf_size = 0;
4144+
/*store chunk_seq_no*/
4145+
static uint32_t chunk_seq_no;
40974146

40984147
printf("SPDM_CHUNK_RESPONSE ");
40994148

@@ -4108,7 +4157,15 @@ void dump_spdm_chunk_response(const void *buffer, size_t buffer_size)
41084157
printf("\n");
41094158
return;
41104159
}
4111-
if (spdm_response->chunk_seq_no == 0) {
4160+
4161+
if (spdm_response->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
4162+
chunk_seq_no = spdm_response->chunk_seq_no;
4163+
} else {
4164+
spdm_response_14 = buffer;
4165+
chunk_seq_no = spdm_response_14->chunk_seq_no;
4166+
}
4167+
4168+
if (chunk_seq_no == 0) {
41124169
if (buffer_size - sizeof(spdm_chunk_response_response_t) - spdm_response->chunk_size <
41134170
sizeof(uint32_t)) {
41144171
printf("\n");
@@ -4122,13 +4179,20 @@ void dump_spdm_chunk_response(const void *buffer, size_t buffer_size)
41224179
m_spdm_chunk_send_attribute_string_table,
41234180
LIBSPDM_ARRAY_SIZE(m_spdm_chunk_send_attribute_string_table),
41244181
spdm_response->header.param1);
4125-
printf("), Handle=0x%02x, ChunkSeqNo=0x%04x, ChunkSize=0x%08x",
4126-
spdm_response->header.param2,
4127-
spdm_response->chunk_seq_no,
4128-
spdm_response->chunk_size);
4182+
if (spdm_response->header.spdm_version < SPDM_MESSAGE_VERSION_14) {
4183+
printf("), Handle=0x%02x, ChunkSeqNo=0x%04x, ChunkSize=0x%08x",
4184+
spdm_response->header.param2,
4185+
spdm_response->chunk_seq_no,
4186+
spdm_response->chunk_size);
4187+
} else {
4188+
printf("), Handle=0x%02x, ChunkSeqNo=0x%08x, ChunkSize=0x%08x",
4189+
spdm_response_14->header.param2,
4190+
spdm_response_14->chunk_seq_no,
4191+
spdm_response_14->chunk_size);
4192+
}
41294193
}
41304194

4131-
if (spdm_response->chunk_seq_no == 0) {
4195+
if (chunk_seq_no == 0) {
41324196
/*first chunk*/
41334197
large_message_size_ptr = (void *)(spdm_response + 1);
41344198
if (!m_param_quite_mode) {

0 commit comments

Comments
 (0)