-- fixed stream_ip defaults
-- fixed binder[2] = { { when = { }, user = { } } } (extra { })
-- fixed static flush points
+-- added stream_tcp.segs_split peg
126
-- pulled latest from tom
PegCount trackers_released;
PegCount segs_queued;
PegCount segs_released;
+ PegCount segs_split;
PegCount segs_used;
PegCount rebuilt_packets;
PegCount rebuilt_buffers;
"trackers released",
"segs queued",
"segs released",
+ "segs split",
"segs used",
"rebuilt packets",
"rebuilt buffers",
if ( !ss )
return STREAM_INSERT_FAILED;
+ tcpStats.segs_split++;
ss->data = ss->pkt + (left->data - left->pkt);
ss->orig_dsize = left->orig_dsize;
if ( flush_pt > 0 )
{
MODULE_PROFILE_END(s5TcpPAFPerfStats);
+#if 0
+ // for non-paf splitters, flush_pt > 0 means we reached
+ // the minimum required, but we flush what is available
+ // instead of creating more, but smaller, packets
+ if ( !trk->splitter->is_paf() && avail > flush_pt )
+ return avail;
+#endif
return flush_pt;
}
seg = seg->next;
if ( flush_pt > 0 )
{
MODULE_PROFILE_END(s5TcpPAFPerfStats);
+#if 0
+ // for non-paf splitters, flush_pt > 0 means we reached
+ // the minimum required, but we flush what is available
+ // instead of creating more, but smaller, packets
+ if ( !trk->splitter->is_paf() )
+ {
+ uint32_t avail = get_q_footprint(trk);
+ if ( avail > flush_pt )
+ return avail;
+ }
+#endif
return flush_pt;
}
seg = seg->next;