71 0xb7, 0x27, 0x53, 0x03, 0xe5, 0x8a, 0x6e, 0x97,
72 0xba, 0x83, 0xa4, 0xc4, 0x08, 0x00, 0x45, 0x00,
73 0x00, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
74 0x26, 0x57, 0xfb, 0x83, 0x89, 0xd7, 0xd9, 0x4c,
75 0xf5, 0x9b, 0x06, 0x09, 0xfa, 0xaa, 0x00, 0x3e,
76 0xce, 0xa5, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70,
77 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a,
78 0x61, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69,
79 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a, 0x61,
80 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a,
81 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70,
82 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a
102 if (status != NT_SUCCESS) {
105 std::cerr << message <<
": " << error_buffer << std::endl;
106 std::exit(EXIT_FAILURE);
115 uint64_t max_packet_size, uint64_t remaining_segment_space)
117 constexpr uint64_t min_packet_size = 64;
121 uint16_t padding_size = 0;
123 if (remaining_segment_space >= min_padding_size + max_padding_size) {
126 padding_size =
static_cast<uint16_t
>(max_packet_size);
128 else if (remaining_segment_space <= max_padding_size) {
136 padding_size =
static_cast<uint16_t
>(remaining_segment_space - (
NT_DESCR_DYN3_LENGTH + min_padding_size));
162 status =
NT_InfoOpen(&info_stream,
"transmit_segment_dyn_descr_example_info");
182 constexpr uint64_t fcs_size = 4;
183 constexpr uint64_t min_packet_size = 64;
184 constexpr uint64_t segment_size = 8192;
185 constexpr uint64_t total_packets = 100;
186 constexpr uint8_t tx_port = 0;
224 for (uint64_t packet_count = 0; packet_count < total_packets;) {
235 while (remaining_segment_space > 0) {
242 if (packet_count < total_packets && remaining_segment_space >= min_required_segment_space) {
256 std::cout <<
"Adding packet number: " << packet_count << std::endl;
262 remaining_segment_space);
265 std::cout <<
"Adding padding packet with size: " << padding_size << std::endl;