OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FlowEntry Class Reference

#include <flow_entry.h>

Collaboration diagram for FlowEntry:

Classes

class  FlowEntryEventHistory
 

Public Types

enum  FlowShortReason {
  SHORT_UNKNOWN = 0, SHORT_UNAVIALABLE_INTERFACE, SHORT_IPV4_FWD_DIS, SHORT_UNAVIALABLE_VRF,
  SHORT_NO_SRC_ROUTE, SHORT_NO_DST_ROUTE, SHORT_AUDIT_ENTRY, SHORT_VRF_CHANGE,
  SHORT_NO_REVERSE_FLOW, SHORT_REVERSE_FLOW_CHANGE, SHORT_NAT_CHANGE, SHORT_FLOW_LIMIT,
  SHORT_LINKLOCAL_SRC_NAT, SHORT_FAILED_VROUTER_INSTALL, SHORT_INVALID_L2_FLOW, SHORT_FLOW_ON_TSN,
  SHORT_NO_MIRROR_ENTRY, SHORT_SAME_FLOW_RFLOW_KEY, SHORT_PORT_MAP_DROP, SHORT_NO_SRC_ROUTE_L2RPF,
  SHORT_FAT_FLOW_NAT_CONFLICT, SHORT_L3MH_PHY_INTF_DOWN, SHORT_MAX
}
 
enum  FlowDropReason {
  DROP_UNKNOWN = 0, DROP_POLICY = SHORT_MAX, DROP_OUT_POLICY, DROP_SG,
  DROP_OUT_SG, DROP_REVERSE_SG, DROP_REVERSE_OUT_SG, DROP_FIREWALL_POLICY,
  DROP_OUT_FIREWALL_POLICY, DROP_REVERSE_FIREWALL_POLICY, DROP_REVERSE_OUT_FIREWALL_POLICY, DROP_FWAAS_POLICY,
  DROP_FWAAS_OUT_POLICY, DROP_FWAAS_REVERSE_POLICY, DROP_FWAAS_REVERSE_OUT_POLICY
}
 
enum  FlowPolicyState {
  NOT_EVALUATED, IMPLICIT_ALLOW, IMPLICIT_DENY, DEFAULT_GW_ICMP_OR_DNS,
  LINKLOCAL_FLOW, MULTICAST_FLOW, BGPROUTERSERVICE_FLOW, NON_IP_FLOW
}
 
enum  PcapType {
  PCAP_CAPTURE_HOST = 1, PCAP_FLAGS = 2, PCAP_SOURCE_VN = 3, PCAP_DEST_VN = 4,
  PCAP_TLV_END = 255
}
 
enum  FlowEntryFlags {
  NatFlow = 1 << 0, LocalFlow = 1 << 1, ShortFlow = 1 << 2, LinkLocalFlow = 1 << 3,
  ReverseFlow = 1 << 4, EcmpFlow = 1 << 5, IngressDir = 1 << 6, Trap = 1 << 7,
  Multicast = 1 << 8, LinkLocalBindLocalSrcPort = 1 << 9, TcpAckFlow = 1 << 10, UnknownUnicastFlood = 1 << 11,
  BgpRouterService = 1 << 12, AliasIpFlow = 1 << 13, FabricControlFlow = 1 << 14, FabricFlow = 1 << 15,
  HbfFlow = 1 << 16
}
 
enum  HbsInterface { HBS_INTERFACE_INVALID = 0, HBS_INTERFACE_LEFT = 1, HBS_INTERFACE_RIGHT = 2 }
 

Public Member Functions

 FlowEntry (FlowTable *flow_table)
 
virtual ~FlowEntry ()
 
void Reset (const FlowKey &k)
 
void Reset ()
 
void Copy (FlowEntry *rhs, bool update)
 
void InitFwdFlow (const PktFlowInfo *info, const PktInfo *pkt, const PktControlInfo *ctrl, const PktControlInfo *rev_ctrl, FlowEntry *rflow, Agent *agent)
 
void InitRevFlow (const PktFlowInfo *info, const PktInfo *pkt, const PktControlInfo *ctrl, const PktControlInfo *rev_ctrl, FlowEntry *rflow, Agent *agent)
 
void InitAuditFlow (uint32_t flow_idx, uint8_t gen_id)
 
int GetRefCount ()
 
const FlowKeykey () const
 
FlowDatadata ()
 
const FlowDatadata () const
 
FlowTableflow_table () const
 
bool l3_flow () const
 
uint8_t gen_id () const
 
uint32_t flow_handle () const
 
void set_flow_handle (uint32_t flow_handle, uint8_t gen_id)
 
FlowEntryreverse_flow_entry ()
 
uint32_t flags () const
 
const FlowEntryreverse_flow_entry () const
 
void set_reverse_flow_entry (FlowEntry *reverse_flow_entry)
 
bool is_flags_set (const FlowEntryFlags &flags) const
 
void set_flags (const FlowEntryFlags &flags)
 
void reset_flags (const FlowEntryFlags &flags)
 
void set_source_sg_id_l (const SecurityGroupList &sg_l)
 
void set_dest_sg_id_l (const SecurityGroupList &sg_l)
 
int linklocal_src_port () const
 
int linklocal_src_port_fd () const
 
const std::string & acl_assigned_vrf () const
 
void set_acl_assigned_vrf_index ()
 
uint32_t acl_assigned_vrf_index () const
 
uint32_t fip () const
 
VmInterfaceKey fip_vmi () const
 
uint32_t reverse_flow_fip () const
 
VmInterfaceKey reverse_flow_vmi () const
 
void UpdateFipStatsInfo (uint32_t fip, uint32_t id, Agent *agent)
 
const boost::uuids::uuid & uuid () const
 
const boost::uuids::uuidegress_uuid () const
 
const std::string & sg_rule_uuid () const
 
