70 0xb7, 0x27, 0x53, 0x03, 0xe5, 0x8a, 0x6e, 0x97,
71 0xba, 0x83, 0xa4, 0xc4, 0x08, 0x00, 0x45, 0x00,
72 0x00, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
73 0x26, 0x57, 0xfb, 0x83, 0x89, 0xd7, 0xd9, 0x4c,
74 0xf5, 0x9b, 0x06, 0x09, 0xfa, 0xaa, 0x00, 0x3e,
75 0xce, 0xa5, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70,
76 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a,
77 0x61, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69,
78 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a, 0x61,
79 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a,
80 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x70,
81 0x69, 0x7a, 0x7a, 0x61, 0x70, 0x69, 0x7a, 0x7a
101 if (status != NT_SUCCESS) {
104 std::cerr << message <<
": " << error_buffer << std::endl;
105 std::exit(EXIT_FAILURE);
114 uint64_t max_packet_size, uint64_t remaining_segment_space)
116 constexpr uint64_t min_packet_size = 64;
120 uint16_t padding_size = 0;
122 if (remaining_segment_space >= min_padding_size + max_padding_size) {
125 padding_size =
static_cast<uint16_t
>(max_packet_size);
127 else if (remaining_segment_space <= max_padding_size) {
135 padding_size =
static_cast<uint16_t
>(remaining_segment_space - (
NT_DESCR_DYN3_LENGTH + min_padding_size));
161 status =
NT_InfoOpen(&info_stream,
"transmit_segment_dyn_descr_example_info");
181 constexpr uint64_t fcs_size = 4;
182 constexpr uint64_t min_packet_size = 64;
183 constexpr uint64_t segment_size = 8192;
184 constexpr uint64_t total_packets = 100;
185 constexpr uint8_t tx_port = 0;
193 status =
NT_Init(NTAPI_VERSION);
223 for (uint64_t packet_count = 0; packet_count < total_packets;) {
234 while (remaining_segment_space > 0) {
241 if (packet_count < total_packets && remaining_segment_space >= min_required_segment_space) {
255 std::cout <<
"Adding packet number: " << packet_count << std::endl;
261 remaining_segment_space);
264 std::cout <<
"Adding padding packet with size: " << padding_size << std::endl;