@@ -3905,6 +3905,7 @@ void dump_spdm_endpoint_info(const void *buffer, size_t buffer_size)
39053905void 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)
40224041void 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)
40634094void 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)
40854131void 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