Squashed commit of the following:
commit
08c92b8e71cef3840a11930cb3728ac20d3ac1c3
Author: Carter Waxman <cwaxman@cisco.com>
Date: Tue Sep 11 14:04:10 2018 -0400
stream, detection, flow: don't force onloads between pdus unless absolutey necessary
return false;
}
assert(p == p->context->packet);
- onload(p->flow); // FIXIT-L just assert !offloaded?
-
assert(p->context == sw->get_context());
+
unsigned id = sw->suspend();
trace_logf(detection, TRACE_DETECTION_ENGINE, "%" PRIu64 " de::offload %u (r=%d)\n",
if ( p->proto_bits & PROTO_BIT__MPLS )
flow->set_mpls_layer_per_dir(p);
- if ( p->type() == PktType::PDU ) // FIXIT-H cooked or PDU?
- DetectionEngine::onload(flow);
-
switch ( flow->flow_state )
{
case Flow::FlowState::SETUP:
Packet* TcpReassembler::initialize_pdu(
TcpReassemblerState& trs, Packet* p, uint32_t pkt_flags, struct timeval tv)
{
- DetectionEngine::onload(trs.sos.session->flow);
Packet* pdu = DetectionEngine::set_next_packet(p);
EncodeFlags enc_flags = 0;
TcpReassemblerState& trs, uint32_t bytes, Packet* p, uint32_t pkt_flags)
{
DeepProfile profile(s5TcpFlushPerfStats);
- DetectionEngine::onload(trs.sos.session->flow);
if ( !p )
{
int32_t TcpReassembler::flush_pdu_ips(TcpReassemblerState& trs, uint32_t* flags)
{
DeepProfile profile(s5TcpPAFPerfStats);
- DetectionEngine::onload(trs.sos.session->flow);
uint32_t total = 0, avail;
TcpSegmentNode* tsn;
int32_t TcpReassembler::flush_pdu_ackd(TcpReassemblerState& trs, uint32_t* flags)
{
DeepProfile profile(s5TcpPAFPerfStats);
- DetectionEngine::onload(trs.sos.session->flow);
uint32_t total = 0;
TcpSegmentNode* tsn =
tcp_init = false;
tcpStats.released++;
- DetectionEngine::onload(flow);
-
if ( flush_segments )
{
client.reassembler.flush_queued_segments(flow, true, p);
{
if ( flush )
{
- DetectionEngine::onload(flow);
flush_listener(tsd.get_pkt(), true);
flush_talker(tsd.get_pkt(), true);
- DetectionEngine::onload(flow); // FIXIT-H don't allow offload above
set_splitter(true, nullptr);
set_splitter(false, nullptr);
}
if ( seg_list.empty() )
return -1;
- DetectionEngine::onload(p->flow);
std::list<UserSegment*>::iterator it;
for ( it = seg_list.begin(); it != seg_list.end(); ++it)
void UserTracker::process(Packet* p)
{
- DetectionEngine::onload(p->flow);
-
uint32_t flags = 0;
int flush_amt = scan(p, flags);