const std::string & nw_ace_uuid () const
 
const std::string fw_policy_name_uuid () const
 
const std::string fw_policy_uuid () const
 
const std::string RemotePrefix () const
 
const TagListremote_tagset () const
 
const TagListlocal_tagset () const
 
const std::string & peer_vrouter () const
 
TunnelType tunnel_type () const
 
uint16_t short_flow_reason () const
 
const MacAddresssmac () const
 
const MacAddressdmac () const
 
bool on_tree () const
 
void set_on_tree ()
 
tbb::mutex & mutex ()
 
const Interfaceintf_entry () const
 
const VnEntryvn_entry () const
 
VmFlowRefin_vm_flow_ref ()
 
const VmEntryin_vm_entry () const
 
const VmEntryout_vm_entry () const
 
const NextHopsrc_ip_nh () const
 
const NextHoprpf_nh () const
 
uint32_t GetEcmpIndex () const
 
const uint32_t bgp_as_a_service_sport () const
 
const uint32_t bgp_as_a_service_dport () const
 
const MatchPolicymatch_p () const
 
bool ActionSet (TrafficAction::Action action) const
 
bool ImplicitDenyFlow () const
 
bool deleted ()
 
bool IsShortFlow () const
 
bool IsEcmpFlow () const
 
bool IsNatFlow () const
 
bool IsIngressFlow () const
 
void ResyncFlow ()
 
void RpfUpdate ()
 
bool ActionRecompute ()
 
bool DoPolicy ()
 
void MakeShortFlow (FlowShortReason reason)
 
void SetMirrorVrfFromAction ()
 
void SetHbsInfofromAction ()
 
void SetVrfAssignEntry ()
 
void ComputeReflexiveAction ()
 
uint32_t MatchAcl (const PacketHeader &hdr, MatchAclParamsList &acl, bool add_implicit_deny, bool add_implicit_allow, FlowPolicyInfo *info)
 
void ResetPolicy ()
 
void FillFlowInfo (FlowInfo &info) const
 
void GetPolicyInfo (const VnEntry *vn, const FlowEntry *rflow)
 
void GetPolicyInfo (const FlowEntry *rflow)
 
void GetPolicyInfo (const VnEntry *vn)
 
void GetPolicyInfo ()
 
void UpdateL2RouteInfo ()
 
void GetVrfAssignAcl ()
 
void SetMirrorVrf (const uint32_t id)
 
void GetPolicy (const VnEntry *vn, const FlowEntry *rflow)
 
void GetNonLocalFlowSgList (const VmInterface *vm_port)
 
void GetLocalFlowSgList (const VmInterface *vm_port, const VmInterface *reverse_vm_port)
 
void GetSgList (const Interface *intf)
 
void GetApplicationPolicySet (const Interface *intf, const FlowEntry *rflow)
 
void SetPacketHeader (PacketHeader *hdr)
 
void SetOutPacketHeader (PacketHeader *hdr)
 
void set_deleted (bool deleted)
 
void SetAclAction (std::vector< AclAction > &acl_action_l) const
 
void UpdateReflexiveAction ()
 
bool IsFabricControlFlow () const
 
void SetAclFlowSandeshData (const AclDBEntry *acl, FlowSandeshData &fe_sandesh_data, Agent *agent) const
 
uint32_t InterfaceKeyToId (Agent *agent, const VmInterfaceKey &key)
 
FlowTableKSyncEntryksync_entry ()
 
FlowStatsCollectorfsc () const
 
void set_fsc (FlowStatsCollector *fsc)
 
std::string KeyString () const
 
void SetEventSandeshData (SandeshFlowIndexInfo *info)
 
void LogFlow (FlowEventLog::Event event, FlowTableKSyncEntry *ksync, uint32_t flow_handle, uint8_t gen_id)
 
void RevFlowDepInfo (RevFlowDepParams *params)
 
uint32_t last_event () const
 
void set_last_event (uint32_t event)
 
uint8_t GetMaxRetryAttempts ()
 
void IncrementRetrycount ()
 
void ResetRetryCount ()
 
bool IsOnUnresolvedList ()
 
void SetUnResolvedList (bool added)
 
FlowPendingActionGetPendingAction ()
 
bool trace () const
 
void set_trace (bool val)
 
FlowMgmtRequestflow_mgmt_request () const
 
void set_flow_mgmt_request (FlowMgmtRequest *req)
 
FlowEntryInfoflow_mgmt_info () const
 
void set_flow_mgmt_info (FlowEntryInfo *info)
 
void FillUveFwStatsInfo (FlowUveFwPolicyInfo *info, bool added) const
 
void FillUveVnAceInfo (FlowUveVnAcePolicyInfo *info) const
 
bool IsClientFlow ()
 
bool IsServerFlow ()
 
uint16_t allocated_port ()
 
void IncrementTransactionId ()
 
uint32_t GetTransactionId ()
 
void SetHbsInterface (HbsInterface intf)
 
HbsInterface GetHbsInterface ()
 

Static Public Member Functions

static void Init ()
 
static AgentRouteGetL2Route (const VrfEntry *entry, const MacAddress &mac)
 
static AgentRouteGetUcRoute (const VrfEntry *entry, const IpAddress &addr)
 
static AgentRouteGetEvpnRoute (const VrfEntry *entry, const MacAddress &mac, const IpAddress &addr, uint32_t ethernet_tag)
 
static const SecurityGroupListdefault_sg_list ()
 
static FlowEntryAllocate (const FlowKey &key, FlowTable *flow_table)
 
static bool ShouldDrop (uint32_t action)
 
static std::string DropReasonStr (uint16_t reason)
 

Static Public Attributes

static const uint32_t kInvalidFlowHandle =0xFFFFFFFF
 
static const uint8_t kMaxMirrorsPerFlow =0x2
 
