From 1ed23bd7ef2c3c89c2fdbe5f2481c017492d08b7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 18 Sep 2025 16:36:37 +0200 Subject: [PATCH] PDU header improvements --- CHANGELOG.md | 2 ++ src/cfdp/pdu/ack.rs | 16 +++++++-------- src/cfdp/pdu/eof.rs | 16 +++++++-------- src/cfdp/pdu/finished.rs | 40 +++++++++++++++++++++++--------------- src/cfdp/pdu/metadata.rs | 2 +- src/cfdp/pdu/mod.rs | 36 ++++++++++++++++++++++++++-------- src/cfdp/pdu/nak.rs | 42 ++++++++++++++++++++-------------------- 7 files changed, 92 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12e0460..160aac9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - PUS version raw representation is `u4` now. - SC time reference status representation is `u4` now. - Renamed `ptype` to `packet_type` +- Renamed `PduHeader::new_no_file_data` to `PduHeader::new_for_file_directive` +- Renamd `FinishedPduCreator::new_generic` to `new` and `new_default` to `new_no_error` ## Removed diff --git a/src/cfdp/pdu/ack.rs b/src/cfdp/pdu/ack.rs index 9c9e664..eef3e62 100644 --- a/src/cfdp/pdu/ack.rs +++ b/src/cfdp/pdu/ack.rs @@ -244,7 +244,7 @@ mod tests { #[test] fn test_basic() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let ack_pdu = AckPdu::new( pdu_header, FileDirectiveType::FinishedPdu, @@ -264,7 +264,7 @@ mod tests { transaction_status: TransactionStatus, ) { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let ack_pdu = AckPdu::new_for_finished_pdu(pdu_header, condition_code, transaction_status); let mut buf: [u8; 64] = [0; 64]; let res = ack_pdu.write_to_bytes(&mut buf); @@ -289,7 +289,7 @@ mod tests { #[test] fn test_serialization_too_small() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let ack_pdu = AckPdu::new( pdu_header, FileDirectiveType::FinishedPdu, @@ -316,7 +316,7 @@ mod tests { #[test] fn test_invalid_directive_code_of_acked_pdu() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); assert_eq!( AckPdu::new( pdu_header, @@ -332,7 +332,7 @@ mod tests { #[test] fn test_deserialization() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let ack_pdu = AckPdu::new_for_finished_pdu( pdu_header, ConditionCode::NoError, @@ -347,7 +347,7 @@ mod tests { #[test] fn test_with_crc() { let pdu_conf = common_pdu_conf(CrcFlag::WithCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let ack_pdu = AckPdu::new_for_finished_pdu( pdu_header, ConditionCode::NoError, @@ -364,7 +364,7 @@ mod tests { #[test] fn test_for_eof_pdu() { let pdu_conf = common_pdu_conf(CrcFlag::WithCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let ack_pdu = AckPdu::new_for_eof_pdu( pdu_header, ConditionCode::NoError, @@ -381,7 +381,7 @@ mod tests { #[cfg(feature = "serde")] fn test_ack_pdu_serialization() { let pdu_conf = common_pdu_conf(CrcFlag::WithCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let ack_pdu = AckPdu::new_for_eof_pdu( pdu_header, ConditionCode::NoError, diff --git a/src/cfdp/pdu/eof.rs b/src/cfdp/pdu/eof.rs index f2865cb..a896629 100644 --- a/src/cfdp/pdu/eof.rs +++ b/src/cfdp/pdu/eof.rs @@ -235,7 +235,7 @@ mod tests { #[test] fn test_basic() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12); assert_eq!(eof_pdu.len_written(), pdu_header.header_len() + 2 + 4 + 4); verify_state_no_error_no_crc(&eof_pdu, LargeFileFlag::Normal); @@ -244,7 +244,7 @@ mod tests { #[test] fn test_serialization() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12); let mut buf: [u8; 64] = [0; 64]; let res = eof_pdu.write_to_bytes(&mut buf); @@ -276,7 +276,7 @@ mod tests { #[test] fn test_deserialization() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12); let mut buf: [u8; 64] = [0; 64]; eof_pdu.write_to_bytes(&mut buf).unwrap(); @@ -291,7 +291,7 @@ mod tests { #[test] fn test_write_to_vec() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12); let mut buf: [u8; 64] = [0; 64]; let written = eof_pdu.write_to_bytes(&mut buf).unwrap(); @@ -302,7 +302,7 @@ mod tests { #[test] fn test_with_crc() { let pdu_conf = common_pdu_conf(CrcFlag::WithCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12); let mut buf: [u8; 64] = [0; 64]; let written = eof_pdu.write_to_bytes(&mut buf).unwrap(); @@ -322,7 +322,7 @@ mod tests { #[test] fn test_with_large_file_flag() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Large); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12); verify_state_no_error_no_crc(&eof_pdu, LargeFileFlag::Large); assert_eq!(eof_pdu.len_written(), pdu_header.header_len() + 2 + 8 + 4); @@ -332,14 +332,14 @@ mod tests { #[cfg(feature = "serde")] fn test_eof_serde() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12); generic_serde_test(eof_pdu); } fn generic_test_with_fault_location_and_error(crc: CrcFlag) { let pdu_conf = common_pdu_conf(crc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let eof_pdu = EofPdu::new( pdu_header, ConditionCode::FileChecksumFailure, diff --git a/src/cfdp/pdu/finished.rs b/src/cfdp/pdu/finished.rs index fd0e935..af82141 100644 --- a/src/cfdp/pdu/finished.rs +++ b/src/cfdp/pdu/finished.rs @@ -50,12 +50,12 @@ pub struct FinishedPduCreator<'fs_responses> { impl<'fs_responses> FinishedPduCreator<'fs_responses> { /// Default finished PDU: No error (no fault location field) and no filestore responses. - pub fn new_default( + pub fn new_no_error( pdu_header: PduHeader, delivery_code: DeliveryCode, file_status: FileStatus, ) -> Self { - Self::new_generic( + Self::new( pdu_header, ConditionCode::NoError, delivery_code, @@ -72,7 +72,7 @@ impl<'fs_responses> FinishedPduCreator<'fs_responses> { file_status: FileStatus, fault_location: EntityIdTlv, ) -> Self { - Self::new_generic( + Self::new( pdu_header, condition_code, delivery_code, @@ -82,7 +82,7 @@ impl<'fs_responses> FinishedPduCreator<'fs_responses> { ) } - pub fn new_generic( + pub fn new( mut pdu_header: PduHeader, condition_code: ConditionCode, delivery_code: DeliveryCode, @@ -440,8 +440,8 @@ mod tests { delivery_code: DeliveryCode, file_status: FileStatus, ) -> FinishedPduCreator<'static> { - let pdu_header = PduHeader::new_no_file_data(common_pdu_conf(crc_flag, fss), 0); - FinishedPduCreator::new_default(pdu_header, delivery_code, file_status) + let pdu_header = PduHeader::new_for_file_directive(common_pdu_conf(crc_flag, fss), 0); + FinishedPduCreator::new_no_error(pdu_header, delivery_code, file_status) } #[test] @@ -611,8 +611,10 @@ mod tests { #[test] fn test_with_fault_location() { - let pdu_header = - PduHeader::new_no_file_data(common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), 0); + let pdu_header = PduHeader::new_for_file_directive( + common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), + 0, + ); let finished_pdu = FinishedPduCreator::new_with_error( pdu_header, ConditionCode::NakLimitReached, @@ -633,8 +635,10 @@ mod tests { #[test] fn test_deserialization_with_fault_location() { - let pdu_header = - PduHeader::new_no_file_data(common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), 0); + let pdu_header = PduHeader::new_for_file_directive( + common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), + 0, + ); let entity_id_tlv = EntityIdTlv::new(TEST_DEST_ID.into()); let finished_pdu = FinishedPduCreator::new_with_error( pdu_header, @@ -669,9 +673,11 @@ mod tests { .unwrap(); let fs_responses = &[fs_response_0, fs_response_1]; - let pdu_header = - PduHeader::new_no_file_data(common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), 0); - let finished_pdu = FinishedPduCreator::new_generic( + let pdu_header = PduHeader::new_for_file_directive( + common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), + 0, + ); + let finished_pdu = FinishedPduCreator::new( pdu_header, ConditionCode::NakLimitReached, DeliveryCode::Incomplete, @@ -704,9 +710,11 @@ mod tests { .unwrap(); let fs_responses = &[fs_response_0, fs_response_1]; - let pdu_header = - PduHeader::new_no_file_data(common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), 0); - let finished_pdu = FinishedPduCreator::new_generic( + let pdu_header = PduHeader::new_for_file_directive( + common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal), + 0, + ); + let finished_pdu = FinishedPduCreator::new( pdu_header, ConditionCode::NakLimitReached, DeliveryCode::Incomplete, diff --git a/src/cfdp/pdu/metadata.rs b/src/cfdp/pdu/metadata.rs index 115bf65..b04f8b1 100644 --- a/src/cfdp/pdu/metadata.rs +++ b/src/cfdp/pdu/metadata.rs @@ -422,7 +422,7 @@ pub mod tests { Lv<'static>, MetadataPduCreator<'static, 'static, '_>, ) { - let pdu_header = PduHeader::new_no_file_data(common_pdu_conf(crc_flag, fss), 0); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_conf(crc_flag, fss), 0); let metadata_params = MetadataGenericParams::new(closure_requested, checksum_type, 0x1010); let src_filename = Lv::new_from_str(SRC_FILENAME).expect("Generating string LV failed"); let dest_filename = diff --git a/src/cfdp/pdu/mod.rs b/src/cfdp/pdu/mod.rs index 881f42f..770c11c 100644 --- a/src/cfdp/pdu/mod.rs +++ b/src/cfdp/pdu/mod.rs @@ -350,8 +350,9 @@ impl PduHeader { SegmentationControl::NoRecordBoundaryPreservation, ) } + #[inline] - pub fn new_no_file_data(pdu_conf: CommonPduConfig, pdu_datafield_len: u16) -> Self { + pub fn new_for_file_directive(pdu_conf: CommonPduConfig, pdu_datafield_len: u16) -> Self { Self::new_generic( PduType::FileDirective, pdu_conf, @@ -361,6 +362,17 @@ impl PduHeader { ) } + #[inline] + pub fn from_pdu_conf_for_file_directive(pdu_conf: CommonPduConfig) -> Self { + Self::new_generic( + PduType::FileDirective, + pdu_conf, + 0, + SegmentMetadataFlag::NotPresent, + SegmentationControl::NoRecordBoundaryPreservation, + ) + } + #[inline] pub fn new_generic( pdu_type: PduType, @@ -746,7 +758,7 @@ mod tests { let transaction_id = UnsignedByteFieldU8::new(3); let common_pdu_cfg = CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_id) .expect("common config creation failed"); - let pdu_header = PduHeader::new_no_file_data(common_pdu_cfg, 5); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_cfg, 5); assert_eq!(pdu_header.pdu_type(), PduType::FileDirective); let common_conf_ref = pdu_header.common_pdu_conf(); assert_eq!(*common_conf_ref, common_pdu_cfg); @@ -812,7 +824,7 @@ mod tests { let transaction_id = UnsignedByteFieldU8::new(3); let common_pdu_cfg = CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_id) .expect("common config creation failed"); - let pdu_header = PduHeader::new_no_file_data(common_pdu_cfg, 5); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_cfg, 5); let mut buf: [u8; 7] = [0; 7]; let res = pdu_header.write_to_bytes(&mut buf); assert!(res.is_ok()); @@ -829,7 +841,7 @@ mod tests { let transaction_id = UnsignedByteFieldU8::new(3); let common_pdu_cfg = CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_id) .expect("common config creation failed"); - let pdu_header = PduHeader::new_no_file_data(common_pdu_cfg, 5); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_cfg, 5); let mut buf: [u8; 7] = [0; 7]; let res = pdu_header.write_to_bytes(&mut buf); assert!(res.is_ok()); @@ -902,7 +914,7 @@ mod tests { let transaction_id = UnsignedByteFieldU8::new(3); let common_pdu_cfg = CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_id) .expect("common config creation failed"); - let pdu_header = PduHeader::new_no_file_data(common_pdu_cfg, 5); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_cfg, 5); let mut buf: [u8; 7] = [0; 7]; let res = pdu_header.write_to_bytes(&mut buf); assert!(res.is_ok()); @@ -947,7 +959,7 @@ mod tests { let transaction_id = UnsignedByteFieldU8::new(3); let common_pdu_cfg = CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_id) .expect("common config creation failed"); - let pdu_header = PduHeader::new_no_file_data(common_pdu_cfg, 5); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_cfg, 5); let mut buf: [u8; 7] = [0; 7]; let res = pdu_header.write_to_bytes(&mut buf); assert!(res.is_ok()); @@ -1030,7 +1042,7 @@ mod tests { let transaction_id = UnsignedByteFieldU8::new(3); let common_pdu_cfg = CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_id) .expect("common config creation failed"); - let pdu_header = PduHeader::new_no_file_data(common_pdu_cfg, 5); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_cfg, 5); let mut buf: [u8; 7] = [0; 7]; let res = pdu_header.write_to_bytes(&mut buf); assert!(res.is_ok()); @@ -1054,7 +1066,7 @@ mod tests { let transaction_id = UnsignedByteFieldU8::new(3); let common_pdu_cfg = CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_id) .expect("common config creation failed"); - let pdu_header = PduHeader::new_no_file_data(common_pdu_cfg, 5); + let pdu_header = PduHeader::new_for_file_directive(common_pdu_cfg, 5); let mut buf: [u8; 7] = [0; 7]; let res = pdu_header.write_to_bytes(&mut buf); assert!(res.is_ok()); @@ -1086,4 +1098,12 @@ mod tests { let common_pdu_cfg_1 = common_pdu_cfg_0; assert_eq!(common_pdu_cfg_0, common_pdu_cfg_1); } + + #[test] + fn test_ctor_from_pdu_conf() { + assert_eq!( + PduHeader::from_pdu_conf_for_file_directive(CommonPduConfig::default()), + PduHeader::new_for_file_directive(CommonPduConfig::default(), 0) + ); + } } diff --git a/src/cfdp/pdu/nak.rs b/src/cfdp/pdu/nak.rs index 4912eb5..ab3ff34 100644 --- a/src/cfdp/pdu/nak.rs +++ b/src/cfdp/pdu/nak.rs @@ -752,7 +752,7 @@ mod tests { #[test] fn test_basic_creator() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_no_segment_requests(pdu_header, 0, 0) .expect("creating NAK PDU creator failed"); assert_eq!(nak_pdu.start_of_scope(), 0); @@ -765,7 +765,7 @@ mod tests { #[test] fn test_serialization_empty() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_no_segment_requests(pdu_header, 100, 300) .expect("creating NAK PDU creator failed"); assert_eq!(nak_pdu.start_of_scope(), 100); @@ -793,7 +793,7 @@ mod tests { #[test] fn test_serialization_two_segments() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_normal_file_size(pdu_header, 100, 300, &[(0, 0), (32, 64)]) .expect("creating NAK PDU creator failed"); @@ -836,7 +836,7 @@ mod tests { #[test] fn test_deserialization_empty() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_no_segment_requests(pdu_header, 100, 300) .expect("creating NAK PDU creator failed"); let mut buf: [u8; 64] = [0; 64]; @@ -851,7 +851,7 @@ mod tests { #[test] fn test_deserialization_large_segments() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Large); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_large_file_size(pdu_header, 100, 300, &[(50, 100), (200, 300)]) .expect("creating NAK PDU creator failed"); @@ -888,7 +888,7 @@ mod tests { #[test] fn test_deserialization_normal_segments() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_normal_file_size(pdu_header, 100, 300, &[(50, 100), (200, 300)]) .expect("creating NAK PDU creator failed"); @@ -925,7 +925,7 @@ mod tests { #[test] fn test_empty_is_empty() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu_0 = NakPduCreator::new_normal_file_size(pdu_header, 100, 300, &[]) .expect("creating NAK PDU creator failed"); let nak_pdu_1 = NakPduCreator::new_no_segment_requests(pdu_header, 100, 300) @@ -938,7 +938,7 @@ mod tests { #[test] fn test_new_generic_invalid_input() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let u32_list = SegmentRequests::U32Pairs(&[(0, 50), (50, 100)]); //let error = NakPduCreator::new_generic(pdu_header, 100, 300, Some(u32_list)); let error = NakPduCreator::new( @@ -958,7 +958,7 @@ mod tests { #[test] fn test_target_buf_too_small() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_no_segment_requests(pdu_header, 100, 300) .expect("creating NAK PDU creator failed"); assert_eq!(nak_pdu.start_of_scope(), 100); @@ -982,7 +982,7 @@ mod tests { #[test] fn test_with_crc() { let pdu_conf = common_pdu_conf(CrcFlag::WithCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let nak_pdu = NakPduCreator::new_no_segment_requests(pdu_header, 0, 0) .expect("creating NAK PDU creator failed"); let mut nak_vec = nak_pdu.to_vec().expect("writing NAK to vector failed"); @@ -1005,7 +1005,7 @@ mod tests { fn test_with_reserved_lost_segment_buf_no_segments_normal_file_0() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); let mut buf: [u8; 64] = [0; 64]; - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let mut nak_pdu = NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf, pdu_header, 0).unwrap(); assert_eq!(nak_pdu.len_written(), pdu_header.header_len() + 9); @@ -1032,7 +1032,7 @@ mod tests { fn test_with_reserved_lost_segment_buf_no_segments_normal_file_1() { let pdu_conf = common_pdu_conf(CrcFlag::WithCrc, LargeFileFlag::Normal); let mut buf: [u8; 64] = [0; 64]; - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let mut nak_pdu = NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf, pdu_header, 0).unwrap(); assert!(nak_pdu.segment_request_buffer().is_empty()); @@ -1061,7 +1061,7 @@ mod tests { fn test_with_reserved_lost_segment_buf_no_segments_large_file_0() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Large); let mut buf: [u8; 64] = [0; 64]; - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let mut nak_pdu = NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf, pdu_header, 0).unwrap(); assert_eq!(nak_pdu.len_written(), pdu_header.header_len() + 1 + 16); @@ -1088,7 +1088,7 @@ mod tests { fn test_with_reserved_lost_segment_buf_invalid_scope() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); let mut buf: [u8; 64] = [0; 64]; - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let mut nak_pdu = NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf, pdu_header, 2).unwrap(); assert_eq!( @@ -1103,7 +1103,7 @@ mod tests { fn test_with_reserved_lost_segment_buf_no_segments_large_file_1() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Large); let mut buf: [u8; 64] = [0; 64]; - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let mut nak_pdu = NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf, pdu_header, 0).unwrap(); assert!(nak_pdu.segment_request_buffer().is_empty()); @@ -1134,7 +1134,7 @@ mod tests { let num_segments = 2; let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); let mut buf: [u8; 64] = [0; 64]; - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let mut nak_pdu = NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf, pdu_header, num_segments).unwrap(); nak_pdu @@ -1187,7 +1187,7 @@ mod tests { let num_segments = 2; let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Large); let mut buf: [u8; 128] = [0; 128]; - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); let mut nak_pdu = NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf, pdu_header, num_segments).unwrap(); nak_pdu @@ -1242,7 +1242,7 @@ mod tests { fn test_reserved_lost_segment_finish_buf_too_small() { let mut buf: [u8; 64] = [0; 64]; let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); assert_eq!( NakPduCreatorWithReservedSeqReqsBuf::new(&mut buf[0..10], pdu_header, 0).unwrap_err(), ByteConversionError::ToSliceTooSmall { @@ -1255,7 +1255,7 @@ mod tests { #[test] fn test_max_segment_req_calculator() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); // 7 byte header, 1 byte directive, 8 bytes start and end of segment, leaves 48 bytes for // 6 segment requests (8 bytes each) @@ -1291,7 +1291,7 @@ mod tests { #[test] fn test_max_segment_req_calculator_large_file() { let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Large); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); // 7 byte header, 1 byte directive, 16 bytes start and end of segment, leaves 48 bytes for // 3 large segment requests (16 bytes each) @@ -1327,7 +1327,7 @@ mod tests { #[test] fn test_max_segment_req_calculator_large_file_with_crc() { let pdu_conf = common_pdu_conf(CrcFlag::WithCrc, LargeFileFlag::Large); - let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0); + let pdu_header = PduHeader::new_for_file_directive(pdu_conf, 0); // 7 byte header, 1 byte directive, 16 bytes start and end of segment, leaves 48 bytes for // 3 large segment requests (16 bytes each)