#include "framework/counts.h"
#include "log/messages.h"
+#include "packet_io/active.h"
#include "packet_io/sfdaq_instance.h"
#include "protocols/packet.h"
#include "side_channel/side_channel.h"
void HighAvailabilityManager::process_update(Flow* flow, Packet* p)
{
- if (ha && p && flow)
+ if (ha && flow && !p->active->get_tunnel_bypass())
ha->process_update(flow, p);
}
static Flow s_flow;
static FlowKey s_flowkey;
static Packet s_pkt;
+static Active active;
static StreamHAClient* s_ha_client;
static FlowHAClient* s_other_ha_client;
static std::function<void (SCMessage*)> s_handler = nullptr;
s_transmit_message_called = false;
s_stream_update_required = false;
s_other_update_required = false;
+ s_pkt.active = &active;
HighAvailabilityManager::process_update(&s_flow, &s_pkt);
CHECK(s_transmit_message_called == false);
}
s_transmit_message_called = false;
s_stream_update_required = true;
s_other_update_required = false;
+ s_pkt.active = &active;
HighAvailabilityManager::process_update(&s_flow, &s_pkt);
CHECK(s_transmit_message_called == true);
}
s_transmit_message_called = false;
s_stream_update_required = true;
s_other_update_required = true;
+ s_pkt.active = &active;
CHECK(s_other_ha_client->handle == 1);
s_flow.ha_state->set_pending(s_other_ha_client->handle);
HighAvailabilityManager::process_update(&s_flow, &s_pkt);