static const std::map
< FlowPolicyState, const char * > 
FlowPolicyStateStr
 
static const std::map
< uint16_t, const char * > 
FlowDropReasonStr
 
static const uint32_t kFlowRetryAttempts = 5
 

Private Member Functions

void FillUveLocalRevFlowStatsInfo (FlowUveFwPolicyInfo *info, bool added) const
 
void FillUveFwdFlowStatsInfo (FlowUveFwPolicyInfo *info, bool added) const
 
void RpfInit (const AgentRoute *rt, const IpAddress &sip)
 
void RpfSetRpfNhFields (const NextHop *rpf_nh)
 
void RpfSetRpfNhFields (const AgentRoute *rt, const NextHop *rpf_nh)
 
void RpfSetSrcIpNhFields (const AgentRoute *rt, const NextHop *src_ip_nh)
 
bool RpfFromSrcIpNh () const
 
void RpfComputeEgress ()
 
void RpfComputeIngress ()
 
bool InitFlowCmn (const PktFlowInfo *info, const PktControlInfo *ctrl, const PktControlInfo *rev_ctrl, FlowEntry *rflow)
 
VmInterfaceKey InterfaceIdToKey (Agent *agent, uint32_t id)
 
void GetSourceRouteInfo (const AgentRoute *rt)
 
void GetDestRouteInfo (const AgentRoute *rt)
 
const std::string InterfaceIdToVmCfgName (Agent *agent, uint32_t id)
 
const VrfEntryGetDestinationVrf () const
 
bool SetQosConfigIndex ()
 
void SetAclInfo (SessionPolicy *sp, SessionPolicy *rsp, const FlowPolicyInfo &fwd_flow_info, const FlowPolicyInfo &rev_flow_info, bool tcp_rev, bool is_sg)
 
void SessionMatch (SessionPolicy *sp, SessionPolicy *rsp, bool is_sg)
 
void UpdateReflexiveAction (SessionPolicy *sp, SessionPolicy *rsp)
 
const std::string BuildRemotePrefix (const FlowRouteRefMap &rt_list, uint32_t vr, const IpAddress &ip) const
 
uint8_t GetUnderlayGwIndex (uint32_t intf_in, const IpAddress &sip, const IpAddress &dip, uint8_t proto, uint16_t sport, uint16_t dport) const
 

Private Attributes

FlowKey key_
 
FlowTableflow_table_
 
FlowData data_
 
bool l3_flow_
 
uint8_t gen_id_
 
uint32_t flow_handle_
 
FlowEntryPtr reverse_flow_entry_
 
bool deleted_
 
uint32_t flags_
 
uint16_t short_flow_reason_
 
boost::uuids::uuid uuid_
 
boost::uuids::uuid egress_uuid_
 
std::string sg_rule_uuid_
 
std::string nw_ace_uuid_
 
std::string peer_vrouter_
 
TunnelType tunnel_type_
 
bool on_tree_
 
uint32_t fip_
 
VmInterfaceKey fip_vmi_
 
FlowTableKSyncEntryksync_entry_
 
tbb::atomic< int > refcount_
 
tbb::mutex mutex_
 
boost::intrusive::list_member_hook free_list_node_
 
FlowStatsCollectorfsc_
 
uint32_t last_event_
 
bool trace_
 
boost::scoped_array< FlowEventLogevent_logs_
 
uint16_t event_log_index_
 
FlowPendingAction pending_actions_
 
uint8_t flow_retry_attempts_
 
bool is_flow_on_unresolved_list
 
FlowMgmtRequestflow_mgmt_request_
 
FlowMgmtEntryInfoPtr flow_mgmt_info_
 
const std::string fw_policy_
 
uint32_t transaction_id_
 
FlowEntryEventHistory e_history_
 
HbsInterface hbs_intf_
 

Static Private Attributes

static tbb::atomic< int > alloc_count_
 
static SecurityGroupList default_sg_list_
 

Friends

class FlowTable
 
class FlowEntryFreeList
 
class FlowStatsCollector
 
class KSyncFlowIndexManager
 
void intrusive_ptr_add_ref (FlowEntry *fe)
 
void intrusive_ptr_release (FlowEntry *fe)
 

Detailed Description

Definition at line 460 of file flow_entry.h.

Member Enumeration Documentation

Enumerator
DROP_UNKNOWN 
DROP_POLICY 
DROP_OUT_POLICY 
DROP_SG 
DROP_OUT_SG 
DROP_REVERSE_SG 
DROP_REVERSE_OUT_SG 
DROP_FIREWALL_POLICY 
DROP_OUT_FIREWALL_POLICY 
DROP_REVERSE_FIREWALL_POLICY 
DROP_REVERSE_OUT_FIREWALL_POLICY 
DROP_FWAAS_POLICY 
DROP_FWAAS_OUT_POLICY 
DROP_FWAAS_REVERSE_POLICY 
DROP_FWAAS_REVERSE_OUT_POLICY 

Definition at line 490 of file flow_entry.h.

Enumerator
NatFlow 
LocalFlow 
ShortFlow 
LinkLocalFlow 
ReverseFlow 
EcmpFlow 
IngressDir 
Trap 
Multicast 
LinkLocalBindLocalSrcPort 
TcpAckFlow 
UnknownUnicastFlood 
BgpRouterService 
AliasIpFlow 
FabricControlFlow 
FabricFlow 
HbfFlow 

Definition at line 535 of file flow_entry.h.

Enumerator
NOT_EVALUATED 
IMPLICIT_ALLOW 
IMPLICIT_DENY 
DEFAULT_GW_ICMP_OR_DNS 
LINKLOCAL_FLOW 
MULTICAST_FLOW 
BGPROUTERSERVICE_FLOW 
NON_IP_FLOW 

Definition at line 510 of file flow_entry.h.

