82 std::unique_ptr<FlowTaskMsg> ipc;
83 bool allow_reentrant =
true;
91 allow_reentrant =
false;
97 tbb::mutex::scoped_lock lock1(fe->
mutex());
109 info.flow_entry = fe;
110 pkt_info_->agent_hdr.cmd = AGENT_TRAP_FLOW_MISS;
132 if (info.Process(
pkt_info_.get(), &in, &out) ==
false) {
133 info.short_flow =
true;
138 if (allow_reentrant && ((
pkt_info_->sport != info.nat_sport) ||
140 if ((info.nat_sport != 0 || info.nat_dport != 0)) {
157 info.local_flow =
true;
void SetPktInfo(boost::shared_ptr< PktInfo > info)
FlowTable * flow_table() const
uint32_t component_nh_idx
static const uint32_t kPortNatFlowTableInstance
const Interface * vhost_interface() const
static const VmEntry * InterfaceToVm(const Interface *intf)
InterfaceTable * interface_table() const
uint16_t table_index() const
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
Base class for all Route entries in agent.
boost::shared_ptr< PktInfo > pkt_info_
BridgeRouteEntry * FindRouteNoLock(const MacAddress &mac)
const FlowKey & key() const
FlowTable * GetTable(uint16_t index) const
VrfEntry * FindVrfFromId(size_t index)
bool is_flags_set(const FlowEntryFlags &flags) const
const NextHop * GetActiveNextHop() const
bool IsL3ModeFlow() const
AgentRouteTable * GetBridgeRouteTable() const
VrfTable * vrf_table() const
SandeshTraceBufferPtr PktFlowTraceBuf
uint32_t flow_handle() const
uint16_t flow_table_index_
const Interface * FindInterface(size_t index) const
bool EnqueueReentrant(boost::shared_ptr< PktInfo > msg, uint8_t table_index)
const VmEntry * vm() const
SandeshTraceBufferPtr SandeshTraceBufferCreate(const std::string &buf_name, size_t buf_size, bool trace_enable=true)