Enumerator
SHORT_UNKNOWN 
SHORT_UNAVIALABLE_INTERFACE 
SHORT_IPV4_FWD_DIS 
SHORT_UNAVIALABLE_VRF 
SHORT_NO_SRC_ROUTE 
SHORT_NO_DST_ROUTE 
SHORT_AUDIT_ENTRY 
SHORT_VRF_CHANGE 
SHORT_NO_REVERSE_FLOW 
SHORT_REVERSE_FLOW_CHANGE 
SHORT_NAT_CHANGE 
SHORT_FLOW_LIMIT 
SHORT_LINKLOCAL_SRC_NAT 
SHORT_FAILED_VROUTER_INSTALL 
SHORT_INVALID_L2_FLOW 
SHORT_FLOW_ON_TSN 
SHORT_NO_MIRROR_ENTRY 
SHORT_SAME_FLOW_RFLOW_KEY 
SHORT_PORT_MAP_DROP 
SHORT_NO_SRC_ROUTE_L2RPF 
SHORT_FAT_FLOW_NAT_CONFLICT 
SHORT_L3MH_PHY_INTF_DOWN 
SHORT_MAX 

Definition at line 462 of file flow_entry.h.

Enumerator
HBS_INTERFACE_INVALID 
HBS_INTERFACE_LEFT 
HBS_INTERFACE_RIGHT 

Definition at line 556 of file flow_entry.h.

Enumerator
PCAP_CAPTURE_HOST 
PCAP_FLAGS 
PCAP_SOURCE_VN 
PCAP_DEST_VN 
PCAP_TLV_END 

Definition at line 527 of file flow_entry.h.

Constructor & Destructor Documentation

FlowEntry::FlowEntry ( FlowTable flow_table)

Definition at line 447 of file flow_entry.cc.

Here is the call graph for this function:

FlowEntry::~FlowEntry ( )
virtual

Definition at line 459 of file flow_entry.cc.

Here is the call graph for this function:

Member Function Documentation

const std::string & FlowEntry::acl_assigned_vrf ( ) const

Definition at line 1045 of file flow_entry.cc.

Here is the call graph for this function:

uint32_t FlowEntry::acl_assigned_vrf_index ( ) const

Definition at line 1073 of file flow_entry.cc.

bool FlowEntry::ActionRecompute ( )

Definition at line 2746 of file flow_entry.cc.

Here is the call graph for this function:

bool FlowEntry::ActionSet ( TrafficAction::Action  action) const
inline

Definition at line 672 of file flow_entry.h.

FlowEntry * FlowEntry::Allocate ( const FlowKey key,
FlowTable flow_table 
)
static

Definition at line 514 of file flow_entry.cc.

Here is the call graph for this function:

uint16_t FlowEntry::allocated_port ( )
inline

Definition at line 766 of file flow_entry.h.

const uint32_t FlowEntry::bgp_as_a_service_dport ( ) const
inline

Definition at line 665 of file flow_entry.h.

Here is the call graph for this function:

const uint32_t FlowEntry::bgp_as_a_service_sport ( ) const
inline

Definition at line 660 of file flow_entry.h.

Here is the call graph for this function:

const std::string FlowEntry::BuildRemotePrefix ( const FlowRouteRefMap rt_list,
uint32_t  vr,
const IpAddress ip 
) const
private

Definition at line 3516 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::ComputeReflexiveAction ( )
void FlowEntry::Copy ( FlowEntry rhs,
bool  update 
)

Definition at line 531 of file flow_entry.cc.

Here is the call graph for this function:

FlowData& FlowEntry::data ( )
inline

Definition at line 595 of file flow_entry.h.

const FlowData& FlowEntry::data ( ) const
inline

Definition at line 596 of file flow_entry.h.

static const SecurityGroupList& FlowEntry::default_sg_list ( )
inlinestatic

Definition at line 586 of file flow_entry.h.

bool FlowEntry::deleted ( )
inline

Definition at line 680 of file flow_entry.h.

const MacAddress& FlowEntry::dmac ( ) const
inline

Definition at line 647 of file flow_entry.h.

bool FlowEntry::DoPolicy ( )

Definition at line 2549 of file flow_entry.cc.

Here is the call graph for this function:

std::string FlowEntry::DropReasonStr ( uint16_t  reason)
static

Definition at line 1477 of file flow_entry.cc.

const boost::uuids::uuid& FlowEntry::egress_uuid ( ) const
inline

Definition at line 632 of file flow_entry.h.

void FlowEntry::FillFlowInfo ( FlowInfo &  info) const

Definition at line 3134 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::FillUveFwdFlowStatsInfo ( FlowUveFwPolicyInfo info,
bool  added 
) const
private

Definition at line 3576 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::FillUveFwStatsInfo ( FlowUveFwPolicyInfo info,
bool  added 
) const

Definition at line 3602 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::FillUveLocalRevFlowStatsInfo ( FlowUveFwPolicyInfo info,
bool  added 
) const
private

Definition at line 3556 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::FillUveVnAceInfo ( FlowUveVnAcePolicyInfo info) const

Definition at line 3547 of file flow_entry.cc.

Here is the call graph for this function:

uint32_t FlowEntry::fip ( ) const
inline

Definition at line 626 of file flow_entry.h.

VmInterfaceKey FlowEntry::fip_vmi ( ) const
inline

Definition at line 627 of file flow_entry.h.

uint32_t FlowEntry::flags ( ) const
inline

Definition at line 603 of file flow_entry.h.

uint32_t FlowEntry::flow_handle ( ) const
inline

Definition at line 600 of file flow_entry.h.

FlowEntryInfo* FlowEntry::flow_mgmt_info ( ) const
inline

Definition at line 760 of file flow_entry.h.

FlowMgmtRequest* FlowEntry::flow_mgmt_request ( ) const
inline

Definition at line 755 of file flow_entry.h.

FlowTable* FlowEntry::flow_table ( ) const
inline

Definition at line 597 of file flow_entry.h.

FlowStatsCollector* FlowEntry::fsc ( ) const
inline

Definition at line 728 of file flow_entry.h.

const std::string FlowEntry::fw_policy_name_uuid ( ) const

Definition at line 3634 of file flow_entry.cc.

Here is the call graph for this function:

const std::string FlowEntry::fw_policy_uuid ( ) const

Definition at line 3630 of file flow_entry.cc.

uint8_t FlowEntry::gen_id ( ) const
inline

Definition at line 599 of file flow_entry.h.

void FlowEntry::GetApplicationPolicySet ( const Interface intf,
const FlowEntry rflow 
)

Definition at line 1888 of file flow_entry.cc.

Here is the call graph for this function:

const VrfEntry * FlowEntry::GetDestinationVrf ( ) const
private

Definition at line 2661 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetDestRouteInfo ( const AgentRoute rt)
private

Definition at line 1558 of file flow_entry.cc.

Here is the call graph for this function:

uint32_t FlowEntry::GetEcmpIndex ( ) const
inline

Definition at line 659 of file flow_entry.h.

AgentRoute * FlowEntry::GetEvpnRoute ( const VrfEntry entry,
const MacAddress mac,
const IpAddress addr,
uint32_t  ethernet_tag 
)
static

Definition at line 1005 of file flow_entry.cc.

Here is the call graph for this function:

HbsInterface FlowEntry::GetHbsInterface ( )
inline

Definition at line 772 of file flow_entry.h.

AgentRoute * FlowEntry::GetL2Route ( const VrfEntry entry,
const MacAddress mac 
)
static

Definition at line 982 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetLocalFlowSgList ( const VmInterface vm_port,
const VmInterface reverse_vm_port 
)

Definition at line 2008 of file flow_entry.cc.

Here is the call graph for this function:

uint8_t FlowEntry::GetMaxRetryAttempts ( )
inline

Definition at line 746 of file flow_entry.h.

void FlowEntry::GetNonLocalFlowSgList ( const VmInterface vm_port)

Definition at line 2045 of file flow_entry.cc.

Here is the call graph for this function:

FlowPendingAction* FlowEntry::GetPendingAction ( )
inline

Definition at line 751 of file flow_entry.h.

void FlowEntry::GetPolicy ( const VnEntry vn,
const FlowEntry rflow 
)

Definition at line 1733 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetPolicyInfo ( const VnEntry vn,
const FlowEntry rflow 
)

Definition at line 1678 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetPolicyInfo ( const FlowEntry rflow)

Definition at line 1729 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetPolicyInfo ( const VnEntry vn)

Definition at line 1725 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetPolicyInfo ( )

Definition at line 1721 of file flow_entry.cc.

Here is the call graph for this function:

int FlowEntry::GetRefCount ( )
inline

Definition at line 593 of file flow_entry.h.

void FlowEntry::GetSgList ( const Interface intf)

Definition at line 1834 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetSourceRouteInfo ( const AgentRoute rt)
private

Definition at line 1489 of file flow_entry.cc.

Here is the call graph for this function:

uint32_t FlowEntry::GetTransactionId ( )
inline

Definition at line 770 of file flow_entry.h.

AgentRoute * FlowEntry::GetUcRoute ( const VrfEntry entry,
const IpAddress addr 
)
static

Definition at line 989 of file flow_entry.cc.

Here is the call graph for this function:

uint8_t FlowEntry::GetUnderlayGwIndex ( uint32_t  intf_in,
const IpAddress sip,
const IpAddress dip,
uint8_t  proto,
uint16_t  sport,
uint16_t  dport 
) const
private

Definition at line 3648 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::GetVrfAssignAcl ( )

Definition at line 1792 of file flow_entry.cc.

Here is the call graph for this function:

bool FlowEntry::ImplicitDenyFlow ( ) const
inline

Definition at line 676 of file flow_entry.h.

const VmEntry* FlowEntry::in_vm_entry ( ) const
inline

Definition at line 655 of file flow_entry.h.

Here is the call graph for this function:

VmFlowRef* FlowEntry::in_vm_flow_ref ( )
inline

Definition at line 654 of file flow_entry.h.

void FlowEntry::IncrementRetrycount ( )
inline

Definition at line 747 of file flow_entry.h.

void FlowEntry::IncrementTransactionId ( )
inline

Definition at line 769 of file flow_entry.h.

void FlowEntry::Init ( )
static

Definition at line 510 of file flow_entry.cc.

void FlowEntry::InitAuditFlow ( uint32_t  flow_idx,
uint8_t  gen_id 
)

Definition at line 871 of file flow_entry.cc.

Here is the call graph for this function:

bool FlowEntry::InitFlowCmn ( const PktFlowInfo info,
const PktControlInfo ctrl,
const PktControlInfo rev_ctrl,
FlowEntry rflow 
)
private

Definition at line 611 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::InitFwdFlow ( const PktFlowInfo info,
const PktInfo pkt,
const PktControlInfo ctrl,
const PktControlInfo rev_ctrl,
FlowEntry rflow,
Agent agent 
)

Definition at line 685 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::InitRevFlow ( const PktFlowInfo info,
const PktInfo pkt,
const PktControlInfo ctrl,
const PktControlInfo rev_ctrl,
FlowEntry rflow,
Agent agent 
)

Definition at line 779 of file flow_entry.cc.

Here is the call graph for this function:

VmInterfaceKey FlowEntry::InterfaceIdToKey ( Agent agent,
uint32_t  id 
)
private

Definition at line 1627 of file flow_entry.cc.

Here is the call graph for this function:

const std::string FlowEntry::InterfaceIdToVmCfgName ( Agent agent,
uint32_t  id 
)
private

Definition at line 1647 of file flow_entry.cc.

Here is the call graph for this function:

uint32_t FlowEntry::InterfaceKeyToId ( Agent agent,
const VmInterfaceKey key 
)

Definition at line 1638 of file flow_entry.cc.

Here is the call graph for this function:

const Interface* FlowEntry::intf_entry ( ) const
inline

Definition at line 652 of file flow_entry.h.

bool FlowEntry::is_flags_set ( const FlowEntryFlags flags) const
inline

Definition at line 610 of file flow_entry.h.

bool FlowEntry::IsClientFlow ( )

Definition at line 1421 of file flow_entry.cc.

Here is the call graph for this function:

bool FlowEntry::IsEcmpFlow ( ) const
inline

Definition at line 683 of file flow_entry.h.

Here is the call graph for this function:

bool FlowEntry::IsFabricControlFlow ( ) const

Definition at line 893 of file flow_entry.cc.

Here is the call graph for this function:

bool FlowEntry::IsIngressFlow ( ) const
inline

Definition at line 685 of file flow_entry.h.

Here is the call graph for this function:

bool FlowEntry::IsNatFlow ( ) const
inline

Definition at line 684 of file flow_entry.h.

Here is the call graph for this function:

bool FlowEntry::IsOnUnresolvedList ( )
inline

Definition at line 749 of file flow_entry.h.

bool FlowEntry::IsServerFlow ( )

Definition at line 1448 of file flow_entry.cc.

Here is the call graph for this function:

bool FlowEntry::IsShortFlow ( ) const
inline

Definition at line 682 of file flow_entry.h.

Here is the call graph for this function:

const FlowKey& FlowEntry::key ( ) const
inline

Definition at line 594 of file flow_entry.h.

string FlowEntry::KeyString ( ) const

Definition at line 3391 of file flow_entry.cc.

FlowTableKSyncEntry* FlowEntry::ksync_entry ( )
inline

Definition at line 727 of file flow_entry.h.

bool FlowEntry::l3_flow ( ) const
inline

Definition at line 598 of file flow_entry.h.

uint32_t FlowEntry::last_event ( ) const
inline

Definition at line 741 of file flow_entry.h.

int FlowEntry::linklocal_src_port ( ) const
inline

Definition at line 621 of file flow_entry.h.

Here is the call graph for this function:

int FlowEntry::linklocal_src_port_fd ( ) const
inline

Definition at line 622 of file flow_entry.h.

Here is the call graph for this function:

const TagList & FlowEntry::local_tagset ( ) const

Definition at line 3502 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::LogFlow ( FlowEventLog::Event  event,
FlowTableKSyncEntry ksync,
uint32_t  flow_handle,
uint8_t  gen_id 
)

Definition at line 3464 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::MakeShortFlow ( FlowShortReason  reason)

Definition at line 2869 of file flow_entry.cc.

Here is the call graph for this function:

const MatchPolicy& FlowEntry::match_p ( ) const
inline

Definition at line 670 of file flow_entry.h.

uint32_t FlowEntry::MatchAcl ( const PacketHeader hdr,
MatchAclParamsList acl,
bool  add_implicit_deny,
bool  add_implicit_allow,
FlowPolicyInfo info 
)

Definition at line 2221 of file flow_entry.cc.

Here is the call graph for this function:

tbb::mutex& FlowEntry::mutex ( )
inline

Definition at line 650 of file flow_entry.h.

const std::string& FlowEntry::nw_ace_uuid ( ) const
inline

Definition at line 636 of file flow_entry.h.

bool FlowEntry::on_tree ( ) const
inline

Definition at line 648 of file flow_entry.h.

const VmEntry* FlowEntry::out_vm_entry ( ) const
inline

Definition at line 656 of file flow_entry.h.

Here is the call graph for this function:

const std::string& FlowEntry::peer_vrouter ( ) const
inline

Definition at line 642 of file flow_entry.h.

const TagList & FlowEntry::remote_tagset ( ) const

Definition at line 3509 of file flow_entry.cc.

Here is the call graph for this function:

const std::string FlowEntry::RemotePrefix ( ) const

Definition at line 3535 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::Reset ( const FlowKey k)

Definition at line 505 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::Reset ( )

Definition at line 465 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::reset_flags ( const FlowEntryFlags flags)
inline

Definition at line 614 of file flow_entry.h.

void FlowEntry::ResetPolicy ( )

Definition at line 1664 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::ResetRetryCount ( )
inline

Definition at line 748 of file flow_entry.h.

void FlowEntry::ResyncFlow ( )

Definition at line 2643 of file flow_entry.cc.

Here is the call graph for this function:

FlowEntry* FlowEntry::reverse_flow_entry ( )
inline

Definition at line 602 of file flow_entry.h.

const FlowEntry* FlowEntry::reverse_flow_entry ( ) const
inline

Definition at line 604 of file flow_entry.h.

uint32_t FlowEntry::reverse_flow_fip ( ) const

Definition at line 1016 of file flow_entry.cc.

Here is the call graph for this function:

VmInterfaceKey FlowEntry::reverse_flow_vmi ( ) const

Definition at line 1024 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::RevFlowDepInfo ( RevFlowDepParams params)

Definition at line 1077 of file flow_entry.cc.

Here is the call graph for this function:

const NextHop* FlowEntry::rpf_nh ( ) const
inline

Definition at line 658 of file flow_entry.h.

void FlowEntry::RpfComputeEgress ( )
private

Definition at line 1357 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::RpfComputeIngress ( )
private

Definition at line 1335 of file flow_entry.cc.

Here is the call graph for this function:

bool FlowEntry::RpfFromSrcIpNh ( ) const
private

Definition at line 1310 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::RpfInit ( const AgentRoute rt,
const IpAddress sip 
)
private

Definition at line 1249 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::RpfSetRpfNhFields ( const NextHop rpf_nh)
private

Definition at line 1231 of file flow_entry.cc.

void FlowEntry::RpfSetRpfNhFields ( const AgentRoute rt,
const NextHop rpf_nh 
)
private

Definition at line 1236 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::RpfSetSrcIpNhFields ( const AgentRoute rt,
const NextHop src_ip_nh 
)
private

Definition at line 1224 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::RpfUpdate ( )

Definition at line 1393 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SessionMatch ( SessionPolicy sp,
SessionPolicy rsp,
bool  is_sg 
)
private

Definition at line 2421 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::set_acl_assigned_vrf_index ( )

Definition at line 1049 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::set_deleted ( bool  deleted)
inline

Definition at line 719 of file flow_entry.h.

Here is the call graph for this function:

void FlowEntry::set_dest_sg_id_l ( const SecurityGroupList sg_l)
inline

Definition at line 618 of file flow_entry.h.

void FlowEntry::set_flags ( const FlowEntryFlags flags)
inline

Definition at line 613 of file flow_entry.h.

Here is the call graph for this function:

void FlowEntry::set_flow_handle ( uint32_t  flow_handle,
uint8_t  gen_id 
)

Definition at line 1037 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::set_flow_mgmt_info ( FlowEntryInfo info)

Definition at line 3644 of file flow_entry.cc.

void FlowEntry::set_flow_mgmt_request ( FlowMgmtRequest req)
inline

Definition at line 756 of file flow_entry.h.

void FlowEntry::set_fsc ( FlowStatsCollector fsc)
inline

Definition at line 732 of file flow_entry.h.

Here is the call graph for this function:

void FlowEntry::set_last_event ( uint32_t  event)
inline

Definition at line 742 of file flow_entry.h.

Here is the call graph for this function:

void FlowEntry::set_on_tree ( )
inline

Definition at line 649 of file flow_entry.h.

void FlowEntry::set_reverse_flow_entry ( FlowEntry reverse_flow_entry)
inline

Definition at line 607 of file flow_entry.h.

Here is the call graph for this function:

void FlowEntry::set_source_sg_id_l ( const SecurityGroupList sg_l)
inline

Definition at line 615 of file flow_entry.h.

void FlowEntry::set_trace ( bool  val)
inline

Definition at line 753 of file flow_entry.h.

void FlowEntry::SetAclAction ( std::vector< AclAction > &  acl_action_l) const

Definition at line 3070 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetAclFlowSandeshData ( const AclDBEntry acl,
FlowSandeshData &  fe_sandesh_data,
Agent agent 
) const

Definition at line 3290 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetAclInfo ( SessionPolicy sp,
SessionPolicy rsp,
const FlowPolicyInfo fwd_flow_info,
const FlowPolicyInfo rev_flow_info,
bool  tcp_rev,
bool  is_sg 
)
private

Definition at line 2352 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetEventSandeshData ( SandeshFlowIndexInfo *  info)

Definition at line 3433 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetHbsInfofromAction ( )

Definition at line 2112 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetHbsInterface ( HbsInterface  intf)
inline

Definition at line 771 of file flow_entry.h.

void FlowEntry::SetMirrorVrf ( const uint32_t  id)
inline

Definition at line 708 of file flow_entry.h.

void FlowEntry::SetMirrorVrfFromAction ( )

Definition at line 2849 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetOutPacketHeader ( PacketHeader hdr)

Definition at line 2327 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetPacketHeader ( PacketHeader hdr)

Definition at line 2305 of file flow_entry.cc.

bool FlowEntry::SetQosConfigIndex ( )
private

Definition at line 2674 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::SetUnResolvedList ( bool  added)
inline

Definition at line 750 of file flow_entry.h.

void FlowEntry::SetVrfAssignEntry ( )

Definition at line 2178 of file flow_entry.cc.

Here is the call graph for this function:

const std::string& FlowEntry::sg_rule_uuid ( ) const
inline

Definition at line 633 of file flow_entry.h.

uint16_t FlowEntry::short_flow_reason ( ) const
inline

Definition at line 645 of file flow_entry.h.

bool FlowEntry::ShouldDrop ( uint32_t  action)
static

Definition at line 1112 of file flow_entry.cc.

const MacAddress& FlowEntry::smac ( ) const
inline

Definition at line 646 of file flow_entry.h.

const NextHop* FlowEntry::src_ip_nh ( ) const
inline

Definition at line 657 of file flow_entry.h.

bool FlowEntry::trace ( ) const
inline

Definition at line 752 of file flow_entry.h.

TunnelType FlowEntry::tunnel_type ( ) const
inline

Definition at line 643 of file flow_entry.h.

void FlowEntry::UpdateFipStatsInfo ( uint32_t  fip,
uint32_t  id,
Agent agent 
)

Definition at line 1032 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::UpdateL2RouteInfo ( )

Definition at line 2076 of file flow_entry.cc.

Here is the call graph for this function:

void FlowEntry::UpdateReflexiveAction ( )

Definition at line 2881 of file flow_entry.cc.

void FlowEntry::UpdateReflexiveAction ( SessionPolicy sp,
SessionPolicy rsp 
)
private

Definition at line 2898 of file flow_entry.cc.

Here is the call graph for this function:

const boost::uuids::uuid& FlowEntry::uuid ( ) const
inline

Definition at line 631 of file flow_entry.h.

const VnEntry* FlowEntry::vn_entry ( ) const
inline

Definition at line 653 of file flow_entry.h.

Friends And Related Function Documentation

friend class FlowEntryFreeList
friend

Definition at line 775 of file flow_entry.h.

friend class FlowStatsCollector
friend

Definition at line 776 of file flow_entry.h.

friend class FlowTable
friend

Definition at line 774 of file flow_entry.h.

void intrusive_ptr_add_ref ( FlowEntry fe)
friend

Definition at line 566 of file flow_entry.cc.

void intrusive_ptr_release ( FlowEntry fe)
friend

Definition at line 570 of file flow_entry.cc.

friend class KSyncFlowIndexManager
friend

Definition at line 777 of file flow_entry.h.

Member Data Documentation

tbb::atomic< int > FlowEntry::alloc_count_
staticprivate

Definition at line 820 of file flow_entry.h.

FlowData FlowEntry::data_
private

Definition at line 815 of file flow_entry.h.

SecurityGroupList FlowEntry::default_sg_list_
staticprivate

Definition at line 850 of file flow_entry.h.

bool FlowEntry::deleted_
private

Definition at line 821 of file flow_entry.h.

FlowEntryEventHistory FlowEntry::e_history_
private

Definition at line 891 of file flow_entry.h.

boost::uuids::uuid FlowEntry::egress_uuid_
private

Definition at line 825 of file flow_entry.h.

uint16_t FlowEntry::event_log_index_
private

Definition at line 848 of file flow_entry.h.

boost::scoped_array<FlowEventLog> FlowEntry::event_logs_
private

Definition at line 847 of file flow_entry.h.

uint32_t FlowEntry::fip_
private

Definition at line 836 of file flow_entry.h.

VmInterfaceKey FlowEntry::fip_vmi_
private

Definition at line 837 of file flow_entry.h.

uint32_t FlowEntry::flags_
private

Definition at line 822 of file flow_entry.h.

uint32_t FlowEntry::flow_handle_
private

Definition at line 818 of file flow_entry.h.

FlowMgmtEntryInfoPtr FlowEntry::flow_mgmt_info_
private

Definition at line 861 of file flow_entry.h.

FlowMgmtRequest* FlowEntry::flow_mgmt_request_
private

Definition at line 857 of file flow_entry.h.

uint8_t FlowEntry::flow_retry_attempts_
private

Definition at line 851 of file flow_entry.h.

FlowTable* FlowEntry::flow_table_
private

Definition at line 814 of file flow_entry.h.

const std::map< uint16_t, const char * > FlowEntry::FlowDropReasonStr
static

Definition at line 524 of file flow_entry.h.

const std::map< FlowEntry::FlowPolicyState, const char * > FlowEntry::FlowPolicyStateStr
static
Initial value:
= boost::assign::map_list_of
(NOT_EVALUATED, "00000000-0000-0000-0000-000000000000")
(IMPLICIT_ALLOW, "00000000-0000-0000-0000-000000000001")
(IMPLICIT_DENY, "00000000-0000-0000-0000-000000000002")
(DEFAULT_GW_ICMP_OR_DNS, "00000000-0000-0000-0000-000000000003")
(LINKLOCAL_FLOW, "00000000-0000-0000-0000-000000000004")
(MULTICAST_FLOW, "00000000-0000-0000-0000-000000000005")
(NON_IP_FLOW, "00000000-0000-0000-0000-000000000006")
(BGPROUTERSERVICE_FLOW, "00000000-0000-0000-0000-000000000007")

Definition at line 523 of file flow_entry.h.

boost::intrusive::list_member_hook FlowEntry::free_list_node_
private

Definition at line 843 of file flow_entry.h.

FlowStatsCollector* FlowEntry::fsc_
private

Definition at line 844 of file flow_entry.h.

const std::string FlowEntry::fw_policy_
private

Definition at line 862 of file flow_entry.h.

uint8_t FlowEntry::gen_id_
private

Definition at line 817 of file flow_entry.h.

HbsInterface FlowEntry::hbs_intf_
private

Definition at line 892 of file flow_entry.h.

bool FlowEntry::is_flow_on_unresolved_list
private

Definition at line 852 of file flow_entry.h.

FlowKey FlowEntry::key_
private

Definition at line 813 of file flow_entry.h.

const uint32_t FlowEntry::kFlowRetryAttempts = 5
static

Definition at line 525 of file flow_entry.h.

const uint32_t FlowEntry::kInvalidFlowHandle =0xFFFFFFFF
static

Definition at line 521 of file flow_entry.h.

const uint8_t FlowEntry::kMaxMirrorsPerFlow =0x2
static

Definition at line 522 of file flow_entry.h.

FlowTableKSyncEntry* FlowEntry::ksync_entry_
private

Definition at line 839 of file flow_entry.h.

bool FlowEntry::l3_flow_
private

Definition at line 816 of file flow_entry.h.

uint32_t FlowEntry::last_event_
private

Definition at line 845 of file flow_entry.h.

tbb::mutex FlowEntry::mutex_
private

Definition at line 842 of file flow_entry.h.

std::string FlowEntry::nw_ace_uuid_
private

Definition at line 827 of file flow_entry.h.

bool FlowEntry::on_tree_
private

Definition at line 834 of file flow_entry.h.

std::string FlowEntry::peer_vrouter_
private

Definition at line 830 of file flow_entry.h.

FlowPendingAction FlowEntry::pending_actions_
private

Definition at line 849 of file flow_entry.h.

tbb::atomic<int> FlowEntry::refcount_
private

Definition at line 841 of file flow_entry.h.

FlowEntryPtr FlowEntry::reverse_flow_entry_
private

Definition at line 819 of file flow_entry.h.

std::string FlowEntry::sg_rule_uuid_
private

Definition at line 826 of file flow_entry.h.

uint16_t FlowEntry::short_flow_reason_
private

Definition at line 823 of file flow_entry.h.

bool FlowEntry::trace_
private

Definition at line 846 of file flow_entry.h.

uint32_t FlowEntry::transaction_id_
private

Definition at line 870 of file flow_entry.h.

TunnelType FlowEntry::tunnel_type_
private

Definition at line 832 of file flow_entry.h.

boost::uuids::uuid FlowEntry::uuid_
private

Definition at line 824 of file flow_entry.h.


The documentation for this class was generated from the following files: